Better Runtime Resource Pack (BRRP)
Библиотека для генерации ресурсов прямо во время игры. Форк ARRP с улучшениями, который помогает мододелам создавать сотни блоков и предметов без тонны JSON-файлов. Работает на Fabric.
Better Runtime Resource Pack (сокращённо BRRP; читается как БРРП) - это библиотека модов для Майнкрафт, которая генерирует ассеты и данные на лету, прямо во время запуска игры. По сути, это улучшенная версия ARRP (Advanced Runtime Resource Pack) - форк с доработками.
Зачем вообще нужен Runtime Resource Pack?
В ванильном Майнкрафте каждый блок требует кучу JSON-файлов: loot table (таблица добычи), blockstates, модель блока, модель предмета, а если есть рецепты - ещё больше. Для одного блока легко набирается 5+ JSON'ов. А если мод добавляет 200 блоков? Вот тут-то и вылезает проблема: мод JAR раздувается, файлов - сотни, редактировать их вручную - ад.
Runtime resource pack решает это так: вместо того чтобы хранить кучу JSON внутри мода, он генерирует их прямо в памяти, когда игра запускается. Мод пишет код, который создаёт объекты (модели, таблицы добычи), а BRRP сам сериализует их в байты и передаёт игре. Игра их десериализует и использует как обычно. Разница только в том, что традиционный ресурспак: файл → байты → объекты, а runtime: код → объекты → байты → объекты. Да, появляется лишний этап сериализации, но это окупается тем, что не нужно хранить кучу файлов в мод-папке и уменьшается размер мода.
Простым языком: вместо того чтобы вручную писать файл для каждого блока "при разрушении выпадает сам блок", мододел пишет один раз в коде - и BRRP сам генерирует нужные таблицы добычи для всех блоков сразу. То же самое с моделями, blockstates и рецептами.
Что особенного в BRRP
Начиная с версии 1.0.0, BRRP полностью отделился от ARRP - он больше не зависит от оригинальной библиотеки, но может работать вместе с ней (co-exist). ID мода сменился с better_runtime_resource_pack на brrp_v1. Код кардинально переписан: обратной совместимости со старыми версиями нет, но старые и новые версии можно ставить одновременно, если нужно.
Важно знать
- Чем BRRP отличается от обычного ресурспака? Функционально - ничем. Обычные ресурспаки (встроенные в мод или установленные игроком) могут переопределять контент, сгенерированный BRRP. Пример: модели блоков генерируются через BRRP, а текстуры к ним всё равно лежат отдельно как PNG-файлы - текстуры на лету генерировать невыгодно.
- Почему это не для игроков, а для мододелов? Потому что BRRP - это API для разработчиков. Если ты не пишешь моды, тебе этот мод не нужен. Но если качаешь мод, который от него зависит - он подтянется автоматически.
- Планы на будущее. Автор хочет избавиться от двойной сериализации/десериализации и передавать игре уже готовые объекты напрямую. Технически это возможно, но нужно, чтобы обычные ресурспаки могли переопределять такие объекты - тут ещё нужны исследования.
Лицензия
BRRP - открытый код под MPLv2. Разработка ведётся на GitHub.
Скачайте BRRP, если пишете моды на Fabric и хотите упростить себе жизнь. На сервере он тоже работает (клиенту не нужен, только на сервере). Для Minecraft 1.20+.