Skip to content
Перейти к содержимому
Вернуться в блог
LeviLamina: Основы моддинга для Minecraft Bedrock

LeviLamina: Основы моддинга для Minecraft Bedrock

Alexandru Maftei
Alexandru Maftei
@ice
Обновлено
27 просмотров
TL;DR:LeviLamina - загрузчик модов на C++, который открывает доступ к глубокому моддингу Minecraft Bedrock Edition, благодаря системе событий и полному API.

"Лёгкий, модульный и универсальный загрузчик модов для Minecraft Bedrock Edition, ранее известный как LiteLoaderBDS"

LiteLDev/LeviLamina, github.com
⭐ 1,553 звёзд💻 C++📜 LGPL-3.0

Хотите добавить кастомные функции в Minecraft Bedrock, но не знаете, с чего начать? LeviLamina - загрузчик модов, который устраняет технические барьеры и даёт инструменты API для создания модов на C++. Это то, что делает расширение Bedrock Edition действительно возможным.

Что делает этот загрузчик

LeviLamina по сути является мостом между вами и внутренними системами Minecraft Bedrock. Однако он предоставляет hook, API и инфраструктуру событий, которые официальные каналы не открывают. Без него (или аналогичного) моддинг Bedrock означает борьбу с закрытой архитектурой игры.

LeviLamina ранее был известен как LiteLoaderBDS, что говорит о том, что проект существует уже давно. Проекту на GitHub 1553 звёзд, что указывает на реальную популярность среди сообщества моддеров Bedrock. Последний релиз, v26.10.10, отслеживает текущее версионирование Minecraft (26.10.x), что поддерживает инструменты в синхроне.

Представьте себе так: моддеры Java Edition имеют Forge, Fabric, Quilt. Моддеры Bedrock практически ничего официального не имеют. LeviLamina заполняет этот пробел. Вы получаете полный API, мощную систему событий, интерфейсы утилит и инфраструктуру для фактического написания расширений функциональности на C++.


Почему моддинг Bedrock всегда был проблемой

Java Edition имеет процветающее сообщество моддинга. Стои мод-лайдеров, тысячи сообществом поддерживаемых модов, годы накопленного знания.

Bedrock Edition? Заперто. Нет официального мод-лайдера. Официальный Scripting API существует, но он преднамеренно ограничен по соображениям безопасности. Хотите добавить кастомные блоки? Создать кастомных существ? Подключиться к событиям, которые не существуют в публичном API? Вы не сможете, если не разберёте Bedrock саму.

Вот разрыв, который заполняет LeviLamina. Он открывает внутренности, которые официальный API намеренно скрывает. Результат - система событий, в которой вы можете реагировать на любое действие сервера. Это позволяет вам запрашивать и изменять состояние игры напрямую. Для серьёзных моддеров Bedrock это незаменимый инструмент.


Установка и настройка

Запуск LeviLamina включает в себя скачивание предварительно собранного загрузчика с GitHub и интеграцию в ваш сервер или клиент. Процесс прост, но требует некоторой ориентации в вашей настройке.

Для сервера вы скачаете пакет серверного релиза со страницы релизов GitHub:

bash
# Скачать последний серверный релиз LeviLamina
wget https://github.com/LiteLDev/LeviLamina/releases/download/v26.10.10/levilamina-v26.10.10-server-release-windows-x64.zip

# Распаковать в директорию Бедрок Дедикатед Сервер
unzip levilamina-v26.10.10-server-release-windows-x64.zip -d /path/to/bedrock-server

Проект предоставляет отдельные сборки: отладочные и релизные версии для сервера и клиента. Windows x64 - основная целевая платформа. Если вам нужны другие платформы, кодовую базу на C++ можно собрать из исходного кода с некоторым дополнительным инструментарием.

Установка клиента следует тем же шаблону, но использует пакет клиентского релиза. Полное руководство по установке и настройке размещено на официальном сайте документации, который подробно описывает оба сценария.


Ядра функций, которые важны

