Как компания Oxobox Games создала игровое поле, основанное на данных, для реализации стратегии Sente для шести игроков.

Что произойдет, если взять стратегическую глубину шахмат и го и позволить шести игрокам делать ходы одновременно? В этом и заключается основная идея. Сенте , стратегическая игра с гексагональной сеткой от аргентинской компании Oxobox Games, созданная на движке Unity. Игроки размещают жетоны на шестиугольной доске, чтобы строить энергетические сети, стрелять лазерами и выслеживать энергетические ядра противников — и всё это в то время, как все остальные за столом одновременно строят то же самое.
Мы поговорили с Фернандо Пикате, игровым директором и ведущим программистом (и одним из соучредителей студии), и Хоакином Фрере, продюсером и руководителем отдела по связям с общественностью, о том, как они решали ходы шести игроков одновременно, создали достаточно простой редактор игрового поля, чтобы их собственному гейм-дизайнеру никогда не приходилось открывать Unity, и превратили многолетний проект, созданный с любовью, в опубликованную игру.
От увлечения настольными играми до более чем десяти лет работы в Unity.
Sente — первая игра студии Oxobox; студия также работает в сфере постпродакшена фильмов и телесериалов, предоставляя услуги по созданию субтитров, дубляжу и контролю качества для индустрии развлечений. Однако Sente существовала задолго до появления этой студии. Первоначальная идея зародилась из эскизов и бумажных прототипов, над которыми команда — друзья вне работы — начала экспериментировать в 1990-х годах, основываясь на идее гейм-дизайнера Хавьера Мрада. Первые играбельные версии были созданы на Flash как игра для двух игроков, с кратким переходом на HTML5 Canvas, прежде чем они были перенесены на Unity.
«В Unity я сразу почувствовал себя как дома, хотя не уверен, почему — я даже не помню, что именно во Flash показалось мне похожим», — говорит Фернандо. «В то время Unity также поддерживала JavaScript, что казалось гораздо удобнее, чем сразу переходить на C++ для таких движков, как Unreal Engine». После того, как JavaScript и Boo были признаны устаревшими, мы окончательно перешли на C#, и я до сих пор люблю работать в Unity .
Переход на Unity (начиная с версии 4.0 LTS, как вспоминает Фернандо) также ознаменовал переход Sente от 2D прототипа к полностью 3D доске, которую игроки видят сегодня. С тех пор команда постоянно совершенствуется и сейчас разрабатывает Sente на Unity 6.

Разработка настольной игры, в которой никому не нужно ждать своей очереди.
В основе платы Sente лежат энергетические ядра — внутри программы они по-прежнему называются «королями» — центральные элементы, которые излучают энергию в окружающие их ячейки. В свой ход игроки могут переместить свою основную ячейку или сбросить жетон на заряженную ячейку. Токены имеют две стороны: металлическую сторону, которая защищает от лазеров и передает энергию соседним токенам, и уязвимую сторону, которая после зарядки выпускает лазерный луч. Соедините достаточное количество токенов, и вы сможете уничтожить ядро противника с любой точки поля; потеряйте из виду собственную сеть, и то же самое произойдет с вами. Уничтожьте нужные жетоны, и вы даже сможете объединить две соединенные фигуры в совершенно новое энергетическое ядро — внезапно играя с двумя «королями» вместо одного, подобно двум ферзям на шахматной доске.
Подвох в том, что при участии до шести игроков, поскольку ходы разыгрывались по одному, матчи шли невыносимо медленно. Таким образом, компания Oxobox перестроила Sente, сделав упор на одновременные повороты.

«Когда начинается ход, запускается таймер, и каждый игрок выбирает свой ход», — объясняет Фернандо. «Как только все примут решение — или истечет время — ход завершается одновременно». Это значит, что игрок может прицелиться в, казалось бы, гарантированный объект для выстрела по ядру противника, но в итоге промахнуться, потому что противник в тот же самый момент переместил щит на нужное место.
Чтобы матчи с участием шести игроков не замирали на месте, потребовались годы настройки. «Большая часть наших испытаний была направлена на то, чтобы убедиться, что платы не заедают», — говорит Хоакин. «Когда все выстроили оборону, может казаться, что ничего не происходит, но всегда есть стимул к действию». В конце концов, кто-то создает достаточно возможностей, чтобы остальные не смогли отследить их все, и именно тогда начинается противостояние. В матчах между сильными игроками такие поединки могут длиться более часа, в противном случае — всего десять или пятнадцать минут.

