Микрокосмическая jrpg

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

Приблизительное описание общей концепции выкладывал ранее в этой статье

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

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

В игре будут происходить некоторые события, основанные на идентификаторах всевозможных персонажей, предметов, самих корабликов и так далее. События эти в основном заточены на генерацию псевдо-сюжета, и скорее будут приправой к игромеханике, чем её основой. Но в каких-то областях они могут играть важную роль. Для вычисления этих событий мне потребуются обозначить в мире какие-то зоны интерпретации, трактующие взаимодействие идентификаторов по своему. На данный момент решено, что одной из таких зон будет сам "космос", а вблизи планет начинают действовать уже их собственные интерпретаторы. То есть взаимодействие одних и тех же объектов на просторах космоса будет иметь одни последствия, а на планете - уже другие.

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

Подготавливая приблизительные иконки с персонажами/предметами для инвентаря я сразу завёл пару текстурных атласов в формате png, размерами 512 на 512. Таким образом в каждом можно держать по 64 иконки размерами 64 на 64. Godot, кстати, сам умеет сшивать несколько выбранных картинок в атлас, но у меня почему-то эта его функция не срабатывает, поэтому набросал заготовки в графическом редакторе.

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

За три атаки враг умирает и исчезает с карты. Герой пока что бессмертен. Для ускорения тестирования я повесил на среднюю кнопку мышки возможность показать курсор и выбрать следующее действие, не дожидаясь заполнения шкалы. А щёлкнув на кнопку "Экипаж" можно сразу завершить сражение. В дальнейшем там должны появиться активные способности персонажей, находящихся на борту (если они их имеют, конечно).

Ранее выкладывал вот такой ролик с первыми полётами по карте. Более атмосферный, без перебивок на редактор Godot. Музыку к нему писал самостоятельно, а так обычно пользуюсь музыкой ютуба, если захотелось озвучить и нашёлся подходящий трек.

Путешествие по микрокосмосу

Кстати, если вы работаете с Godot engine, то возможно пригодится моя статья с заметками по некоторым полезным инструментам движка:

2222
2 комментария

Без космических кошкодевочек не взлетит.

3
Ответить

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

Могу в общем-то поделиться где копать как нагенерить semi-realistic космос с классами звезд и реалистичным распределением типов планет в звездных сисиемах (тут предупреждаю заранее, большинство будет унылыми газовыми гигантами) причем достаточно быстро. В общем-то и текстурки планет тоже вот несложно (но не на GPU долго). 

А вот с генерацией сюжета несколько сложнее, тут Вы вступайте на стезю парамметрических L-грамматик - это немного...сложновато. Но это если упарываться по полной, но есть и более простые примеры, с матричным сюжетом
https://dwarfstar.brainiac.com/ds_barbarianprince.html
https://dwarfstar.brainiac.com/ds_starsmuggler.html
но это немного уныло (в плане разработки конечно же, придется писать ручками десяьки и сотни вариантов и копипасты - это не то, за что мы любим программирование). 

Еще, конечно же писать на Пухтоно-подобном языке сложные вещи то еще удовольствие - высока вероятность превращения кода в кашу, тут все таки решают строго-типизированные языки бьющие по рукам (C++, C#, Java...TS, lol). Хотя вот в WoT как-то справляются...

Ответить