Разработка игры мечты. Часть 2

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

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

Что же произошло за этот год? Да, честно говоря, многое. И в этом "многом" как то затерялась разработка игры. Так уж получилось, что в первой половине года были более насущие проблемы и разработка игры шла, но довольно медленно. А летом я уехал на заработки в Горный Алтай, и разработка встала. Но смерть не настигла проект, как можно было того ожидать!

Последний рабочий вечер на стройке
Последний рабочий вечер на стройке

В сентябре я с новыми силами принялся за разработку игры! Проект претерпел "мягкий" перезапуск и самым ярким нововедением стал переезд с GDevelop 5, на котором игре стало откровенно говоря тесно на Godot 4.3.

Внимательный читатель может спросить: "Ты же писал в первой части, что Godot не подошел для разработки. Что поменялось? ". Отвечаю - с того момента появилось множество туториалов и статей, которые помогают в разработке, а разработчики движока исправили самые критические проблемы. Как результат - разработка на Godot 4.3 является вполне комфортным занятием. Если же у меня появляются проблемы, на которые еще не появились туториалы, то на помощь прибегает Claude 3.5, который умеет на удивление крайне понятно и подробно объяснять непонятные темы. Но вернемся к разработке.

За пару месяцев я с нуля перерисовал с нуля все ассеты. По скольку проект после переезда обрел 3д графику, то, следовательно, появились и 3д модели. В качестве программы для моделирования выбрал BlockBench. Почему не Blender? Все дело в том, что для моего проекта его функционал избыточен и будет лишь тормозить разработку. Все равно, что забивать гвоздь шуруповертом.

Дерево. Просто дерево
Дерево. Просто дерево

Первым делом я принялся за разработку генератора уровней - игра ведь в жанре рогалик. Изначально реализовал создание ландшафта через генерацию шума и создание на его основе меша. Но у данного решения было 3 проблемы:

  • Высокая нагрузка на систему

  • Невозможность сгенерировать навигационную сетку. Во всяком случае у меня не получилось

  • Общая унылость получаемого окружения

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

Один из тайлов
Один из тайлов

Со временем переписал код поиска пути у противников. Вместо NavMesh стал использовать вектора. Возможно это менее точно, но обеспечивает более высокую производительность, и менее рельсовое поведение.

В какой-то момент понял, что из-за того, что пули игрока при стрельбе влево и вправо летят не точно по направлению курсора. Было это из-за того, что учитываются только горизонтальные координаты курсора, а камера расположена над персонажем под углом. Решил это за счет того, что добавил точку прицела прямо на плоскости на реальных координатах курсора, при этом скрыв его и заменив на фейковый, который наводится на точку на плоскости. Переусложнил? Да. Но заставить учитывать угол камеры при расчетах координат курсора у меня так и не вышло.

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

В динамике это выглядит гораздо лучше, чем за скриншоте...
В динамике это выглядит гораздо лучше, чем за скриншоте...

Когда же ожидать релиз? Что ж, я придумал для себя отличную мотивацию - я подвязал свою дипломную работу к разработке игры. Данный фактор будет мотивировать меня закончить разработку в течении ближайшего полугода. Ну или отчислится. Одно из двух.

Отвлекающих факторов у меня не так уж и много - лишь походы на пары и капиталка мотора моей японской ласточки. Так что нет никаких препятствий для завершения разработки в данный срок!

Надеюсь, что данная статья была интересной и познавательной!

Источник: https://habr.com/ru/articles/852096/


Интересные статьи

Интересные статьи

Начнем с небольшого предисловия. Битрикс24 позволяет автоматизировать множество разных процессов внутри компании. В частности в Битрикс есть большой и сильный блок автоматизации процессов работы с кли...
Компания “Волжское пароходство” —  это больше 3 тысяч сотрудников, часть из которых используют Битрикс24 во время перевозок. По пути следования судна интернет не везде стабильный, поэтому нужен б...
Благодаря Paint API из состава Houdini можно не ждать выхода новых возможностей CSS. Шаг за шагом автор этого материала показывает, как написать новое свойство CSS для анимации с фрагментацией. Делимс...
Одна из самых важных (на мой взгляд) функций в Битрикс24 это бизнес-процессы. Теоретически они позволяют вам полностью избавиться от бумажных служебок и перенести их в эл...
На GeekBrains в начале осени был запущен факультатив «Аналитика и монетизация мобильных приложений». Новое направление, действующее в рамках факультетов Android и iOS-разработки, стало востр...