Вход

Регистрация

Восстановление доступа

Dasik Library

Dasik Library

|

dasikigaijin

Универсальная база для модов Fabric, предоставляющая инструменты для динамических правил, генетики и AI.

Мод Dasik Library для Minecraft — библиотека для динамических правил и генетики

Dasik Library — это универсальная API-библиотека для модов Fabric, которая решает архитектурные проблемы разработки: динамическую регистрацию правил, синхронизацию генетики животных и оптимизированный стайный интеллект. Она работает как фоновая инфраструктура, не добавляя собственных предметов, и обеспечивает совместимость с клиентами и серверами.

🧠 Введение и архитектурная роль

Dasik Library — это универсальная автономная библиотека и API, созданная для решения фундаментальных архитектурных проблем при разработке современных модов для Minecraft на загрузчике Fabric. Разработчики часто сталкиваются с трудностями: регистрацией динамических правил GameRules без блокировки неизменяемого реестра, синхронизацией генетики животных и атрибутов масштаба через циклы сохранения мира, организацией сложного искусственного интеллекта стай без падения частоты тиков сервера, а также безопасной интеграцией пользовательских интерфейсов настроек, не вызывающих краши на выделенных серверах. Dasik Library выступает в роли высокопроизводительного фундамента, обеспечивающего работу модов из коллекций Vanilla Outsider, Delayed Gratification и Instant Gratification. Она работает тихо на фоне, предоставляя общую инфраструктуру для AI, генетики и реестров, не добавляя при этом собственного игрового контента или генерации мира.

Dasik Library Banner
Dasik Library Banner

🛡️ Ключевые принципы работы

Библиотека спроектирована с использованием строгих путей без выделения памяти (zero-allocation hot paths), изоляции Knot ClassLoader и модульных API. Это обеспечивает корпоративный уровень стабильности и производительности. Важное архитектурное решение — полная готовность как для одиночных клиентов, так и для мультиплеерных выделенных серверов. Библиотека гарантирует 100% защиту от крашей на серверах, предотвращая загрузку классов графического интерфейса клиента, что устраняет фатальные ошибки NoClassDefFoundError при запуске сервера. Также реализована автоматическая очистка «сиротских» правил при запуске сервера, которая удаляет оставшиеся динамические правила после удаления модов, сохраняя файлы сохранения мира чистыми и не засоряя их консольными сообщениями.

🧬 API генетики животных и разведения

Dasik Library предоставляет мощный API для автономной генетики животных. К живым сущностям прикрепляется модель генетических данных, не зависящая от типа сущности, через постоянные Fabric-приложения (dasik-library:genetics). Это позволяет сохранять родословную, UUID и родовые признаки через циклы сохранения мира. Реализована математика естественного биологического разведения, включающая треугольное распределение мутаций, усреднение родительских признаков, штрафы за инбридинг нескольких уровней и генетическое восстановление при скрещивании. Также доступен Size-Stats Builder & Linked Attributes, позволяющий связать физический масштаб сущности (minecraft:scale, настраиваемый от 0.1f до 3.0f) с вторичными атрибутами (Максимальное здоровье, Скорость передвижения, Урон атакой) через LinkedAttributeRegistry с линейным, обратным или квадратичным масштабированием. Система использует GeneticsLootRegistry и хуки лута для динамического масштабирования дропа, урона от мяса и ресурсов на основе размера сущности и генетического здоровья.

📊 Сравнение реализации: Ванила vs Dasik Library

Функциональная областьВанила / Стандартные модыDasik Library
Регистрация правил GameRulesТолько статическая регистрация на этапе сборкиДинамическая разморозка реестра во время выполнения + автоматическая инъекция переводов
Сохранение правилТолько статические правила сохраняютсяДинамическое хранение в game_rules.dat через SavedData
Обработка сиротских правилИспортить сохранения или оставить мусор навсегдаАвтоматическая очистка при запуске сервера (pruneOrphanedRules)
Сложность AI стайДорогостоящие циклы парных расстояний $O(N^2)$Оптимизированный паттерн лидера-последователя $O(N)$ с кэшированием состояния стаи
Двигатель генетикиПлоское наследование ванильного разведенияОтслеживание родословной, мутации, связывание масштаба и масштабирование лута
Диапазон атрибутов масштабаЖесткое ванильное масштабированиеНастраиваемый диапазон [0.1f, 3.0f] с привязкой к статистике
Опциональный GUI настроекЧастые краши на серверах (NoClassDefFoundError)Изоляция через рефлексию и Knot ClassLoader с нулевым риском для сервера

⚙️ Движок динамической регистрации правил

