Летние новости морозного Northgard: редактор карт, турниры, обновления

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com (подробнее »)
| Обзор | Компьютерные и мобильные игры

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

Поддержка Модов

Обновление с поддержкой модов, порадовало новым старым задником, как бэ намекающим на суть...

Я помню, как спустя всего пару дней после выхода статьи, где я пишу про грядущий редактор карт, вышло обновление на Northgard, которое его и добавило. Решив не запускать цикл правок-ревью-публицаций снова, я отложил перо и переместился полностью в редактор карт. Сразу хочется добавить, что хотя из меню игры ушла приставка «Бета» в отношении редактора, но кто знает, что произойдёт спустя пару дней после выхода этой статьи. Особенно учитывая, как много времени уходит на полировку и оформление уже написанного текста.

На данный момент разработчики дали возможность модифицировать игру по трём (почти) ортогональным направлениям:

  1. Редактор Карт (Map Editor), как следует из названия, позволяет создавать уровни (т.н. сценарии / scenario, наиболее похоже на миссии кампании) наносить стартовые фракции и условия (здания, юниты, залежи руды, но не «основные» ресурсы). Редактор позволяет менять граф связности, блокируя переходы между двумя ячейками, но не саму геометрию ячеек. Чтобы было понятно, нельзя изменить с какие области граничат с какими, но можно поставить между двумя соседями завал или озеро, а также поднять или опустить относительно друг друга. Поэтому иногда в середине разработки можно заметить, что полностью симметричную или сбалансированную карту создать не получится, как ни крути, и приходится генерировать заново.
  2. Редактор Скриптов (Northgard Editor), как следует из названия, позволяет задавать и менять исполняемый скрипт для уже созданной карты. Скрипт — это англицизм, обозначающий любой исполняемый (интерпретируемый) код, написанный открытым текстом (в противовес, скажем компилируемому коду), но большинству так будет понятней, чем перегружать слово «сценарий» (чего, фильма, пьесы?). Часто задаваемый вопрос в Дискорде, поэтому уточняю: скрипт можно добавить только созданной в редакторе карт (вами или кем-то из сообщества) карте. То есть карта нужна и она пункт 1. Существующие миссии Кампании или Завоевания, а также Генератор Карт менять не дают и не известно дадут ли. Для Нортгарда в качестве скриптового языка был выбран Haxe Script (hscript), потому что сама игра написана на Haxe.
  3. Редактор Сущностей (CDB View). Тут название не поможет, придётся привести пример. Сущности — это все здания и юниты (а так же многое другое, что меньше подходит к этому термину) игры, они хранятся в одном файле базы данных и имеют каждый свой набор свойств. Некоторые из этих свойств можно менять при помощи визуального редактора. Таким образом создавать какие-то совершенно новые сущности не получится, но моддеры во всех играх привыкли делать шедевры путём перестановок уже имеющихся свойств в нужном порядке.

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

map.dat + script.hx + cdb.diff + preview.jpg = your first mod!

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

Редактор Карт

Редактор карт представлен двумя раздельными функциями в меню игры — «Создать Карту» и «Редактировать Карту». На данный момент при создании карты жёстко задаются её параметры (размер и агрессивность окружающей среды, плюс есть настройка количества игроков, но это как раз можно изменить во время игры). Однако я вангую, что однажды это будет перераспределено между редактором карт и окном запуска Одиночной Игры. Пока же параметризировать пользовательские карты никак, кроме выбора одной из участвующих сторон, нельзя (при запуске вы увидите только Клан и Цвет, стартовую локацию узнаете методом проб и ошибок).

Поэтому перейдём к самому интересному, то есть, редактированию карты. Вам не обязательно даже начинать самому — если вы подписались в Мастерской Steam на какаую-либо карту, она также доступна для редактирования. Отличный способ начать делать — взять уже готовое и препарировать.

