Tesserfact | 3d тактика на Godot

Небольшое демо с прототипом походовой тактической игры на игровом движке Godot.

Tesserfact | 3d тактика на Godot

Давно нравится жанр консольных тактик (особенно части FFT, Tactics Ogre и Front Mission), поэтому когда-то раньше я делал настольные походовые игры с тактическим полем. А намного позднее, пройдя множество итераций, сформировалась уже настольно-ролевая система для тактических игр, "Монстробой" (её финальная сборка и вёрстка выпили у меня немало крови, добавив к годам разработки ещё несколько трудоёмких месяцев).

Сделать что-либо в подобном стиле на ПК тоже всегда хотелось, но это сам по себе колоссальный объём работы - реализовать даже самый самый минимум механик в вакууме, не говоря о каких-то сюжетах и прочем. Тем не менее, несколько лет назад сделал какие-то базовые наброски на флеше и понял, что хочу подобное всё-таки 3д. А дальше наступила эра Unity, Невангеров, более плотного погружения в Blender, разных прочих 3д-движков и проектов на них.

В прошлом году я уже выкладывал наброски 3д-тактики на Godot (Phoenix Down), по мотивам механик одной шахматоподобной ретро-игры, где фигурки только двигались по доске, а сражались в другом режиме. Теперь решил пересобрать тот прототип, сделав альернативный проект-заготовку под чисто тактическое сражение, когда ход последовательно получают все участники сражения и действия происходят сразу же на карте, а не в мини-дуэлях на отдельной окне.

Вот, что получилось на данный момент:

демо, версия 01_01

Страница проекта (можно запустить в браузере или скачать билд для windows/linux):

Кстати, Тессерфакт, в контексте моей мультивселенной для настольно-ролевых игр - это особая вещица для межмировых путешествий.

ИИ врагов пока не планируется, поэтому управлять всеми персонажами надо вручную. В каждый ход герой может переместиться в пустую клетку и/или ударить кого-то. После чего по кнопке "конец хода" право действия перейдёт к кому-то следующему.

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

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

Для удобства разработки и наглядности справа заведён системный лист ходов. Он, вероятно, останется и потом, но скорее всего в скрытом виде. Сейчас, если герой потерял все хиты, то он остаётся в списке, но очередь на нём не останавливается, перебирая список дальше.

Когда одна из сторон потеряла всех персонажей, то игра предлагает завершить битву и сражение можно перезапустить уже в варианте 2 на 2 юнита на том же поле.

В перспективе я хотел бы со временем смоделировать здесь какие-то игромеханики "Монстробоя", хотя бы очень примерно и частично. Но в любом случае переносить все его опции, принципы и контент на пк 1 в 1 - нереально, а то, что таки будет перенесено, подвергнется различной адаптации.

Такие вот дела.

2323
7 комментариев

За годо плюсану.

4

Спасибо. У меня много прочих проектов на разных его версиях.

1

Плюсану за сделанное, не фанат жанра, но выглядит неплохо

1

Рад слышать.

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