Простая схема моддинга
Простая схема моддинга
Заголовок раздела «Простая схема моддинга»Не нужно учить архитектурные диаграммы. Нужно понимать какой слой отвечает за какую проблему.
Стек человеческим языком
Заголовок раздела «Стек человеческим языком»Сама игра и объекты, с которыми в итоге взаимодействует мод.
Находит метаданные модов, компилирует/загружает их и даёт коду точку старта.
Метаданные: идентичность, версия, target build и зависимости. Это не игровая логика.
Твой C# entry class. В текущем протестированном WBML-каркасе он наследуется от BasicMod<Main> и использует OnModLoad().
Первый источник evidence: compile errors, строки загрузки, твои marker и runtime exceptions появляются здесь.
Поддерживаемая поверхность NML или другого мода, например PoliticalWorldAPI. Если публичный API решает задачу — лучше начать с него.
Инструменты для поведения и внутренних частей, которых нет в публичном API. Они сильнее зависят от версии, поэтому новичку нужны не первыми.
Что происходит при запуске
Заголовок раздела «Что происходит при запуске»Для маленького мода думай в таком порядке:
mod.json можно прочитать ↓C# можно скомпилировать ↓класс мода можно загрузить ↓OnModLoad() запускается ↓появляется твой marker ↓работает код механикиЕсли цепочка сломалась сверху, код ниже её не починит.
Три совершенно разные поломки
Заголовок раздела «Три совершенно разные поломки»В логе вообще нет активности NML — пока бессмысленно чинить свой Political World action.
error CSxxxx — compiler не смог собрать мод. Начинай с точного сообщения компилятора.
Marker [My Mod] Loaded есть, но кнопка ничего не делает — каркас уже загрузился; теперь проблема внутри конкретной механики или её runtime assumptions.
Исходник не всегда равен runtime
Заголовок раздела «Исходник не всегда равен runtime»Документация отдельно помечает inspected source и реально протестированное runtime-поведение. WBML уже находил случаи, где старый source snapshot и PoliticalWorldAPI 1.14.0 вели себя по-разному. Поэтому у страниц есть Verified / Observed / Testing, а не видимость абсолютной истины.
Дальше: проверить первый минимальный мод.