Два разных проекта на движке Godot. Первым был Tesserfact - попытка перенести урезанную часть механик из настольно-ролевой тактической игры в игру компьютерную. Но в процессе, в силу принципиальной невозможности переноса всех аспектов, подумал переориентировать его в игровой стол (Монстробой: Тактика - второй проект), где игрок управляет всем мануально и может "эмулировать" любые, незакодированные, правила. Что из этого лучше - вопрос открытый, как и то, что обязательно ли компьютерные игры должны быть именно играми общераспространённого вида, где весь интерактив целиком автоматизирован.


Мне давно нравится жанр консольных тактик (особенно части Final Fantasy Tactics, Tactics Ogre и Front Mission), поэтому делал настольные походовые игры с тактическим полем ещё до прихода в настольные ролёвки. А намного позднее, пройдя множество итераций, сформировалась уже настольно-ролевая система для тактических игр, "Монстробой" (её финальная сборка и вёрстка в своё время выпили у меня немало крови, добавив к годам разработки ещё несколько трудоёмких месяцев).
Сделать что-либо в подобном стиле на ПК тоже всегда хотелось, но это сам по себе колоссальный объём работы - реализовать даже самый самый минимум механик в вакууме, не говоря о каких-то сюжетах и прочем. Тем не менее, какое-то количество лет назад, сделал какие-то базовые наброски на флеше и понял, что хочу подобное всё-таки в 3д. А дальше наступила эра Unity, Невангеров, более плотного погружения в Blender, разных прочих 3д-движков и проектов на них.

Пробуя разные наработки в Godot, однажды, я собрал прототипчик, где была шахматная мини-доска и фигурки перемещались упрощённо - вместо поисков путей и беготни по полю просто перепрыгивали из точки А в точку Б. Как если бы мы быстро переставляли фигурки. Такой компромиссный способ показался подходящим, чтобы на этой базе попробовать написать очень урезанный вариант настольно-ролевой тактики и появился проект Tesserfact. Кстати, Тессерфакт, в контексте моей мультивселенной для настольно-ролевых игр - это особая вещица для межмировых путешествий.
Демо есть на этой странице (для вёб, windows/linux):
Ниже показаны пара моментов из одной из промежуточных версий:
Здесь имеется несколько арен, где пользователь может играть за обе стороны, героями и противниками, или включить простенький искусственный интеллект и играть против него, как в стандартную компьютерную тактику.
В процессе разработки, чтобы нормально перейти к поддержке разноуровневых локаций (хотя бы просто чисто визуальной), мне понадобилось переписать изначально действовавшую систему коллайдеров на поле рейкастов. То есть, если раньше выделение областей осуществлялось через движение коллайдеров во время специальной анимации и алгоритм был очень привязан к определённой высоте и скорости анимации, то потом просто стал включать лучи-рейкасты, выделяя область по заданной маске практически мгновенно.
Собственно, всё это можно было прописывать по старинке, чисто вычислительно, как бы "считая в уме" - пробегаясь алоритмами по матрицам, но раз уж современные движки позволяют работать в визуальном поле, то этим изредка можно пользоваться.

Далее этот прототип улучшался, но в какой-то момент захотелось уйти от полного оцифровывания всех желаемых механик. Потому что даже часть того, что было в настолке адаптировать и перенести довольно трудно. Лучшим решением было бы взять уже имеющуюся на ПК тактику as is, и просто интегрировать туда некоторые отдельные элементы из настолки, чем портировать всю базовую настольную логику.
Ещё хотелось добавить некий простенький редактор, чтобы можно было делать произвольную схематичную карту внутри игры, чтобы сражаться не только на фиксированных замоделенных вручную картах. И вот в процессе добавления этой возможности возникло понимание того, что а может ну её, эту полную оцифровку - всё равно делать сюжетку и историю я не собирался, может и игру сделать менее игрой.

После некоторых размышлений о том, что я от этого проекта, собственно хочу и оценки сил - вектор складывался скорее в сторону интерактивного инструмента, позволяющего хоть как-то покрыть большую часть механик, чем в сторону вот прям игры. Опять же, самоубиваться ещё и о то, чтобы потом писать под всё то, что удастся реализовать, ещё и продвинутый AI - не было никакого желания. Поэтому решил упростить себе жизнь и форкнуть проект, чтобы собрать уже такую tabletop-версию.
Так появился уже другой проект - Монстробой:Тактика. Вёб-версия есть на этой страничке (скачиваемые билды не собирал):
А вот обзор на него:
Со следующим обновлениям добавились модельки пары новых героев (чернокнижник и стрелок), возможность выбирать героя/монстра для каждого слота, прочая начальная экипировка из книги и вывод информации по её параметрам.
Ниже мини-видеонарезка из более новой версии:
Ещё картинки и подробности
Сперва новые герои-люди были тоже маленькими, как моделька мага-лампочки:







Автор: thenonsense