Доброго времени суток! Хочу рассказать о своей игре, которую делаю в качестве хобби по вечерам уже почти 2 года – Forgotten Lands: Chronicles. Эта компьютерная ролевая игра с элементами пошаговой стратегии расскажет историю мира Славории, подозрительно похожего на Древнюю Русь.
История игры начинается в 2019 году после очередного прохождения King’s Bounty. Легенда о рыцаре. Пройдя игру, мне захотелось сделать что-то похожее. Делать самый первый прототип я начал в Unity. Одной из первых механик было сделано боевое поле с возможностью движения по нему существ. Для построения маршрута к клетке конечной клетке использовался волновой алгоритм поиска пути. Пришлось немного пошаманить, чтобы вместо обычных клеток-четырехугольников алгоритм корректно работал с гексагонами. Получилось сделать, чтобы можно было атаковать вражеское существо со всех окружающих его гексагонов. Для существ я сделал несколько моделей по всем известному мультфильму.
Прототип сцены боя на Unity
Следующим пунктом в моем плане было создание системы диалогов. Кататься на чужом велосипеде не захотелось, поэтому сделал свою примитивную систему. В отдельной сцене в Unity можно было создать диалоги. Визуально это выглядело как нодовый редактор, главный нод, у которого были варианты ответа игрока. Каждый ответ вел к следующему ноду (текст НИП). Ответы игрока могли появляться при определенных условиях, например, если какая-нибудь глобальная переменная принимала необходимое значение. Весь диалог сохранялся в файл dialogue_name.json. При нажатии на ответ игрока могло случиться како-то событие (старт квеста, завершение, добавление вещей в инвентарь и т.д.)
Соединив эти два элемента на одной сцене, у меня вышла дешевая подделка King’s Bounty. Безтекстурная лошадь могла бегать по поверхности и открывать диалог с одним НИП.
Собранный прототип прототипа на Unity
На этом я пока успокоился и задвинул проект в далекий ящик.
А потом спустя какое-то время случился скандал с ценовой политикой Unity. Начитавшись на сабреддите r/Unity как все переходят на другие движки, я скачал Godot. И конечно же первый делом решил перенести этот проект. Как оказалось, это было не трудно, и за пару дней у меня было все готово. С этого момента и начинается путь Forgotten Lands. Мне понравился Godot, понравился язык GDScript. И я решил доделывать наработки до полноценной игры.
В первую очередь были сделаны основные механики:
движение игрока по карте
когда враги догоняют игрока начинается бой
игрок можно «заходить» в здания и общаться с НИП
игрок может покупать существ
при выборе определенных ответов случаются какие-то события
Следующем большим делом было написание сюжета для игры. Решено, что действие игры будет происходит на 5 локациях:
Пограничье – зона, которая находится на границе с Забытыми Землями
Царьград и окрестности - столица Славории
Болота, в которых живет Баба Яга
Дремучий лес
Забытые Земли
Пограничье, Царьград, Болота, Дремучий Лес, Забытые Земли
По сюжету, 50 лет назад в Славорию упал метеорит. Зона падения вокруг метеорита превратилась в высохшую пустыню с отравленной землей. Так как богатыри Славории черпали силу из земли, то они стали постепенно увядать, пока не осталось никого.
Параллельно с написанием сюжета я делал и расставлял необходимые модели и точки интереса на игровой карте. К концу написания сюжетной линии у меня так же была готова болванка игрового мира.
Пришло время делать существ, с которыми придется столкнуться игроку. Для моделей некоторых существ я использовал сервис meshy.ai, но текстуры рисовал сам вручную. Все модели зданий и объектов в игровом мире я тоже сделал сам.
А вот иконки существ и предметов всецело сгенерированы нейросетью «Шедеврум» и «Кандинский».
Всего в игре получилось 30 существ:
стрелок,заморский силач,заморский волхв,заморский разбойник,заморский вои,бурый медведь,белый медведь,вышибала,бродья,гигант,гусь-лебедь,серый волк,разрушитель,леший,волхв,русалка,ехидный вор,болотный житель,страж,змея,витязь,волоклаки,всадник,собака
На данный момент игра почти готова. Ее можно полностью пройти, готовы все задания, расставлены все существа, распределены отряды и количества существ.
Игрок повышает свой уровень, получает очки, которые можно распределить в одну из характеристик (атака, защита, здоровье, количество шагов). Опыт для уровней дается за бои и за прохождение заданий. За определенное количество очков одной характеристики героя существа получают бонус к аналогичной характеристики. Например, за каждые 4 очка здоровья у персонажа все существа получают +1 к своему здоровью. Так же с повышением опыта увеличивается "могущество" игрока. Чем больше "могущества", тем больше существ можно нанять.
Для автоматического перевода на разные языки был написан небольшой скрипт на python`е, который бегает по всем текстовым файлам с диалогами, квестами, существами и предметами, выбирает текст, который нужно перевести, получает перевод с помощью облачных служб Яндекса и сохраняет все в аналогичный файл, но уже переведенный. Благодаря этому есть перевод на французский и немецкий языки.
Ниже представлен геймплей прохождения одного из заданий на локации Дремучий лес – необходимо освободить мастерскую от волколаков.
Спасибо Всем за внимание!