Теория по Forge, моддингу и Minecraft

Версия Minecraft
1.12.2
API
Forge
37
1
3
Может прозвучать странно, но я пишу простенький мод в качестве моего курсового проекта. Сам мод почти закончен и пришла очередь написания отчёта.
Собственно, мне нужна теоретическая информация о фордже и майнкрафте, если конкретнее, то:
1. Как работает Forge. Я узнал, что это API, которое декомпилирует и обфусцирует код майнкрафта, позволяя использовать его классы, при этом не изменяя их. Он позволяет модам не конфликтировать между собой (не знаю, как), добавляет словарь руд. Если не правильно, поправьте.
2. Стадии загрузки (преинит, инит, постинит). В учебнике есть краткое описание, но этого мало. Я так и не понял, эти стадии добавляет сам фордж, или они есть в чистом майнкрафте?
3. Что такое FML.
4. Что такое MCP.
5. Как происходит инициализация чистого Minecraft и как её меняет Forge.
6. Как происходит подгрузка ресурсов.
Любая дополнительная информация кроме перечисленной также будет полезна. Также очень полезными будут любые схемы и диаграммы.
Ссылки, которые уже есть:
How does forge work?
Minecraft Coder Pack
Loading Stages - Forge Documentation
Если есть прошаренные деды-теоретики, прошу поделиться этой информацией из своих архивов.
 

will0376

Токсичная личность
2,075
55
584
как подсказывает вики:
коллекция скриптов и инструментов в помощь разработчику для создания модификаций клиента и сервера Minecraft. Данный пакет инструментов позволяет выполнять декомпиляцию и деобфускацию кода сервера и клиента игры, а также обратные им действия.
ForgeModLoader.
Стадии загрузки (преинит, инит, постинит). В учебнике есть краткое описание, но этого мало. Я так и не понял, эти стадии добавляет сам фордж, или они есть в чистом майнкрафте?
Онли наковальня.
Как работает Forge. Я узнал, что это API, которое декомпилирует и обфусцирует код майнкрафта, позволяя использовать его классы, при этом не изменяя их. Он позволяет модам не конфликтировать между собой (не знаю, как), добавляет словарь руд. Если не правильно, поправьте.
Ну...
сам forge на клиенте/сервере декомпилит майн в srg имена в рантайме, чтоб моды не обосрались при загрузке.

А вот Forge MDK - набор(как и MCP) всего и вся необходимого для быстрого декомпила майна(srg или в mcp маппинги по выбору), и такого-же быстрого билда мода(gradle же).
Про forgeGradle рассказать мне нечего - Чисто враппер для граблей под майн.
 
37
1
3
Это я понял) Интересен сам метод загрузки модов, я вычитал (не могу найти ссылку на источник), что при инициализации движка игры, FML подцепляется к какой-то стадии и подгружает данные из мода. Это верно? И есть ли подробности об этом?
 

Sainthozier

Стрелочник
623
11
369
Учитывая то, что у тебя хватило ума(в очень хорошем смысле) загуглить на английском, то советую расспросить о фордже непосредственно на их сервере в Дискорде. Только один нюанс: абстрагируйся от версии майна, не конкретизируй, если будешь задавать им вопросы. Расскажи как есть, что у тебя курсовая и тебе нужна теоретическая помощь в таких-то аспектах апи. Так же советую заранее подготовить вопросы, чтобы это не превратилось в какой-то холивар или бесконечное обсуждение.
Если не поможет сама тима шестёрок, то можешь напрямую написать mezz, McJty, Darkhax или тому же дружку Вазки, он вроде и в джавке сеньор-помидор и в фордже свеженький огурчик. Ну и по фану можешь предложить упоминание их и их проектов в своей курсовой, либо вообще в соавторы, кекв.
 

will0376

Токсичная личность
2,075
55
584
FML подцепляется к какой-то стадии и подгружает данные из мода. Это верно?
Если я правильно всё понял:
1. Подсасывание jar'ника из mods и mods/<version> и проверка их на наличие валидного mcmod.info
2. Поиск классов с аннотацией @мод и т.п.
2.5. Прочее...
3. Инициализация классов в п.2 вместе с прокси
4. Рассылка стадий в @мод-классы

(ДА НЕ ХОЧУ Я ПИНГОВАТЬ ЕГО.)
 
Сверху