Одна модель данных, десятки инструментов
В Sente каждая игровая доска — независимо от её размера и расположения фигур — хранится в виде одной и той же базовой логической модели, полностью независимой от того, как она отображается на экране.
«Каждая плата хранится как логическая модель, отдельная от того, что вы видите на самом деле», — говорит Фернандо. «Эти же данные лежат в основе всего: нашего инструмента для создания игровых полей в редакторе, рандомизации игровых полей и шаблонов, поставляемых с игрой». Мы можем изменять форму доски любое количество раз в секунду, не касаясь напрямую объектов сцены.
Именно этот единый источник достоверной информации позволяет Oxobox предлагать шестиугольные игровые поля размером от 4 до 10 (где «размер» — количество ячеек, расположенных вдоль каждой грани поля) — достаточно маленькие, чтобы обеспечить быстрые матчи, и достаточно большие, чтобы поддерживать более сложные головоломки для одного игрока, и всё это без необходимости создания отдельных систем для каждого типа полей. Это также лежит в основе пользовательского менеджера шаблонов досок Oxobox, встроенного в Unity инструмента редактирования, который позволяет Фернандо вручную раскрашивать доски — ядра, токены, препятствия и отверстия — с помощью инструментов кисти и симметрии, а затем сохранять результат в виде многоразового шаблона.

Редактор форума, которому Unity вообще не был нужен.
Эта же модель данных решала гораздо более специфическую проблему: как позволить человеку, не являющемуся программистом, разрабатывать головоломки для вашей одиночной кампании?
Хавьер Мрад, создатель головоломок для Sente — тот самый человек, чья первоначальная идея положила начало всему проекту, — никогда не устанавливал Unity. «Ни разу, сколько бы раз я ни спрашивал», — смеется Фернандо. «Именно это и заставило меня создать полноценный внутриигровой редактор игровых досок». Каждую игровую доску можно экспортировать в виде закодированной строки, поэтому Хавьер может разработать целую игровую доску или схему головоломки в своей электронной таблице, отправить мне эту строку, и я импортирую её прямо в игру».
Oxobox планирует предоставить игрокам доступ к тому же механизму обмена, так что в конечном итоге они тоже смогут создавать, экспортировать и обмениваться своими собственными досками.

Создание сценария для одиночной кампании с помощью Timeline.
Одиночная кампания Sente , в которой игроки, переодеваясь в роботов, проникают в бар и бросают вызов его завсегдатаям, почти полностью построена на основе пакета Timeline от Unity. Каждый уровень, или «ветвь», представляет собой последовательность событий на временной шкале, в которой переплетаются диалоги, движение камеры и изменения в раскадровке.
Для этого Oxobox создала несколько пользовательских дорожек временной шкалы: одну для перемещения персонажей в диалогах и настройки их выражений лица, одну для перемещения камеры вдоль пользовательских сплайнов для кинематографических сцен и одну, которая трансформирует доску из одного состояния в другое в середине временной шкалы, анимируя изменение вместо того, чтобы резко переходить к нему. Ветвление сюжета осуществляется с помощью сигналов и маркеров временной шкалы, которые позволяют продвинуться вперед после победы или вернуться к точке повтора, если игрок допустил ошибку.

«Мы постоянно используем Timeline, и у меня никогда не возникало с ним серьезных проблем», — говорит Фернандо. «Обучающий режим, пожалуй, самый ресурсоемкий из всех — в нем диалоги, смена игрового поля и движение камеры, — но даже финал турнира, в котором для камеры и персонажей используются пользовательские сплайновые треки, работает на той же системе».
Эти же диалоговые дорожки одновременно служат конвейером локализации Oxobox. «У нас уже был большой опыт локализации, полученный благодаря работе над субтитрами и дубляжем», — говорит Фернандо. «Мы встроили собственный менеджер локализации непосредственно в наши диалоговые клипы, поэтому можем редактировать перевод реплики в тот момент, когда пишем их». В данный момент мы занимаемся локализацией на японский, китайский, корейский и ещё несколько языков, используя для этого TextMesh Pro.

Что ждет Oxobox Games в будущем?
Компания Oxobox заключила партнерское соглашение с издателем Curveball Games, и Sente в настоящее время доступна на PC через Steam, а команда разработчиков планирует получить верификацию Steam Deck и в будущем изучить возможность выпуска на консольных платформах.
Sente, проект, над которым работали с 1990-х годов, напоминает о том, что небольшая, но находчивая команда может использовать инструменты редактора Unity для создания чего-то гораздо большего, чем позволяют её ресурсы — от доски, которая меняет свою форму десятки раз в секунду, до разработчика головоломок, который никогда раньше не открывал редактор Unity .
Sente доступна в Steam, а другие материалы от разработчиков Unity можно найти в блоге Unity и центре ресурсов Unity.
