Моды перестанут работать в текущем виде - новая система в World of Tanks!

Рейтинг: 5 1 1 1 1 1 1 1 1 1 1 Rating 5.00
Категория: Новости World of Tanks

l1492774383

В ближайшем обновлении World of Tanks разработчики планируют реализовать новый способ подключения модов через так называемые пакеты.Что это такое?

Пэкеджи (пакеты) - это способ организации файлов модов, в котором весь контент отдельного мода упакован в один файл.Зачем это нужно?

Сейчас файлы модов для WoT устанавливаются в папку /res_mods/<версия игры>. При этом файлы разных модов располагаются в одних и тех же папках, и поэтому зачастую сложно определить, какой файл относится к какому моду.

Переход на формат пэкеджей существенно упростит организацию файлов модов: для установки пользователю достаточно скопировать пэкедж в директорию /mods/<версия игры>, а для деинсталяции - удалить ровно тот же файл.
Как устроен пакет?Пакет представляет собой ZIP-архив без компрессии с расширением .wotmod.

Обратите внимание, что архивы с компрессией в текущей версии не поддерживаются, поэтому при создании архива необходимо установить опцию «Уровень сжатия / Compression level» в значение «Без сжатия / Store».Внутри себя пэкедж:

должен содержать папку res/. Сюда помещаются ресурсы мода, то есть все те файлы, которые раньше устанавливались в /res_mods/<версия игры>;
желательно содержит служебный файл meta.xml 
может содержать иной контент, который может понадобиться автору мода для комфортного распространения, – url домашней странички, readme, инструкции и т.п.Как пакет устанавливается?

Пакеты устанавливаются в <директория игры>/mods/<версия игры>.


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

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

Например:

mods/
0.9.17.0.2/
MultiHitLog_2.8.wotmod
DamagePanel/
Some_common_library_3.14.5.wotmod
DamagePanel_2.6.wotmod
DamagePanel_2.8.wotmod
DamagePanel_2.8_patch1.wotmod Файл meta.xml

Необязательный файл meta.xml содержит опциональные поля, описывающие мод. Возможный вариант заполнения.
<root>
<!--Techical MOD ID-->
<id>DamagePanel</id>
<!--Package version-->
<version>0.2.8</version>
<!--Human readable name-->
<name>Damage Panel</name>
<!--Human readable description-->
<description>New cool Damage Panel with feature1.....N </description>
</root>


Значения из указанных полей в будущем будут использоваться в системе управления модами.В каком порядке пэкеджи загружаются?

При запуске клиента все пэкеджи, установленные в папке mods/, сортируются по алфавиту и загружаются в порядке от A до Z.

При необходимости (например, при подготовке модпака) можно организовать ручное управление порядком загрузки. Для этого необходимо разместить в корневой папке с пэкеджами mods/<версия игры>/ опциональный файл load_order.txt.

Формат - Plain text; UTF8; CR+LF. В нем может быть указан альтернативный порядок загрузки модов.

Относительные пути, по одному файлу в строке.

Например:

zzzz.wotmod
bbbb.wotmod
aaaa.wotmod

Пэкеджи, указанные в load_order.txt, загружаются первыми и в порядке расположения их в этом файле. Затем стандартным образом загружаются все оставшиеся пэкеджи, не указанные в load_order.txt.Решение конфликтов при загрузке пакетов

В общем случае система пэкеджей не допускает ситуации, когда в папке res/ внутри разных пэкеджей находятся одинаковые файлы. Такая ситуация считается конфликтом.

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

Т.е. в случае если пэкеджи a.wotmod и b.wotmod содержат внутри себя файл res/scripts/entities.xml, то a.wotmod будет загружен успешно, а b.wotmod вызовет конфликт и загружен не будет.

Для управления обработкой конфликтов можно использовать:

Файл load_order.txt. Пэкеджи, перечисленные в этом файле, не считаются конфликтующими и загружаются без анализа на пересечение имен файлов, т.к. предполагается, что автор load_order.txt знает, что он делает и для чего.
Значение ноды из meta.xml. Пэкеджи, у которых совпадает, считаются разными версиями/частями одного и того же мода, и конфликты между ними также не учитываются.

При наличии одноименных файлов внутри разных пэкеджей, конфликты между которыми разрешены посредством load_order.txt или meta.xml, приоритет имеет файл из последнего загруженного пэкеджа.Когда будет переход на эту систему?

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

То есть следующие несколько патчей можно будет использовать, как wotmod расширения, так и по классике в папке res_mods.

 

Высказывайте свое мнение, что будет в будущем обновлении и как скажется по Вашему мнению