Очередной блог разработчиков Mount & Blade 2: Bannerlord
Приветствуем вас, воины Кальрадии!
Модификации всегда были важной составляющей Mount & Blade. За годы существования игры трудолюбивые и талантливые поклонники серии создали целый ряд потрясающих модификаций. Некоторые из них расширяли существующий функционал игры: это, например, модификации Diplomacy («дипломатия») и Pre-Battle Orders and Deployment («расстановка войск перед боем»). Другие стали самобытными, порой завораживающими проектами. Среди них Brytenwalda («Бритенвальда») и Prophecy of Pendor («Пророчество Пендора»). Третьи встраивали элементы ролевой игры и развития персонажа в многопользовательский режим (Persistent World, cRPG), а в четвертые было просто весело играть (Gangs of Glasgow— «Банды Глазго»).
На этой неделе мы хотим обратиться ко всем, кто любит создавать модификации для наших игр. Специально для вас активный участник сообщества под ником Duh, модерирующий раздел модификаций на нашем официальном форуме[forums.taleworlds.com], собрал самые актуальные вопросы на эту тему, а мы на них ответили.
1. На каком языке программирования можно будет писать модификации?
Мы выбрали язык программирования C#. Файлы данных, как правило, имеют формат XML.
2. Какие IDE (интегрированные среды разработки, такие как Visual Studio Express) будут поддерживаться TaleWorlds?
Можно использовать любую версию Visual Studio 2015 (например, издание Community).
3. Можете ли вы предоставить снимки экрана и/или описание и перечень инструментов, которыми пользуетесь вы сами и которые будут доступны создателям модификаций?
Редактор локаций
Редактор мешей
Редактор материалов
Программа просмотра моделей и анимации
Редактор скелета
Редактор повторов
Редактор частиц
Редактор атмосферы
Редактор физики ткани
Редактор путей
Браузер ресурсов
Кроме того, мы предоставим вам свои инструменты для измерения производительности во время выполнения команд. Эти инструменты позволят отследить, как внесенные изменения влияют на производительность.
4. Получит ли сообщество доступ к инструментам для создания модификаций до выхода игры и/или в рамках раннего доступа?
Этот вопрос еще не решен.
5. Будет ли кто-либо из TaleWorlds оказывать сообществу поддержку в создании модификаций (обучать, предоставлять инструменты, давать обратную связь и т. п.)?
Мы откроем для вас сайт с документацией, а также планируем выпустить несколько обучающих роликов. Кроме того, мы будем общаться с пользователями на форумах и слушать ваши предложения.
6. В дополнении Warband количество игровых особенностей, жестко прописанных в коде, постепенно уменьшалось. Можно ли предположить, что в процессе разработки Bannerlord вы также решите, что должно быть жестко прописано в коде, а что — нет?
Скорее всего, так и случится.
7. Будет ли в игре (или в возможностях движка) камера или другой инструмент для записи роликов в формате FMV?
Да, будет редактор повторов.
8. Можно ли будет одновременно выбирать/запускать сразу несколько модификаций (как в играх серии Elder Scrolls) или только одну (как в Warband)?
Игра будет поддерживать сразу несколько модификаций.
9. Как будут организованы текстуры? Будут ли они лежать в одной папке (как в Warband) или будут отдельные подпапки с текстурами земли, доспехов и проч.? Можно ли будет переименовывать папки и менять их структуру?
Ресурсы могут размещаться в любом количестве папок, но их структура по-прежнему одноуровневая, и папки внутри папок не поддерживаются.
10. Каково соотношение элементов, жестко прописанных в коде (движок), и модулей (которые можно модифицировать)? Какой вы дадите уровень доступа к коду интерфейса, ИИ и т. п.? Что с наибольшей вероятностью будет жестко прописано в коде?
В отличие от Warband, непосредственной модификации не будут подлежать базовые скрипты. Однако создатели модификаций смогут добавлять новые скрипты в виде плагинов и модифицировать файлы данных XML. Опыт Warband показал, что после каждого обновления игры модификации становились с ней несовместимы, и их создателям приходилось заново вносить все свои изменения в новую версию скриптов. Кроме того, игроки не имели возможности подключить одновременно больше одной модификации. Новая система будет поддерживать работу сразу нескольких модификаций и упростит жизнь их создателям.
Меняя файлы данных XML, вы сможете модифицировать, добавлять в игру или удалять из нее практически любые объекты: предметы, персонажей, фракции и т. д. Конечно же, вы сможете добавлять новые ресурсы, такие как меши или текстуры.
Вы сможете перепрограммировать сценарии кампании, миссий и заданий. Сценарии кампании действуют на глобальной карте, тогда как сценарии миссий включаются в определенной локации. Например, если вы хотите, чтобы каждые несколько дней на карте появлялся дополнительный отряд бандитов, это можно осуществить с помощью сценария кампании.
Кроме того, можно изменить практически любую формулу в игре. Например, если вы хотите ввести в игру предмет, обеспечивающий ускоренное передвижение по карте, вы можете добавить его с помощью файла XML и скорректировать формулу скорости передвижения по глобальной карте, чтобы при наличии этого предмета на выходе получалось более высокое значение.
Изменить уже существующий сценарий (например, дезертирство из отряда с низким боевым духом) можно двумя способами: либо скорректировать формулу по умолчанию, либо (если по какой-то причине этого недостаточно) отключить существующий сценарий и заменить его собственным.
11. Будет ли возможность задать случайное число (сид)? Это необходимо для генерирования псевдослучайных чисел, на которых, в свою очередь, строятся «случайные» процессы. Возможно ли процедурное генерирование ландшафта, городов, замков, деревень, неигровых персонажей и т. д.?
Да, вы можете использовать любые сиды и генераторы случайных чисел.
12. Какие улучшения мы увидим в системе диалогов? Будет ли система диалогов динамической?
В игре будет мощная система обработки реплик (вы можете чуть ли не встраивать в реплику программы). Эта особенность полезна при модификации диалогов, строк меню, игровых текстов в целом.
13. Сколько фракций поддерживает система? Будут ли простые механизмы для создания или изменения фракций?
Фракций может быть любое количество. С технической точки зрения создание фракции — это всего лишь вызов метода. Сложность заключается в том, чтобы сделать эту фракцию интересной.
14. Будет ли ИИ, управляющий сражением (отрядами и стратегией в целом), жестко прописан в коде или доступен для модификаций?
Самый базовый ИИ, управляющий бойцами, будет жестко прописан в коде, но вы все равно сможете адаптировать такие частности, как агрессивность бойца, его максимальную скорость и т. д. Кроме того, можно задать для отрядов под управлением ИИ точки назначения.
ИИ, отвечающий за боевой порядок и сражение в целом, подлежит модификациям. Вы сможете добавлять новые тактические ходы и боевые сценарии.
15. Будет ли ИИ, отвечающий за поиск пути отрядом и отдельными бойцами, прописан в коде или открыт для модификации?
Поиск пути жестко прописан в коде. Тем не менее, вы можете включать/выключать грани навигационной сетки, так что способы контролировать поиск пути у вас будут.
16. Если ИИ учитывает ландшафт, возможно ли будет получить наглядное представление о локации, основанное на этом понимании? Иными словами, отказавшись от мини-карты в игре, предоставите ли вы структуру или набор операций, которые позволят создавать что-нибудь похожее, то есть упрощенное графическое представление особенностей ландшафта, положения бойцов и, может быть, даже тактики ИИ?
Да, у вас будет возможность рисовать на экране упрощенные изображения. Более того, при желании на экран можно будет вывести графическое представление сразу нескольких локаций. Если они не слишком «тяжелые», на производительности это не скажется.
17. Насколько сильно мы сможем менять ключевые переменные и булевы переменные в базовой механике сражений? Например, сможем ли мы непосредственно редактировать код, с помощью которого засчитывается попадание, задается направление движения бойцов под управлением ИИ, определяется урон, который наносит скачущая лошадь?
Можно будет менять лишь некоторые переменные; константы будут жестко прописаны в коде.
18. Можно ли будет менять цели для стрелков под управлением ИИ?
Да, можно назначить, в какой объект они будут целиться.
19. Можно ли в рамках одной локации сочетать заранее заданные элементы с процедурно генерируемыми?
Да, конечно. Настройте локацию, используя компоненты скриптов: меняйте, добавляйте или убирайте элементы по своему усмотрению. Уже в процессе могут меняться материалы, другие скрипты, физика, свойства полигонов.
20. Как работает поиск пути ИИ? Нужно ли будет в новых локациях создавать навигационные сетки?
Да, вам придется создавать навигационные сетки. В редакторе локаций есть инструмент, автоматически создающий навигационные сетки, однако результаты не всегда идеальны, и мы предпочитаем делать это вручную.
21. Есть ли какой-то встроенный метод вокселизации локации, который позволил бы создать глобальное освещение с помощью простой трассировки лучей?
Нет.
22. Генерируются ли эффекты времен года или их нужно добавлять вручную? Будет ли возможность их предварительного просмотра в редакторе?
Конечно, вы сможете заранее посмотреть в редакторе, как ваша локация будет выглядеть с различными настройками атмосферы. Для разных сезонов можно задать разные материалы почвы и разную листву. Все это можно настраивать.
23. Можно ли будет в редакторе карт или локаций создавать пещеры или тоннели? Можно ли будет менять ландшафт непосредственно во время игры, либо прописать в модификации такую возможность?
Для тоннелей и пещер нужны меши, система ландшафта их не поддерживает. В настоящее время динамические изменения поля высот, задающего ландшафт, в игре не поддерживаются.
24. Каков максимальный размер локации, с которой может работать редактор?
Это зависит от мощности компьютера, в частности, от объема оперативной памяти. Наши локации, как правило, небольшие. Мы хотим, чтобы они быстро загружались и не занимали слишком много места на жестком диске. Да, в игре есть несколько локаций побольше, но это скорее исключение из правила.
25. Можно ли будет нескольким пользователям совместно работать в редакторе уровней? Т. е. можно ли будет на одном сервере вместе прорабатывать локацию?
Нет, такой возможности в редакторе не заложено.
26. Как будут обрабатываться подвижные объекты или части ландшафта? Будут ли на них распространяться те же ограничения, что действуют сейчас в Warband (например, количество полигонов, обнаружение столкновений и т. д.)?
У подвижных твердых тел будет некоторое ограничение на число полигонов.
27. Можно ли будет симулировать течение времени в локации без того, чтобы заходить в нее повторно? Речь о смене времени суток: утро, день, вечер, ночь.
Атмосфера не меняется в реальном времени, поэтому нельзя обеспечить смену дня и ночи без разрывов. Может быть, можно затемнить экран, изменить атмосферу и добавить эффект постепенного появления изображения.
28. Как в Bannerlord будут организованы файлы локаций? Как можно будет ими управлять? Будут ли коды ладншафта и файлы с объектами по-прежнему разделены?
Мы делим файлы локаций на две группы. В первой находятся изменяемые данные для редактора локаций (некоторые — бинарные, некоторые — текстовые), во второй — бинарные файлы, оптимизированные для сокращения времени загрузки.
29. Вы показали, что в игре можно будет создавать оружие. Можно ли будет таким же образом создавать доспехи?
Нет, эта система распространяется только на оружие ближнего боя. Создавать доспехи, щиты, луки и арбалеты нельзя.
30. Означает ли это, что система создания оружия и брони теперь встроена в игру? Если да, то смогут ли художники из сообщества добавлять в игру собственные доспехи и оружие?
Создаваемые и не создаваемые предметы добавляются разными способами, но в модификации можно сделать и то, и другое. Добавлять детали для создаваемого оружия довольно легко. Добавить новое оружие также можно, отредактировав файл XML, в котором указывается, из каких деталей это оружие собирается.
31. Будет ли возможность самостоятельно добавлять скелеты и новые кости? Если да, можно ли будет задействовать «кости» статических объектов для анимации в реальном времени (например, для спецэффектов разрушения)?
Да, к мешам можно привязывать новые скелеты.
32. Что вы можете сказать о размерах модели? Каково ограничение числа полигонов?
Число полигонов зависит от модели, но мы в основном используем LOD-меши.
33. Что вы можете сказать о среднем размере текстуры? Будет ли поддерживаться 4К?
Средний размер текстуры — 2К. Да, можно добавлять в игру текстуры 4К.
34. Будет ли своя физика у каждого предмета снаряжения (декоративные кисти, ткани и т. д.)? Будет ли она у оружия?
Вряд ли физика будет у каждого предмета, но в модификации ее можно будет добавить. В случае оружия она будет носить чисто декоративный характер: меч — это все же не тряпка.
35. Будет ли у нас доступ к исходным файлам шейдера?
Этот вопрос еще не решен.
36. До какой степени будет поддаваться модификации новый PBR-движок? Для PBR (физически корректного рендеринга) текстуры и шейдеры менее важны, чем карты неба, постэффекты в экранном пространстве, а также расположение и свойства источника света. Сможем ли мы, к примеру, создать динамическое глобальное освещение? Стоит ли в принципе надеяться на глобальное освещение и SSR?
У нас уже есть разнообразные постэффекты, и вы, наверняка, сможете добавлять собственные. Да, SSR есть. Теоретически добавить динамическое глобальное освещение можно, но на практике это будет очень сложно, а то и вовсе невозможно.
37. Можно ли будет прописать отдельные варианты анимации для конечностей/костей и применить к ним физику Ragdoll? Это было бы полезно, например, для наглядности ранений в разные части тела.
К сожалению, движок такое не поддерживает.
38. Какие программы для создания и просмотра моделей будут или должны использоваться для Bannerlord?
Базовое полигональное моделирование наши художники делают в основном в Max, Maya и Blender. Мы предоставим описание процесса работы в этих программах. Кроме того, мы используем множество других утилит для уточнения моделей, покраски текстур, их просмотра и т. д.
39. Какие инструменты поддерживают анимацию иконок на глобальной карте?
Некоторые скрипты добавляют циклическую анимацию к предметам в любой локации. Это не так сложно, как система анимации персонажей в сражениях.
На следующей неделе мы побеседуем с Меричем Нешели, разработчиком и главой отдела контроля качества.