Редактор вскрыл множество технических нюансов, которые рядовой игрок никогда бы и не узнал. Например, как генерируются тоненькие реки между двумя областями, которые позволяют перемещаться лишь в очень узком граничном пространстве. Или, например, что все игровые ресурсы это либо (физически присутствующие на карте) здания, либо флажки-«генераторы» (spawner). Те, кто ещё не запомнил все локации из генератора карт, могут выписать себе на бумажку, какие есть заранее заготовленные области с нейтральными юнитами и бонусами на них.

Первое что видят игроки в редакторе (кроме самой пред-сгенерированной карты), это настройки фракций: тут можно добавить играбельную фракцию (Add player), добавить ей под контроль территорий (иконка с флагом, справа от иконки домика за лупой), а также переключить флаг, что эта фракция только для компьютерных болванчиков (первые трое с иконкой «будет сделано», играбельные фракции, а некий Bard — только для роботов из «Ну, Погоди!»).

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

Стартовая локация каждой фракции содержит главное здание, нажав на которое, можно (и в большинстве случаев — нужно) выбрать Клан. Нельзя было вынести это из редактора карт, на экран запуска мода?

Да в игре всё ещё нет возможности задать команды, что называется «из коробочки». Почему бы прямо на этом интерфейсе не поставить переключатель с цифрами от 1 до 9, которые бы группировали игроков в команды?

Многие тут же и заканчивают изучение, остальные морально готовятся. Потому что следом идёт самый главный и сложный режим...

Нейтральные фракции здесь не добавляются и не выкидываются, а суммируются из тех генераторов (spawner), что вы уже расставили на карте, зато им можно выдать стартовых территорий.

Режим редактирования карты (высот и видимости, каждая на своей вкладке), собственно позволяет подымать песок из океана и насыпать пляжи, из пляжей делать равнины, из равнин холмы, а там и до гор неделеко добраться. Между двумя областями с отличающимися не более чем на 1 уровень по умолчанию есть переход, который в этом же режиме можно завалить. На другой вкладке в этом же режиме можно снять туман войны с определённых областей на момент начала игры задав стартовую видимость. Например, открыть союзникам расположение друг друга. Зато есть в этом особом режиме (а он реально настолько особый, что после изменений редактор карт перезагружает вашу карту заново, с loading screen) несколько заковырок. Например, изменение стартового тумана войны, должно сопровождаться подтверждением изменений на предыдущей вкладке — редактирования карты высот, что многих (и меня) в своё время ставило в долгий ступор. Тут же можно переключить отображение идентификаторов территорий (Show zones Ids) — это понадобится познее в редакторе Скриптов.

А ещё в режиме редактирования высот прекрасно видно особенности генератора и геометрии областей Нортгарда — в основе его лежит (скорее всего) шестиугольная сетка, а для придания ей хаотичного вида некоторые шестиугольники разрезаются произвольными плоскостями, а большинство просто деформируется. Заметней всего на стартовых локациях и центре карты.

Есть ещё и такие как на картинке справа области, с идеально ровной границей. Трудно предположить откуда игра берёт такие клеверы, но это точно не баг, а фича.

В общем, было бы интересно взять интервью у разработчиков и распросить их об алгоритмах.

Остальные разделы меню редактора не такие интересные, так как не предоставляют особых «инсайтов» о внутреннем устройстве игры, и если вы захотите делать карты, скорее всего разберётесь в них без отедельного упоминания.

Редактор Скриптов

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

Нортгард всё-таки RT4X игра (читайте в предыдущей статье), и поэтому огромное значение в сетевых (да и одиночных тоже) матчах играет генератор случайных чисел и ре-играбельность за счёт вариативности. Просто так сделать карту Финляндии на Нортгардских «псевдо» шестигольничках, значит обречь её на одноразовость. А потом «отписка» и вот-вот рейтинг падает в трубу.

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

Собственно, вот предлагаемый шаблон скрипта (так называемый Boilerplate) от разработчиков.

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

  1. Инициализация — функция init() 
  2. Шаг игры — функция regularUpdate()
  3. Состояние — свойство state.scriptProps

