Mount & Blade 2: Bannerlord
  

Mount & Blade II: Bannerlord. Блог Разработчиков 74. Платформа Gauntlet

Разработка игр может быть коварным делом. Иногда существующая технология или инструмент не делают того, чего вы от них хотите или не настолько эффективны, насколько вам бы этого хотелось. Эта проблема приводит вас к трудному выбору: изменить дизайн или создать ваши собственные уникальные решения.

Это то, что мы поняли, работая над Пользовательским интерфейсом (ПИ) для Bannerlord. Ранее мы использовали комбинацию Flash и Scaleform для создания нашего ПИ, что на самом деле довольно распространенный метод в игровой индустрии. Мы начали с создания ПИ во Flash, прежде чем использовать Scaleform для работы ПИ в игре. Технически, как Scaleform, так и Flash функционировали отлично и предоставляли нам возможность реализовать ПИ так, как нам нравилось. Однако прошло не так много времени, прежде чем мы заметили некоторые проблемы с общим процессом создания и реализации ПИ, которые, по нашему мнению, необходимо было решить.

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

Кроме того, Scaleform и Flash являются сторонними платформами, над которыми мы имели ограниченный контроль. Трудность изменения и модификации этих систем, в зависимости от наших потребностей, заставила нас усомниться в усилиях, которые мы прилагали, чтобы заставить их работать.

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

И это была очень пугающая перспектива, потому что мы уже вложили тысячи человеко-часов в существующий ПИ. К счастью, в начале процесса разработки мы решили использовать парадигму MVVM для создания ПИ. Это означает, что часть кода была в аккуратных C# классах, что не зависело от какой-либо конкретной библиотеки ПИ, и мы могли бы повторно использовать эту часть нашей работы, даже если бы нам пришлось делать все остальное заново. Ура!

Затем нам нужно было решить, как будет выглядеть наша новая библиотека ПИ. Мы придумали список требований:

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

Мы решили назвать нашу новую платформу ПИ Gauntlet (По той простой причине, что это название показалось нам крутым!). С Gauntlet мы можем вносить изменения на лету. Это означает, что мы можем редактировать экран не закрывая игру, без каких-либо созданий файла или других дополнительных шагов. Когда мы вносим изменения в .xml файл экрана, мы видим результаты, как только мы сохраняем этот файл. И поскольку у нас есть полный контроль над системой, мы можем вносить изменения по мере необходимости.

Итак, как же это работает? На самом деле, система довольно проста. Мы подсоединяем .xml файл к экрану в игре, который игра загружает, когда экран открывается. Вся информация о макете экрана указана в этом файле. Мы также можем ссылаться на другие .xml файлы в каждом .xml, что означает, что если мы создадим элемент ПИ, который мы будем использовать более одного раза (т. е. на других экранах), мы можем просто обратиться к этому элементу. Это позволяет нам вносить изменения в файл, и эти изменения происходят везде, где мы ссылаемся на этот .xml.

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


Экран инвентаризации .XML


Меню инвентаря в игре

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

Нравится7
Комментарии (12)
  • Сколько можно ждать :С
  • А_НАС_РАТЬ #
    8
  • _N7. #
    1
    Ща будет нытьё насчёт даты выхода игры
  • Слава Шавлак #
    0
    _N7.
    Что в этом такого? Это уже привычное дело для каждого в отношении к этой игре. Под каждым постом кто-то "ноет", мог бы уже привыкнуть к этому
  • сКард #
    0
    Слава Шавлак написал:
    Под каждым постом кто-то "ноет", мог бы уже привыкнуть к этому

    каждый день и машины, например, угоняют, но это же не значит что это норма и
    привычное дело
  • _N7. #
    0
    Слава Шавлак
    Да то, что такие индивидуумы не могут просто пройти мимо, обязательно надо о чем то поныть, в тех же блогах про ассасина последнего этих нытиков туева хуча, что спрашивается с ними не так? не нравится - проходим мимо, в чем проблема то? Интересно иногда просто почитать комментарии, что думают люди об информации представленной в блоге, а когда все комментарии об одном и том же, и сводятся к такому вот нытью, то желание читать комментарии, узнавать чьё-то мнение резко падает и складывается двоякое впечатление о таких вот людях...
  • Extor Menoger #
    1
    Слава Шавлак
    Чёж над киберсрунком не кто не ноет ?
  • В модах на сталкер тоже все диалоги и большая часть настроек была в формате .xml. Я будучи ещё школьником любил вставлять всякие хохмы а потом ржать как дурак встречая их в игре.
  • Слава Шавлак #
    0
    Extor Menoger
    Понятия не имею о чем ты. Тут баннерлорд,а не киберпанк. Я не слежу за ним
  • Слава Шавлак #
    0
    сКард
    Ну машины это другое и более серьезная проблема, а эти бесконечные гневные комментарии или по-другому нытье не такая уж и проблема. Уж точно такие комментаторы со своими комментариями не стоят твоих потраченных нервов, старайся их пропускать
  • Слава Шавлак #
    1
    _N7.
    Как я ответил выше другому человеку, старайся просто их пропускать. Сколько времени не пройдет, они всегда будут, под каждым постом есть такой человек и я ,кажется, научился с этим жить))
    Но иногда у меня тоже полыхает)
  • сКард #
    0
    Слава Шавлак написал:
    нытье не такая уж и проблема

    согласен, вообще не проблема.

    Слава Шавлак написал:
    не стоят твоих потраченных нервов

    ни сколько не напрягает, просто вместо
    старайся их пропускать

    я стараюсь их высмеивать.
B
i
u
Спойлер