Всегда хотел научить делать игры. Смотрел кучу видео, повторял за авторами, но едва ли хоть раз до конца дошел - фиг знает, почему.
Может, виной тому то, что я повторял за видео, и в какой-то момент переставал вникать и понимать что и зачем я делаю и просто попугайничал. Может, потому что повторяя за уроками - не создаю что-то свое. Может, у меня какой-нибудь СДВГ... Ну или вообще все вместе.
В общем, чтобы научить человека плавать - надо выкинуть его посреди озера, он и поплывет. Именно так я подумал, когда вписался в гейм джем, который чисто случайно совпал с моим отпуском.
Итак, тема была "Алхимия и Тени", срок - 2 недели. Я начал думать что-то простое, что далекому от разработки игр человеку можно сделать за такое короткое время. В голову ничего не шло, пока не увидел старый рисунок жены.
Волшебник, лес, склянки с зельями... Почему бы не сделать простую ловилку зелий? В общем, описал идею жене и она села страдать рисовать для игры. Когда рисунки были готовы, я запустил Godot. Эта штука прям обманчиво интуитивна (хотя если знать GDscript, то просто интуитивна). Добавил сцену, добавил Character body 2D (персонаж), добавил Rigid Body 2D (склянка). Запустил "игру" и склянка упала на пол. Уже что-то! Но теперь предстояло погрузиться в бескрайнюю пучину западной пропаганды - YouTube. Нашел урок на 11 часов и пошел искать в нем нужные мне механики. Для начала смог сделать рандомное (ну почти, про "настоящий" рандом я узнал чуть позже) падение бутылок.
Итак, бутылки начали падать, но взаимодействовать с ними я не пока не мог. Это приводило к занятным казусам.
Работа над игрой
К этому моменту я уже относительно поверил в себя и решил закончить игру любой ценой. Я подумал, что если не успею за две недели - все равно закончу чисто для себя. Добавил анимацию пойманного зелья, добавил разбитие бутылок, и уже что-то стало получаться даже. Проблема в том что я никак не могу заставить бутылки ловиться. Тут я обыскался ответа. В итоге мне помогли Свидетели Godot'овы, за что им огроооомное спасибо. Одной строчкой окончили мои страдания.
Потом я решил добавить тень - чтобы при разбитых бутылках она обволакивала экран и добавляла саспенса или типа того. И вот пока я пытался добавить тень - я сломал игру. Совсем. Бутылки просто перестали спавниться. Что я только не перепробовал, чтобы это починить... Решилось в итоге отвязыванием скрипта от сцены, его удалением, а потом написанием (вернее ctrl+v, я ж скопировал заранее) заново. Хотелось спатенькать, но пока я не убедился что все снова работает (4 часа - это утро или ночь?) в кровать я не отполз.
После этого я создал репозиторий на гитхабе и все изменения коммитил, как большой дядя. Потому что потерять все это из-за своих кривых рук или бага движка мне совершенно не хотелось.
Уже становилось похоже на какую-то мини игру. Я хотел чтобы в игре можно было выиграть, поэтому вверх добавил полоску прогресса, при достижении 100% ты побеждаешь. Ну на данном этапе просто бутылки прекращали падать и ты стоял с котлом, как дебил и ждал чего-то...
В общем, пришло время экранов победы и экранов поражения. Я вернулся на вражеский видеохостинг и там нашел как работать с кнопками и сценами.
Завершение основной работы
Игра была похожа на игру. Добавил звуки, добавил музыку, добавил интро и даже добавил "бесконечный режим". Где можно играть до посинения, пока не разобьешь сколько-то банок, а потом понтоваться количеством набранных очков. Пытался еще прикрутить доски лидеров, но что-то она у меня через раз срабатывало и я решил остановиться просто на показе очков.
Для меню сгенерировал картинку в нейронке, чтобы видеть как буду размещать объекты и ждал, пока мне приедет каноничная иллюстрация (тем более нейроконтент запрещен правилами джема).
Нейросетевой плейсхолдер на время ожидания рисунка
В итоге получилось вот так:
Теперь волшебник соответствовал всему стилю игры
Что дальше?
Самое неожиданное было - получить много приятных отзывов об игре. Это очень мотивирует продолжать обучение.
После завершения голосования (пока не могу вносить изменения в игру) обновлю рандом + хочу поработать с освещением. Глобальных изменений не планирую, но уже вписался в следующий гейм джем. Правильно говорят: хочешь делать игры, участвуй в гейм джемах (не путать с гей-джемами). За время создания этой мини-игры многое узнал и многому научился. Так что всем рекомендую нырять в такие озера, чтобы учиться плавать :)
А поиграть?
Игра доступна для Windows и Android, но файлы без подписей, так что рекомендую играть в браузере, чтобы не подвергать свой компухтор опасностям. Я слышал, что всякие малвари в таких играх - не редкость.
Спасибо, что дочитали! Надеюсь, было не скучно :)