Скачать Tetrachord Lib — Minecraft Моды — MetaMods
Tetrachord Lib

Tetrachord Lib

Активный

Установок

1

Последнее обновление

3 месяца назад

Версии

1.16 — 1.21.6
Клиент
Fabric
Forge
Neoforge
Библиотеки
Оптимизация игры

Tetrachord Lib

Многие моды для Minecraft реализуют функциональные возможности в 2D и 3D пространствах, однако методы прямого перебора часто оказываются неэффективными. В этом контексте представляем Tetrachord Lib - легковесную библиотеку, созданную для оптимизации разнообразных структур данных.

Оптимизация серверной части

Разработчики создали несколько модов для улучшения производительности серверов. Lithium от jellysquid3_ представляет собой революционный мод оптимизации, который улучшает различные аспекты Minecraft серверов. Используя точные алгоритмы для минимизации доступа к чанкам и блокам, этот мод улучшает не только генерацию мира, но и ИИ мобов, обнаружение столкновений, поиск точек интереса и другие важные аспекты для повышения вычислительной эффективности и снижения миллисекунд на тик серверов.

Starlight от Spottedstar - это инновационная модификация, которая переопределяет систему освещения Minecraft для улучшения производительности при генерации чанков, размещении и разрушении блоков. В отличие от Phosphor, Starlight не изменяет ванильную систему освещения - вместо этого она революционизирует её, вводя новый алгоритм.

Структуры данных

KD Tree - это структура данных, используемая в многомерных пространствах для хранения и организации k-мерных точек данных. Функционируя как бинарное дерево, каждый узел в KD Tree представляет k-мерную точку данных и разделяется в соответствии со значениями характеристик (измерений) точки данных. KD деревья особенно хорошо подходят для выполнения запросов диапазона и поиска ближайших соседей в многомерных наборах данных, и они также могут способствовать оптимизации извлечения данных в мире Minecraft.

KD Tree

Segment Tree - это структура данных, используемая для обработки обновлений и запросов диапазона. Она делит сегмент на меньшие подразделы и организует их иерархически в древовидной структуре. Сегментные деревья эффективны для обновления и запроса диапазонов данных. В контексте мира Minecraft, представленного как 3D тензор, использование сегментного дерева может значительно улучшить производительность, когда задействованы частые обновления и запросы диапазона.

Segment Tree

Тестирование и оценка

Spark - это легковесный мод-профайлер производительности, который показывает детальные временные затраты модов, использование памяти и процессора, миллисекунды на тик и другие метрики производительности клиентов и серверов. Мы использовали Spark и выбрали временные затраты и mspt в качестве метрик для оценки способности оптимизации Tetrachord Lib.

Мы реализовали упомянутые структуры данных и провели эксперименты, используя следующие тесты:

Отсутствие враждебных мобов вокруг костра

В определенном сценарии, когда игроки разжигают костры, окружающие области в радиусе нескольких блоков больше не будут спаунить монстров. Оригинальный мод предлагает метод прямого перебора, который включает множественные обращения к блокам, приводя к значительному увеличению mspt на сервере и замедлению игровой программы. Мы выбрали использование KD Tree для реализации этого требования. Мы использовали профайлер Spark для записи 1 минуты обычного игрового процесса при разных настройках параметров, и результаты эксперимента показаны на следующем рисунке:

Эффективность оптимизации на тесте "Отсутствие враждебных мобов вокруг костра"

Увеличение выпадения опыта за рудные блоки рядом с маяком

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

Тип руды Медь Железо Золото Алмаз Незерит
Область реакции 5x5 9x9 13x13 17x17 19x19
Очки руды 1 1 1 2 3

Мы использовали профайлер Spark для записи размещения 32 рудных блоков и добычи 32 блоков при разных настройках параметров, и результаты эксперимента показаны на следующем рисунке:

Эффективность оптимизации на тесте "Увеличение выпадения опыта за рудные блоки рядом с маяком"

Заключение

Эксперименты показывают, что Tetrachord Lib играет важную роль в различных ситуациях и предоставляет высокоэффективный способ реализации некоторых требований к обновлениям и запросам в 2D и 3D пространствах.

Мод Tetrachord Lib в настоящее время работает как библиотека, поэтому разработчики могут использовать его как зависимость для улучшения производительности своих модов.

Участники проекта
Viola-Siemens

Viola-Siemens

Разработчик

Viola_Siemens

Viola_Siemens

Создан: 28 фев 2024

ID: 8364