MOUNT & BLADE II: BANNERLORD - БЛОГ ПРО GAUNTLET


 

Приветствуем воинов Кальрадии!

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

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

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

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


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

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

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

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



 

В блоге на следующей неделе мы поговорим с помощником дизайнера, Cihan Şekercioğlu. Если у вас есть какие-либо вопросы, которые вы хотели бы задать ему, пожалуйста, оставьте вопрос в комментариях, и мы ответим на него.


Перевёл Драгхун для commando.com.ua
MOUNT BLADE 2 BANNERLORD (основное)
Об игре



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

Комментариев 8

Царь
syabr
Титул: Главный динозавр и ГГ сайта
Офлайн 13 октября 2018 10:02 поделиться
Дим и Драгхун, большое спасибо за перевод. Знаю, это был нелёгкий труд.


Танки грязи не боятся, сама отвалится
Я на Всадниках Кальрадии: https://rusmnb.ru/index.php?action=profile;u=18932
Толмач
Драгхун
Офлайн 13 октября 2018 10:18 поделиться
Ничего страшного. Но что-то смутило, это может привести к сложностям в мододелании, надеюсь наши мододелы и толмачи найдут выход. Иначе Баннелорд станет игрой, у которой весь языковой механизм будет в алгоритмах и программных ключах, усложняющих переработку, как моделей, так и файлов, отвечающих за интерфейс. Но будем надеяться, что будет всё хорошо.


Один в поле воин! И к тебе присоединятся, даже если вокруг ни души...
Офлайн 13 октября 2018 16:07 поделиться
Что же они так долго тогда игру делали, раз у них есть Gauntlet? Или на разработку Gauntlet у них ушло столько времени?


Кто творит добро, имея неограниченную возможность делать зло, тот достоин похвалы не только за содеянное добро, но и за все то зло, которого он не делает.
Друг сообщества
praefectus
Офлайн 15 октября 2018 16:57 поделиться
Чем-то мне gauntlet разработчиков баннерлорда напоминает жуткую кашу из кастомного html и css. Очень надеюсь, что под капотом никакого webkit'а там нет.
А вообще не понятно, зачем так было оборачивать все
Зачем делать явный тег <Children> для каждого виджета, если его содержимое (text) является child-node'ами, только усложнили разметку и увеличили количество отступов.
Еще очень надеюсь, что кто-нибудь из таликов догадается написать подробный гайд по атрибутам каждого тега, да и по тегам в целом. Иначе это все будет китайской грамотой.
П.С.
Очень напрягает WidthSizePolicy="fixed", SuggestedWidth="126". (аналогично для высоты) Если это пиксели, а не какие-то условные единицы грида интерфейса, то могут быть проблемы с масштабированием на разные разрешения экрана. Не все играют в full hd


praise the sun
Друг сообщества
Pigrik
Офлайн 15 октября 2018 17:06 поделиться
praefectus, но ведь если не gauntlet, то про что писать в блоге? smile15


Полуголова
KindFey
Офлайн 15 октября 2018 18:55 поделиться
Pigrik,мы все еще ждем интервью с мойщиком окон, разносчиком пиццы и прочими очень важными лицами в талевордах. там же тем для блогов - на годы вперед.


Vigilo Confido
Отрок
Toyder
Офлайн 18 октября 2018 09:27 поделиться
KindFey, а как же интервью человека который каждый день проходит мимо офиса тейлворлдс? Такое разве ты не хотел бы послушать? 


Полуголова
KindFey
Офлайн 18 октября 2018 17:26 поделиться
Toyder, я думаю что впереди нас ждет еще множество чудесных историй. может быть одна из них и будет об этом человеке)


Vigilo Confido
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Онлайн

Сейчас на сайте: 30
Гостей: 28

Пользователи: 
- отсутствуют

Последние комментарии

MOD wind of the war - New Era 74fix8
AlexJoestar, Вчера, 14:49
Ни разу не выпала легендарка из эпического сундука. Некромантия выглядит почти бесполезной из-за...
Флудилка V3
Mons.Marteleur, Вчера, 12:35
Приветствую. Не уверен, что здесь кто-то сможет помочь, всё таки тема летсплеев на ИГ слишком уж...
MOD The Horde Lands (1.22)
Mons.Marteleur, Вчера, 08:56
Цитата: Agrail209syabr, Я уже даже компьютер поменял. Просто вылетает и всё. Уже весь майкрасофт...
MOD Aut Caesar aut nihil
OTTO, 29 октября 2024 23:12
vasul, дарофф. Я живой. Увы но взяться за перевод сейчас нет возможности. Увы война отнимает много...
MOD wind of the war - New Era 74fix8
nerstarg, 21 октября 2024 22:22
вроде бы у мода слили новую версию под номером 75 Fix 30.2 (точно не 75fix3 - там файлы датированы...
MOD Napoleonic Wars Functional/UI pack
glik, 20 октября 2024 13:33
Есть ли у кого-нибудь еще такая модификация?...
MOD NOVA AETAS (ОБСУЖДЕНИЕ)
Hezed, 17 октября 2024 13:55
gogotop, Вашу проблему легче решить. Вам нужно дождаться пока лорды будут проходить рядом с...
MOD Honour&Glory (Честь и Слава)
Дима Гончар, 15 октября 2024 17:18
Andriyko, запрошую доречі у наш discord сервер, там ми можемо оперативно відповідати на питання і...
MOD Honour&Glory (Честь и Слава)
Кривий Ніс, 15 октября 2024 17:15
Andriyko, це фракційний козацький квест. Береться в Байди Вишневецького, якщо з козаками позитивні...