ModuleSystem++


Давным-давно (в 2015, а может и в 2014, а может и в 2013...) нарыл одну вещь - ModuleSystem++ (сверх быстрый компилятор модульной системы), но чет никому тогда не рассказывал. Я немного допилил этот проект, и хочу о нем рассказать.

ModuleSystem++ разработан как замена для стандартного компилятора модульной системы, предоставляемого Taleworlds, обеспечивая значительно улучшенную производительность и расширенные возможности, потенциально полезные в разработке мода под Warband

Итак, ModuleSystem++ реализует следующие дополнительные функции:
1) Вывод списка ресурсов (меши, модели, анимации...), используемых в моде.
2) Обфускация глобальных переменных и имен скриптов.
3) Вывод списка неиспользующихся скриптов.

Скорость компиляции:

ModuleSystem++
Default (стандартный компилятор модульной системы)
Native~7.5 с (первый запуск, при следующих ~3.2 с (из-за кеширования header файлов))
~44.3 с
             
Для бенчмарка я использовал следующий компьютер:
Windows 8.1 x64
Процессор: AMD Athlon(tm) 64 X2 Dual Core Processor 4200+  2.20 GHz
Оперативная память: 5.00 GiB

НО! В отличии от стандартного компилятора модульной системы, ModuleSystem++ требует Python3 (если точнее 3.3+)

Как использовать:
0) Необходимо получить саму программу. Тут есть 2 способа:
  0.1) Использовать готовую сборку. Вам для начала необходимо установить Python 3.6.4 x64, и добавить его в PATH. Скачать ModuleSystem++ и положить ModuleSystemPlusPlus.exe, build_module_fast.bat и python36.dll (эти файлы можно взять из архива, который находится внизу темы) в папку модульной системы.
  0.2) Собрать из исходных кодов.
         Если у вас операционная система Linux, то установите рython3, скачайте исходный код из github (можно выполнить для этого git clone https://github.com/cuellius/module-system-plus-plus.git) и запустите compile.sh:
           
chmod +x compile.sh
./compile.sh

         Если у вас операционная система Windows, то вам нужен необходимо установить Python 3 (подойдет любая версия, выше 3.3+), и добавить его в PATH. Вам также нужна Microsoft Visual Studio (2015 или 2017, любая редакция). Затем скачайте исходный код  из github. Откройте решение (Solution) в Visual Studio. Настройте его, указав Include Directories и Library Directories к скачанному питону. Скомпилируйте, и получите файл ModuleSystemPlusPlus.exe. Положите ModuleSystemPlusPlus.exe, build_module_fast.bat и python3x.dll (эта dll находится в папке, где вы установили Python) в папку модульной системы
1) Портируете модульку под Python 3 (нам не нужны process_*.py файлы (ведь мы собираемся использовать другой компилятор), поэтому нужно портировать header_troops.py. Возьмите его из моего архива). Как я сказал выше, нам не нужны process_*.py файлы, поэтому можете их удалить.
2) Для компиляции запускайте build_module_fast.bat.

ModuleSystem++ полностью совместима с ModMerger Framework 0.2.5 (при условии, что последний будет портирован под Python 3). Если вам это надо, выполните это самостоятельно.

Использование дополнительных возможностей ModuleSystem++
Общий синтаксис таков: необходимо запускать программу с флагами,
т.е в build_module_fast.bat вместо ModuleSystemPlusPlus.exe необходимо написать ModuleSystemPlusPlus.exe <FLAGS> (например ModuleSystemPlusPlus.exe -compile-data -list-resources)
Описание флагов:
-strict: все некритические ошибки работают как критические ошибки (останавливают компиляцию)
-skip-id-files: не генерирует новые ID файлы, а использует старые
-list-resources: выводит список ресурсов в файл resource_usage.txt (появляется в папке с скомпилированным модом)
-hide-global-vars: обфусцирует имена глобальных переменных
-hide-scripts: обфусцирует имена скриптов
-list-obfuscated-scripts: выводит в файл obfuscated_scripts.txt (создается в папке с скомпилированным модом) имена скриптов обфусцированных скриптов (список вида: оригинальное название = обфусцированние название)
-hide-dialog-states: обфусцирует dialog states
-compile-data: компилирует также module_flora_kinds.py, module_skyboxes.py и module_ground_specs.py. Эти файлы должны находиться в папке модульной системы (там же, где и находятся обычные module_*.py файлы)
-list-unreferenced-scripts: выводит список неиспользуемых скриптов как предупреждения
-no-warnings: подавляет предупреждения
-out-path <OUTPUT_PATH>: переопределяет export_dir в module_info.py на OUTPUT_PATH
-in-path <INPUT_PATH>: компилирует модульную систему, которая находится в папке INPUT_PATH

Лицензия: Apache 2.0 (вообще, я форкнул данный проект у cmpxchg8b, подправил его, и поэтому я выбрал лицензию проекта Apache 2.0, а не GNU GPL v3)
GitHub: https://github.com/cuellius/module-system-plus-plus

Архив с необходимыми файлами: https://drive.google.com/open?id=1UdyYvB4yZoM9fNgimBPg5QxAYW6mktHR



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

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

Друг сообщества
Tissimir
Титул: Тис ягодный
Офлайн 28 апреля 2022 10:05 поделиться
sergosafarelly, судя по всему, Яныч удалил ссылку. Спроси у него на Всадниках, может, даст.


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

Онлайн

Сейчас на сайте: 166
Гостей: 163

Пользователи: 

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

Prophesy of Pendor 3.9
SimbaD, 5 января 2026 23:14
Хтось ще грає?)...
Флудилка V3
SimbaD, 5 января 2026 22:30
Всім привіт...
MOD 457 AD
lupus Nigra, 1 января 2026 18:31
https://www.moddb.com/mods/457ad/downloads/457ad-061325 Ссылка на новую версию мода. Обновился еще...
MOD Perisno
lupus Nigra, 1 января 2026 18:25
https://www.moddb.com/mods/perisno/downloads/perisno Ссылка на версию 1.5.4 Указана версия...
MOD Honour&Glory (Честь и Слава)
Ukropik, 30 декабря 2025 05:25
Как пофиксить ошибку rgl error? Может нужна другая версия warband...
[OSP] - Native Retexture Pack (Item, food, etc.)
the_raven, 20 декабря 2025 00:03
Ссылка битая...
Eastern armor OSP
the_raven, 19 декабря 2025 23:48
Ссылка битая  ...
MOD Road Calradia
Sir Zogrif WineBlood, 12 декабря 2025 19:25
Мод - абсолютно неудобная, неоптемизированная ФИГНЯ Каждый день - заглушка в виде диалога с...
MOD JOIN HOUSES
yura20352, 6 декабря 2025 21:50
обновите мод достойный но на версии 1.3.5 и выше крашиться капец...