Инициализация подходит для первого запуска мода (onFirstLaunch — обёртка также входящая в стартовый комплект), когда нужно установить стартовые условия, условия победы и установить счётчики которые будут использоваться для отслеживания всего этого. Шаг игры вызывается в игровом цикле и даёт разработчику возможность среагировать на изменения в игре. Однако игра идёт дальше, поэтому не задерживатесь и не мешайте. Кстати, сам игровой цикл вне контроля разрабочика мода, поэтому игра не сильно заботится о том, закончили вы или нет со своими расчётами — каждые пол секунды новый шаг будет вызван, и если вы обрабатываете ещё предыдущий шаг — ваши проблемы. Состояние — это ядро сценария. Если состояние не меняется — значит в моде ничего не происходит. Да, на карте могут строиться здания, расти кланы и подниматься с колен экономика, но если это не находит отображения в состоянии, то спрашивается, зачем вам вообще нужен скрипт?

Изменяя состояние вы приближаете победу и/или поражение отдельных игроков. Чтобы не забыть об этом прогрессе в пределах игровой сессии — функция saveState добавляет состояние вашего мода, в общее состояние игры. А чтобы не забыть об этом в процессе Save-Load, есть onEachLaunch.

API
Не обошлось и без забавных багов

Скрипт сам по себе был бы бесполезен, если бы у него не было налаженного канала общения с ядром игры. Таким формальным каналом является Интерфейс Разработчика (в народе API). Для Нортгарда разработчики игры постарались открыть и задокументировать как можно больше функционала (и сообществу этого всё равно недостаточно). Спасибо системе документирования, которую они используют, прямо в исходном коде игры все необходимые функции комментируются прямо перед определеним (как Doxygen, JavaDoc, pyDoc и прочих).

Представленная документация конечно же неидеальна, полна опечаток и взаимоисключающих параграфов, но уже даже в таком зачаточном виде даёт достаточный инструментарий для того, чтобы придумывать интересные сценарии. Конечно, TowerDefense, RPG мод, кучи 1v1, Imbalance, Skill-test, micro trainer, типичный набор любой модифицируемой RTS уже вышел за два месяца. Ждать полную библиотеку Warcraft 3 модов, конечно не приходится, Нортгард изначально не предполагал такой степени модернизации, да и игра вышла уже достаточно давно и не стала хитом продаж, поэтому оставить работать над ней всю команду для инди-разработчиков неподъёмная задача. Они уже давно переключились на новый проект, и надо сказать спасибо хотя бы за то, что выпускают патчи баланса и (иногда) новые кланы в DLC.

Редактор Сущностей

Редактор разочарования, так бы я его назвал. Сама идея и даже техническая реализация выше всяких похвал. Мы получили доступ к тому инструменту, что скорее всего пользуют сами разработчики. Я просто оставлю этот скриншот здесь, посмотрите на потенциал.

