Сделал игру на Godot Engine за неделю. Вот что вышло...

Сделал игру на Godot Engine за неделю. Вот что вышло...

Идея небольшой атмосферной демки про двух бандитов у меня в голове зрела уже давно... но я её откладывал в долгий ящик по разным причинам: то слишком много дел, то банально нет сил стартовать что-то новое, когда старое не доделано до ума. Но в один момент я всё же натыкаюсь на черновик идеи, и решаю попробовать бросить себе вызов: уделять проекту по 10-15 минут в день, но делать это регулярно, чтобы в итоге к концу недели получилась небольшая, кривая, но рабочая и проходимая технодемка, которую я потом выложу на итч.ио.

Целей было несколько:

1. Поупражняться в вещах, которые я умею делать плохо;

2. Пополнить своё потенциальное портфолио;

3. Дать, наконец, воплощение идее которая долго в мозгу кочует;

4. Да просто потому что прикольно;

День 1.

Каюсь... на самом деле, челлендж с моей стороны был не совсем честным: часть ассетов с анимациями главного героя я до этого уже накидал в Aseprite и импортировал, так что базовая база с хождением и интеракцией у меня была готова с самого начала. Так что в первый день я просто интегрировал в движок Dialogic, позволяющий облегчить написание и интеграцию диалогов в костяк игры. В 15 минут уложился, при этом "почистив" проект от накиданного мусора, который в самой демке не пригодится.

Сделал игру на Godot Engine за неделю. Вот что вышло...

День 2.

На него я запланировал то, с чем часто возникали проблемы: со слоем параллакса. Это когда картинка на заднем плане не обрывается, а плавно двигается вместе с игроком. Потратил какое-то время, посмотрел гайды на youtube, потыкался - и разобрался. Параллакс готов, я доволен, во время в целом тоже уложился.

Сделал игру на Godot Engine за неделю. Вот что вышло...

День 3.

По моей задумке, мы играем за молодого бандоса Сашу, который должен на автозаправке купить своему спутнику сигареты, а также оплатить бензин в тачке. Следовательно, комнаты нужно всего две: улица и магазин заправки. За последний я и принялся на третий день: накидал в Aseprite простецкий фон, поместил в сцену, и поставил туда главного героя. Плюс сделал плавный переход с эффектом fade между сценами (мне понравилось, как вышло).

По времени чуть-чуть не уложился: вышло где-то около получаса.

День 4.

Так как я сам себя ограничил по времени в рамках "забега", то механики я запланировал самые простейшие: вписать в автозагрузочный скрипт булевые (true/false) переменные с предметами, и ставить их на "true", когда игрок подбирает/находит предмет.

Сделал игру на Godot Engine за неделю. Вот что вышло...

По сюжету, у Саши не так много денег, так что он должен не просто купить сигареты, а найти способ: где-то достать ещё деньги или ограбить продавца с помощью взятого у Мятного (его спутника) пистолета. Таким образом, ввёл три переменные: сигареты, пистолет и деньги. Благо, Dialogic через утилиту позволяет с ними хорошо взаимодействовать.

позже ввёл ещё переменную "бензин", но это сугубо чтобы Саша не вернулся в машину раньше времени.

Много времени это не заняло, так что в оставшиеся я добавил костяк ивента с мусоркой, за которой Саша по сюжету находит деньги, а также небольшой диалог с Мятным, который выдавал бы Саше пистолет (и активировал бы соответствующее окошко в интерфейсе).

Сделал игру на Godot Engine за неделю. Вот что вышло...

День 5.

В этот день я не только добавил продавца, с которым можно поговорить, купив у него сигареты или бензин (переменная moneys становится false), так что технически, одна концовка была готова, но ещё и добавил прикольную "единичную" анимацию, когда при выборе определённого варианта по сигналу Саша достаёт пистолет и наставляет его на продавца. Я был невероятно рад, потому что, пусть я и затратил на это лишнее время, но мне очень понравилось, насколько круто это выглядит.

Сделал игру на Godot Engine за неделю. Вот что вышло...

День 6.

Вот в этот день я понял свой главный "недостаток" в этом деле: я не умею делать по принципу "всрато но быстро". Если у меня остаётся время и силы, мне всегда хочется, чтобы была кинематографичность, прикольные анимации, интересные эффекты, сюжетные крючки, драма, вот это вот всё, а это существенно увеличивает срок разработки.

Так что я потратил два часа на настройку плавного наезда камеры при интеракции с NPC, и ещё где-то полчаса, чтобы научиться возвращать её обратно. Последнее, увы, не получилось, что-то я делал не так - но мне уже нравилось, что я теперь умею в такие вещи. Я решил не запариваться, чтобы не тратить ещё больше времени на это, и оставил как есть - благо, геймплею это не сильно мешало.

Если тут есть знатоки Godot: вот две функции, которые должны обеспечивать плавный наезд. Первая работает как надо, а вторая почему-то нет (срабатывает, но камера не отдаляется). Если подскажете, где косяк - буду признателен.

Сделал игру на Godot Engine за неделю. Вот что вышло...

Ну и плюс, в этот же день я добавил в игру звуки для атмосферы! Радио, шипение лампы, шум ветра, голоса героев, шаги... Всё это уже "оживило" мой сыренький прототип. Мне он теперь прям нравился.

День 7.

Изначально планировалось что этот день будет последним в разработке, но я немного напортачил с подсчётом и решил, что выложу проект на итч на восьмой день, а в этот займусь доработкой и полировкой. Разумеется, о 10-15 минутах теперь речи не шло, потому что я натурально загорелся проектом, который у меня на глазах ожил и покрылся красивыми анимациями, звуками, небольшой историей, сюжетными интеракциями...

Сделал игру на Godot Engine за неделю. Вот что вышло...

Так что в этот день я сделал красивое стартовое меню, доделал концовки с конечными экранами, и полишил баги которые возникали в разных случаях.... Остался последний шаг: экспортировать на итч.

Вы спросите: но что там сложного, просто берёшь и экспортируешь?

А я вам отвечу: там действительно ничего сложного, но с предыдущими тремя проектами у меня это нормально сделать не вышло по разным причинам. Тут же я настроился, что сяду, разберусь, досижу до талого, но экспортирую.

День 8.

...и я, встав с самого утра очень решительный, справляюсь где-то за 15 минут. Загадка, почему не справлялся раньше, очень простая: я оказывается не выставил в движке при экспорте галочку "совместимость", и из-за этого итч капризничал. Я сижу перед экраном, где в браузере запускается игра, и думаю: "как-то это даже.... слишком просто."

WELL, у меня получилось! Правда, всё же не без багов, ха-ха: у кого-то она почему-то зависала после вступительной сцены, кто-то не понимал куда жать, а потом оказалось что я, запарившись, забыл выставить нормальные коллизии внутри магазина, и игрок мог уйти за край камеры. Я это поправил, и всё равно был собой очень доволен.

Сделал игру на Godot Engine за неделю. Вот что вышло...

Посмотреть, что у меня вышло, можете по этой ссылке. А я отправляюсь делать что-то ещё! :^) Если хотите больше экскурса в мои геймдевелоперские похождения, дайте знать в комментах, у меня есть, что рассказать.

22
2
1
12 комментариев