Dasik Library включает движок автоматической регистрации правил, который безопасно размораживает BuiltInRegistries.GAME_RULE во время выполнения через MappedRegistryAccessor. Это позволяет потребителям модов регистрировать кастомные GameRules без гонки условий при запуске или блокировок реестра. Динамически генерируются машиночитаемые ключи перевода и внедряются непосредственно в карту Language ванилы (dasik$injectDynamicGameRuleTranslations), устраняя отсутствующие строковые заглушки и включая форматирование жирным шрифтом категории (§l). Изменение правил через команду /gamerule надежно сохраняется в файлах сохранения мира level.dat и game_rules.dat благодаря перехвату сериализации SavedData в GameRuleMapMixin. Встроенные утилиты для расчетов включают конвертеры для процентов, промилле и децилей (getPct, getChance, getProb, getDecileFloat). Важно: глобальный файл конфигурации определяет значения по умолчанию только для новых миров. В существующих мирах настройки меняются через экран Edit Game Rules или команду /gamerule.

🦅 Высокопроизводительный стайный интеллект (Cached Boids)

Для реализации AI стай используется оптимизированный паттерн Leader-Follower со сложностью $O(N)$, что устраняет дорогостоящие проверки парных расстояний $O(N^2)$. Вычисление и кэширование метрик группы (FlockState) происходит исключительно на Лидере стаи, что позволяет обеспечивать плавные стаи из 100+ сущностей при стабильных 20 TPS. Реализованы векторные расчеты управления выравниванием (Alignment), когезии (Cohesion) и разделения (Separation) для реалистичных воздушных стай (AerialFlockingStrategy) и наземного движения стад (TerrestrialFlockingStrategy). Интегрировано игнорирование штрафов навигации по воде и пороговые значения телепортации для догачивания, чтобы члены стаи не терялись через границы чанков.

📡 Умный сигнал и изоляция событий (Hive Mind)

Высокоскоростной SignalBus позволяет мобам отправлять и получать предупреждения, сигналы тревоги и обновления настроения между видами без жестко закодированных связей классов. Обеспечена изоляция области действия доставки сигналов (Scope.SAME_SPECIES, Scope.HERD, Scope.GLOBAL) с безопасными проверками экземпляров. Архитектура с ленивым замораживанием (Lazy Freeze Architecture) решает проблемы гонки условий при инициализации модов, позволяя модулям регистрировать социальные события во время инициализации мода, пока реестр блокируется безопасно в тике сервера.

🖥️ Интеграция GUI и безопасность ClassLoader

Модуль GuiHelper динамически обнаруживает и вызывает YetAnotherConfigLib (YACL) и Cloth Config через рефлексию и изоляцию Knot ClassLoader. Это обеспечивает полную защиту от крашей на выделенных серверах, предотвращая загрузку классов графического интерфейса клиента. Также предоставляется DasikSupportHelper для встраивания стандартизированных кнопок поддержки создателя на индексе 0 страниц категорий экрана конфигурации.

🚀 Быстрый старт для разработчиков

Интеграция Dasik Library в собственный мод Fabric занимает всего несколько строк кода. В `build.gradle` необходимо добавить репозиторий Modrinth Maven и объявить зависимость. Для регистрации динамического правила используется `DynamicGameRuleManager`, который автоматически создает перевод на английском языке и добавляет жирное форматирование категории. Для связывания физического размера с здоровьем и скоростью используется `SizeStatsBuilder` с `LinkMode` (PROPORTIONAL, INVERSE и т.д.). Для безопасного наблюдения за новыми записями реестра других модов используется `DynamicRegistryScanner`, который позволяет обрабатывать новые предметы динамически при запуске и горячей перезагрузке.

🧩 Рекомендуемые моды и проекты

Dasik Library служит двигателем для множества популярных модов. Collapsible Game Rules модернизирует экран редактирования правил в раскрывающиеся категории с поиском в реальном времени. Better Dogs представляет собой полный пересмотр поведения собак с интеллектом личности, стайными murmuration и ездой на транспортных средствах, использующий AI flocking библиотеки. Natural Reproduction — это автономный двигатель разведения и генетики для 27 видов дикой природы, построенный напрямую на Animal Genetics.

⚖️ Лицензия и права на распространение

Проект открыт под лицензией GNU GPLv3. Вы полностью можете включать этот мод в любые модпаки на любых платформах. Однако файл мода должен скачиваться напрямую через официальные каналы распространения (Modrinth или CurseForge). Перезагрузка, зеркальное отражение или распространение оригинального JAR на сторонних зеркальных сайтах, скрапер-порталах или неавторизованных лаунчерах строго запрещены. Разрешено форкнуть репозиторий и создать собственные модификации, при условии, что ваш проект останется открытым под GPLv3 с правильной атрибуцией.

Связанные материалы

Автор: dasikigaijin · Лицензия: GPL-3.0-or-later

D

dasikigaijin

4 проекта

|

0 скачиваний

Войдите, чтобы поставить оценку и оставить отзыв.

Отзывов пока нет — будьте первым!
Канал Файл Игра Модлоадер Язык Скачиваний Загружен
Релиз dasik-library-1.8.3.jar 157.4 KB 1.21.11, 26.1.2, 26.2 Fabric 0 11.07.2026