Но… Графику менять нельзя, имя тоже, описание, флажки, переключающие разные свойства… Props, values и cost, вот, что доступно для модификации, и то у некоторых объектов их самые важные свойства прописаны в игровой логике (как говорят программисты — it's hardcoded).

Для модификации доступна лишь малая часть параметров. Остальная показана для того, чтобы мы сидели и облизывались, не иначе. Кроме того, сам редактор (базы данных) сущностей это только первый шаг. Нужны также средства (де-)компрессии пакетов графики и звуков, возможность добавлять новые объекты в саму базу, а не только менять старые и полная разблокировка всего, что сейчас Read-Only.

Ну и самое главное — Кланы. Это основа Нортгарда и в первую очередь сообщество бросилось экспериментировать именно с ними (у игры уже давно в Steam.Guides больше половины — это воображаемые кланы от сообщества). Но у игры модель поддержки исключительно через продажу новых кланов, поэтому создавать новые или даже смешивать DLC кланы с бесплатными в модах не дают, иначе тут же бы появились бесплатные карты с платным контентом. Редкий случай, когда хочется сказать, «лучше бы лутбоксы продавали».

Из хороших новостей, в Дискорде разработчики в прямом контакте с сообществом и постоянно на связи. Какие-то мысли до них можно донести, но опять же, в виду скудных ресурсов студии, вряд ли мы получим полноценный «Редактор Кланов» хотя бы того же уровня, что редактор карт.

Многопользовательские Моды

Ну и совсем коротко о новшестве, появившемся между моментом начала написания этой статьи и окончанием. А вы что, думали в сетевой стратегии поддержку модов добавили сразу с мультиплеером? Нет, не сразу, зато теперь моды можно запускать и по сети. Это то, чего все так давно ждали. Работает правда не очень стабильно. Да и в первую неделю после добавления половина модов перестала работать. Ждём больших изменений именно в этом направлении.

Реклама

А раз речь идёт про многопользовательские моды, то нельзя не прорекламировать себя, то есть мод Ravegard. Я большой фанат клана Ворона в Нортгарде, но всегда чувствовал, что в соревновательном режиме ему делать особо нечего (исключая, конечно, раш торговой победы, что супер скучно и уныло). Поэтому как только выпустили редактор карт, первым делом попытался добавить в него своих любимых ворон!

Если бы все возможности редактора и API работали так, как планировалось, а в игре было бы чуть меньше багов, это был бы мод про колонизацию отдельных островов и войне за Архипелаг (в противовес основному режиму Нортгард — когда вы начинаете на берегу и развиваетесь внутрь острова), но реальность осаживает, поэтому это теперь «контроль территории с тремя контрольными точками». Нестареющая классика, как Team Fortress 2, например.

map paint skillz

Хотелось ещё сказать и про спонтанно появившуюся рубрику от разработчиков Mod of the Week, и про другие интересные моды, но это уже материал для другой статьи.

Турнир 2 на 2

Когда статья только была создана в песочнице, во всю шёл турнир по Нортгарду с солидным призовым фондом (ну, по меркам Нортгарда, естественно) — первое место 300$ и 100$ за второе. Турнир, а точнее «лига», проводился по достаточно интересной для любительских мероприятий схеме — сначала 8 недель чемпионата, где 40 команд играют друг с другом по 3 матча в неделю (3 матча с одним и тем же противником), а потом на финальных выходных сам турнир с двойным выбыванием в который попадают первые 16 мест итоговой таблицы.

Формат доставляет, хотя бы тем, что в отличие от рейтинговых игр в самом Нортгарде, здесь на каждый матч нужно делать «торги» за кланы (Picks&Bans). Всего в игре 11 кланов, 6 обычных и 5 из платных DLC, каждый матч начинается с двух банов (по одному от каждой команды), потом следует по одному выбору, потом снова бан, потом снова добор. В команде не может быть играть два одинаковых клана и нельзя банить уже кем-то выбранный клан. Поэтому на самом деле, набор комбинаций на турнире был не так и велик как кажется, учитывая наличие «меты» и «дисбаланса». Обычно команды послабее, как например наша, банят самые метовые кланы, а команды посильнее банят имбалансые кланы.

Можно смело сказать, что уровень участников примерно представлял срез всего сообщества игры, что достаточно удивительно. Я имею в виду, что на турнир-о-лигу не стеснялись записываться как совсем неопытные новички, так и топ рейтинга (если не ошибаюсь из первой десятки играло 4 игроков). Это было заметно особенно сильно в первые недели, когда команды сталкивали случайным образом. Большинство серий (из трёх полных игр, не до двух побед — best of three) заканчивалось 3:0 причём в одну калитку. Позднее когда комнады уже показали себя, турнирная программа должна была сталкивать соседей по таблице, и тогда уже пошли довольно интересные столкновения.

По итогу самой скучной частью стал плэй-офф турнира, а самой скучной его стал финал. Играли две лучшие команды турнира и уж точно топ10 игроки мира, но в серии (до трёх побед, best of 5) отыграли абсолютно все карты одинаково. Одинаково скучно и невариативно. Таковы реалии игр с метой и оптимизацией военной экономики. Все, кто хотели показать анти-метовую стратегию отлетели до финала, а оставшиеся не смогли или не захотели предоставить что-то другое, и не стали банить друг другу кланы, потому что сами играли такие же стратегии.

В рамках подготовки к турниру я старался смореть все трансляции на Twitch по Нортгарду, и особенно всех, кто стримил турнирные игры (это было не сложно, почему-то желающих было не много). Какие-то выводы записывал в «Эксель», чтобы иметь подсказку. Вот один из графиков (с гистограммой распределения количества побед) из личной коллекции. По оси Х — количество побед, по оси Y — количество команд. При теоретическом максимуме в 21 (из 8 недель отыграли только 7), максимум реальный был 16 и добилась этого ровно одна команда.

Могу смело сказать, что именно игры лиги доставляли и давали пищи для размышления больше всего, и «вот это поворотами», и «comeback-ами», и вариантами стратегий и кланов. А игры на выбывание и финал пресно пережовывали давно известное, не добавляя ничего нового.

Обратите внимание, что база красного игрока захватывается воеводой серых. Армия бежит на защиту, но...
… добежать не успевает.

Не известно когда появится следующий доброволец и организует турнир для сообщества, но известно точно, что он будет. Плюс, возможно, сами разработчики пойдут на встречу в этом плане и предоставят площадку, инструментарий или хотя бы информационную поддержку через официальный Дискорд на постоянной основе.

Летний Патч и Опыт Тестирования

 Самая короткая новость уже сильно после изначальной версии статьи. Раз она задержалась, придётся отдуваться за всё лето, прошедшее с тех пор.

Как раз аккурат к концу турнира я попал в команду бета-тестеров Нортгарда через Дискорд. Нам выдали ключи к бете в Стиме, предварительный список изменений и отдельный канал на сервере игры. Что с этим делать, думаю всем понятно: список прочитать и переварить, бету поиграть и оценить, а в канал писать свои чрезвычайно важные мысли и остроты.

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

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

Итого

Нужно подвести итог, но статья как монстр Франкенштейна собрана из разных фактов и мыслей. Поэтому и вывод придётся клеить из частей. Нортгард сейчас — живее всех живых, и гораздо интересней чем он был даже на момент выхода. Мне как разработчику, наконец-то стало интересно проводить время, зная, что в любой момент можно зайти в редактор и посмотреть как работает то или иное здание в игре. Также возросла активность сообщества, пяти минут не проходит, чтобы кто-нибудь не добавил свой мега важный мод, в котором территории составлены кругом. Или квадратом. Или раз в пол года из леса набигают эльфы и грабят корованы, ну вы знаете.

Также, хотелось отметить очень коротко новости, не попавшие в основную статью.

На кикстартере успешно запустилась и была собрана сумма на настольную игру по Нортгарду, в которой собственно элементов компьютерной игры немного осталось, и судя по успеху, расширенный набор (за 70$) имеет столько ништяков, что любители коллекционировать качественные игры и не обязательно в них играть, останутся довольны.

А разработчики объявили о новом покемоне, то есть клане, но без подробностей. Будет, и то хорошо.

P.S: Посмотреть случайные стримы по игре можно на моём канале или просто по тэгу Нортгард на твитче, там всегда кто-то да вещает. Все комментарии и предложения будут рассмотрены, баги и опечатки пофикшены. Более специфические статьи в продолжение темы Нортгарда будут, если будут желающие. Могу рассказать больше про жанр RTS в целом, про разработку игр в нём, или рассказать про других его интересных представителей.

Автор не входит в состав редакции iXBT.com (подробнее »)
Об авторе
Играю в игры. Делаю игры. Обожаю игры.Пишу про игры, но не часто, потому что не хочу выкладывать три страницы А4 текста первых впечатлений, с тремя-пятью скриншотами интерфейса из первой же трети игры, с громким заголовком. Этого в Интернете и без меня навалом.

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

102984339993666487511@google
Одна из лучших живых RTS сейчас из тех что есть на рынке.
SanctusSusanin
Согласен с предыдущим оратором!
Плюс сейчас она переживает второе дыхание

Добавить комментарий