▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Tetrachord Lib
Tetrachord Lib

Tetrachord Lib

Легковесная библиотека для Майнкрафт, предоставляющая структуры данных KD Tree и Segment Tree для оптимизации пространственных запросов и обновлений. Помогает разработчикам модов создавать более эффективные механики без лишней нагрузки на сервер.

Оцените первым
36.3K
5

Tetrachord Lib - это библиотечный мод для Майнкрафт, который решает проблему неэффективных переборов в пространственных механиках. Если вы когда-нибудь сталкивались с лагами от модов, которые проверяют каждый блок вокруг игрока или ищут ближайшие объекты - скорее всего, там использовался тупой перебор. Tetrachord Lib предлагает умные структуры данных: KD-деревья и сегментные деревья, которые ускоряют такие операции в разы.

Что это и зачем нужно

В ванильном Minecraft многие механики работают на примитивных проверках - например, чтобы не спаунились мобы возле костра, мод может каждые несколько тиков проверять все блоки в радиусе. На сервере с десятками таких механик mspt (миллисекунды на тик) растёт, игра начинает тормозить. Tetrachord Lib даёт разработчикам готовые инструменты для быстрых пространственных запросов:

  • KD Tree - для поиска ближайших объектов в 2D и 3D (например, найти ближайший факел или моба).
  • Segment Tree - для массовых обновлений и запросов в диапазоне (например, изменить все блоки в области или посчитать количество руды рядом).

Библиотека легковесная и не добавляет лишних механик сама по себе - она просто даёт API, который другие моды могут использовать как зависимость.

Примеры из реальных модов

Разработчики уже используют Tetrachord Lib для оптимизации. Вот два показательных примера:

No Hostiles Around Campfire

Мод No Hostiles Around Campfire от Serilum запрещает спаун мобов возле зажжённых костров. В оригинальной реализации он тупо перебирал блоки в радиусе - на сервере это давало высокий mspt. С KD Tree проверка стала почти мгновенной: библиотека хранит позиции костров и быстро отвечает, находится ли точка в зоне действия.

Ore Blocks near Beacon Increase Xp Drop

Другой сценарий - мод, где добыча руды возле маяка даёт дополнительный опыт. Нужно быстро подсчитать количество руды каждого типа вокруг добытого блока. С Segment Tree такие запросы выполняются за логарифмическое время вместо линейного. Вот как выглядит зависимость радиуса и веса руды:

Тип рудыCopperIronGoldDiamondNetherite
Радиус5x59x913x1317x1719x19
Вес11123

Без Tetrachord Lib пришлось бы каждый раз сканировать все блоки в огромном кубе - а это сотни тысяч блоков за один клик. С библиотекой всё работает плавно.

Для разработчиков

Если вы пишете мод и вам нужно:

  • быстро находить ближайшие объекты (мобы, игроки, блоки),
  • обновлять или запрашивать данные в прямоугольной/кубической области,
  • оптимизировать механики, связанные с расстоянием,

просто добавьте Tetrachord Lib как зависимость в ваш проект. Мод совместим с Fabric и Forge (актуальные версии Minecraft 1.19-1.21). Никаких лишних настроек - всё работает из коробки.

Производительность

Разработчики провели тесты с профайлером Spark. Результаты показали, что использование KD Tree вместо перебора снижает mspt в 10-50 раз в зависимости от сценария. Segment Tree тоже даёт огромный прирост при работе с большими областями. Если ваш сервер тормозит из-за модов с пространственными проверками - скорее всего, проблема решается именно этой библиотекой.

Итог

Tetrachord Lib - незаметный, но мощный инструмент для создателей модов. Он не добавляет контента в игру, но делает её работу быстрее и стабильнее. Если вы собираете сборку или пишете свой мод - обратите внимание на проекты, которые используют эту библиотеку как зависимость. Скачайте Tetrachord Lib и дайте вашим механикам настоящую оптимизацию.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Ссылки

Детали

Лицензия:
Опубликован:2 года назад
Обновлён:3 месяца назад
Главная