Система событий - это то, где LeviLamina становится интересной. Ваши моды могут подключаться к событиям игрока (присоединение, выход, движение), взаимодействиям с блоками, использованию предметов, боевым действиям и многим другим. Напишите функцию обработчика событий, зарегистрируйте её в LeviLamina, и она будет вызвана всякий раз, когда срабатывает событие. Если вы работали с Fabric или Forge, этот шаблон будет знаком (хотя поверхность API отличается).

API предоставляет прямой доступ к состоянию игры. Сущности, блоки, игроки, предметы, команды - всё это открыто через чистые интерфейсы C++. Вы можете запрашивать данные мира, изменять состояние игрока, создавать эффекты, регистрировать команды. Это полный инструментарий, который вы ожидаете от серьёзной платформы моддинга.

Регистрация команд солидна. Вы можете добавлять кастомные серверные команды, которые естественно интегрируются с тем, как игроки взаимодействуют с сервером. Если вы строите серверные моды, включающие голосование или функции сообщества, есть доступный тестер Minecraft Votifier, если вам нужно проверить механику голосования в ваших модах.

Обработка ошибок продумана. В последних релизах упоминается поддержка интернационализации сообщений об ошибках, что является приятным дополнением. Когда что-то ломается (и ломается во время разработки), вы получаете читаемый вывод ошибок вместо криптических кодов.


Что обычно сбивает с толку

Совместимость версий - это самая большая проблема. LeviLamina тесно связан со внутренней структурой Minecraft, поэтому несоответствующие версии вызывают краши или неопределённое поведение. Релиз v26.10.10 соответствует Minecraft 26.10.x. Если у вас 26.9.x или 26.11.x, вам нужна соответствующая сборка LeviLamina. Здесь нет слоя обратной совместимости.

Конфликты модов происходят.

В отличие от Forge, который имеет сложный механизм разрешения зависимостей, моды LeviLamina могут влиять друг на друга, если они подключаются к одинаковым событиям или изменяют перекрывающиеся структуры игры. На самом деле, это имеет значение только в том случае, если вы не проектируете тщательно - система событий поддерживает несколько слушателей, но вам нужно подумать о порядке обработчиков и управлении состоянием.

Документация отстаёт. Проект активен и улучшается (регулярные релизы, сообщество Discord, растущее присутствие на GitHub), но документы всё ещё имеют пробелы. Это сообщество в Discord и Telegram может помочь, когда вы столкнётесь с проблемами, но иногда ответ требует чтения исходного кода или прямого обращения к разработчикам.

При разработке модов, взаимодействующих с блоками, полезно знать ID блоков и их варианты. Если вы ищете спецификации блоков во время кодирования, доступен инструмент поиска блоков Minecraft для быстрой справки.

Также важны соображения производительности. Моды на C++ запускаются нативно, поэтому они быстрее, чем интерпретируемые языки, но плохо написанные обработчики событий всё ещё могут снизить серверное время тика. Если вы запускаете несколько модов одновременно, профилируйте их и оптимизируйте горячие пути.


Альтернативы, о которых стоит знать

Если LeviLamina не ваш путь, есть другие варианты.

Официальный Minecraft Scripting API улучшается с каждым релизом. Он использует JavaScript и преднамеренно ограничен по соображениям безопасности, но подходит для более простых настроек. Торговля - это сила, вы получаете безопасность и стабильность, но меньше контроля.

Для Java Edition Fabric и Forge - это зрелые экосистемы с огромными сообществами. Если вы можете работать на Java вместо C++, они более стабильны и лучше документированы. Стои существующих модов означает, что вы можете изучать реальный код.

Также существуют подходы ScriptEngine с использованием Lua или других встроенных языков, хотя они обычно медленнее и менее интегрированы, чем родная среда C++ LeviLamina.

Реалистично говоря, если вы хотите модифицировать Bedrock на серьёзном уровне, LeviLamina - ваш лучший выбор. Среда C++, система событий и API опережают всё, что доступно для расширения Bedrock Edition.

LiteLDev/LeviLamina - LGPL-3.0, ★1553
Об авторе
Alexandru Maftei
Alexandru MafteiВедущий автор

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Поделитесь с друзьями!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy