The Machine of a Dream: девлог или типа того.

Ну что ж, теперь, когда есть время остановиться и оглянуться назад, самое время написать девлог.

Частично, я уже писал о том, как взялся за участие в Гаминаторе, впервые для себя.  Это, частично спонтанное решение,  зрело уже довольно давно.  Но сейчас не об этом, лучше расскажу про путь проекта. И так…

Идея: концепт хранился у меня в голове уже довольно давно. Там он настаивался и переосмыслялся много раз, однако суть была всегда примерно одинаковая. Это была какая-то монструозная комбинация настольной игры «Стальная арена» и старой игры на SNES, название которой я забыл. Там нужно было управлять боевым роботом, а порой покидать кабину. Даже была хот-сит сетевая игра про дуэль таких роботов.

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

ОжиданиеФантазия/реальность — это буквально лейтмотив всего моего участия в этот раз. Чтобы адаптировать идею под тему конкурса и уложиться в сроки, я первым делом отказался от концепции «полуактивной» боевой системы. Дело в том, что в изначальной идее, управление роботом берёт корни как раз таки в настольной игре. Там, у игрока есть четыре (или больше) типа снаряжения, активируя которые, он как бы отдаёт роботу команды. Например — пройти на два шага вперёд, или выстрелить вперёд. В моём же концепте, вместо пошагового оригинала, всё должно было происходить в реальном времени, с одним исключением, каждое снаряжение имеет перезарядку, что и делает боёвку полауктивной. То есть, игрок сделал шаг вправо и выстрелил — чтобы повторить эти действия, ему придётся подождать, НО он всё ещё может, допустим, поднять щит или ещё сделать что-то ещё. Враги бы действовали по такому же принципу. Разумеется — на реализацию такого проекта нужно куда больше времени и знаний движка. Так что, я пошёл по пути наименьшего сопротивления — сделал обычный экшен.

Обучение — я ничуть не совру, если скажу, что делал всё буквально с нуля, ведь до дня начала конкурса ни разу не открывал Godot. Это был своего рода эксперимент.  У меня были: какие никакие навыки в программировании (максимально базовые), ролики не ютубе, статьи с тематического сайта. Последние были особенно полезны, не знаю, будет ли уместно указывать ссылку, но хотя бы напишу, что дико благодарен Doctor_Bug. Без него у меня не получилось бы и 10% от результата.

Движок[Godot] — это отдельная боль пониже поясницы. Наверняка, люди, что привыкли в нём работать, сейчас закидают меня шапками (если вообще читают это), но я скорее воевал с ним, чем сотрудничал. Для человека, плохо знакомого с интерфейсом, он покажется перегруженным, а без базовых знаний в программировании тут делать нечего. Казалось бы, это не удивительно? Но с другой стороны, сейчас существуют движки, где всё можно сделать из готовых материалов. У Годота с этим сложнее, особенно если брать четвёртую версию, где многое изменилось, а значит, старые решения не особо актуальны, новых же, пока ещё, маловато. И это отдельная боль, о которой я не мог не упомянуть. А ещё — постоянно сталкивался с парой багов, что мешали работать. Например, если переключать раскладку языка через win+space (да, я привык, что поделать) клавиша win как бы залипает, что мешает использовать хот-кеи и даже клавишу backspace.

Дальше я постараюсь кратко расписать все этапы работы и частично загляну «под капот» проекта.

Неделя 1 — этап концептуализации. Наверно, первые дня два, ушли на то, чтобы  написать диздок  и пайплайн (да, они был, но время показало, что совершенно неправильные).  Дальше пошло погружение в движок, с перерывами на основную работу и другие незначительные дела. На этом этапе меня радовало буквально всё. Даже то, что получилось реализовать какие-то базовые механики, типа ходьбы и погружения в транспорт.

1Eiyb25

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

CnAxEvM

Неделя 3 — графика. Да, узнав, что конкурс продлят, я знатно так расслабился. Посветил больше времени сторонним делам и, вместо тестового наброска, сделал набросок базовый. Конкретно, ту графику, что вы видите сейчас в проекте. Разумеется, она тоже далека от того, что я хотел бы видеть в результате, но мне просто хотелось хоть как-то улучшить визуал. Здесь тоже использовался не совсем правильный пайплайн, наверняка, ведь я делал модельки в блендере, потом рендерил их под определённым углом и переводил в спрайты, разбивая по сетке через фотошоп. Это самый первый вариант, что пришёл мне в голову, им я и воспользовался. А ещё, я набросал схему будущих уровней игры.  Забегая вперёд, скажу, что это было не лишним и помогло в дальнейшем хоть как-то закончить проект.

Неделя 4 — кранчи. Буквально с самого начала недели, я стал понимать, что не успеваю. Эта мысль роилась в голове уже давно, но тут она достигла апогея. Большинство дел были задвинуты в дальний ящик, годот почти не выключался на компьютере. Повезло, что основная работа тоже не слишком-то напоминала о себе. Но возникла новая проблема,  ещё под конец третьей недели я заболел. Не особо серьёзно, разболелось горло, но порой оно сильно отвлекало от мыслей, из-за чего «котелок» не привыкший к программированию, вскипал пуще прежнего. Возгласов: «Да почему ты не работаешь?!» стало куда больше. Идеи, одна за одной, летели в корзину, а оставшееся сшивалось белыми нитками, склеивалось синей изолентой и подпиралось костылями.  Я даже не смог реализовать обучение и добавить звуки в игру. Надеюсь, это не окончательно похоронило мой проект.

Да, я реализовал несколько пушек в игре, но используется только одна, самая примитивная, потому что, тупо не успевал научить игрока менять снаряжение. А ведь изначально слотов для пушек вообще 4! :D

Итог: могу ли я сказать, что доволен результатом? И да и нет. Я всё-таки закончил проект, хотя желание сойти с дистанции росло экспоненциально к приближению дедлайна. Другое дело, что результат вышел с множеством претензий и решений, которые меня не устраивают. В любом случае, это хороший опыт, который, надеюсь, меня хоть чему-то научил. Хочу за это поблагодарить Luca_Nia, как организатора, да и других участников, чья продуктивность и идеи невероятно вдохновляли меня.

P.S: благодарю за внимание. Надеюсь, я не зря потратил ваше время и это было хоть капельку интересно читать. Всем удачи и творческих успехов.