
Accelerated Recoiling
Мод для Minecraft, который ускоряет обработку столкновений сущностей на сервере. Перекладывает вычисления на C++ - TPS растёт в разы, особенно при большом скоплении мобов. Экспериментальный, но уже совместим с крупными сборками.
Accelerated Recoiling - ускорение коллизий в Майнкрафт
Accelerated Recoiling (можно назвать "Ускоренное столкновение") - мод, который решает давнюю проблему серверного лага от коллизий сущностей. В ванильном Minecraft, когда в одном чанке собирается много мобов, игра начинает сильно тормозить - TPS падает, сервер еле дышит. Всё потому, что коллизии обрабатываются через Java с квадратичной сложностью. Accelerated Recoiling перехватывает эту логику и передаёт её на C++ (через FFM API или JNI), а в некоторых случаях и на GPU. Результат - прирост производительности в десятки раз.
Важно: мод пока экспериментальный. Поведение сущностей (например, сдавливание) может отличаться от ванильного. Перед установкой обязательно сделайте бекап мира. Если вам критична точность как в оригинале - переключитесь на бэкенд Java Vanilla.
Особенности
- Огромный прирост TPS - в тестах с 4000+ сущностями в одном чанке TPS вырастал в 70+ раз (с 0.5 до 20).
- Алгоритмическая оптимизация - уход от O(N²), снижение нагрузки на CPU.
- Умный порог срабатывания - ускорение включается только когда плотность сущностей превышает заданный лимит, чтобы в обычной игре всё было как обычно.
- Динамический выбор бэкенда - мод сам выбирает самый быстрый доступный бэкенд: GPU → FFM → JNI → Java SIMD → Java → Java Vanilla → Vanilla (запасной).
- Мультиплатформенность - библиотеки под Windows, Linux и macOS.
Таблица бэкендов
| Бэкенд | Описание | Требования | Производительность | Статус |
|---|---|---|---|---|
| GPU | Ускорение на видеокарте | Железо с поддержкой GPU | Наивысшая | Доступен |
| FFM | Связь с C++ через FFM API | Java 21+ | Очень высокая | Доступен |
| JNI | Связь через JNI | Нет | Очень высокая | Доступен |
| Java SIMD | Векторизация через VectorAPI | Специальные аргументы запуска | Высокая | Доступен |
| Java | Чистый Java-алгоритм | Нет | Хорошая | Доступен |
| Java Vanilla | Модифицированная ванильная логика (максимальная схожесть с ваниллой) | Нет | Средняя | Доступен |
| Vanilla | Обычная ванильная логика | Нет | Худшая | - |
Если хотите вручную принудительно задать бэкенд, добавьте в аргументы запуска: -Dacceleratedrecoiling.backend=имя_бэкенда
Требования и установка
- 64-разрядная ОС - динамические библиотеки только 64-битные.
- Java 17+ (для версии Minecraft 1.20.1 хватит 17, для 1.21.1+ нужна Java 21).
- Leaves сервер: обязательно добавьте аргумент
-Dleavesclip.enable.mixin=true.
При первом запуске мод сам распакует нативные библиотеки и создаст файл конфигурации acceleratedRecoiling.json в корне игры.
Настройка по умолчанию
{
"enableEntityCollision": true,
"enableEntityGetterOptimization": true,
"maxCollision": 32,
"gridSize": 1,
"densityWindow": 4,
"densityThreshold": 16
}
maxCollision- максимальное количество коллизий на одну сущность за тик.gridSize- размер сетки для пространственного разделения.densityThreshold- порог плотности соседних сущностей, после которого включается ускорение.
Если производительность упала, попробуйте уменьшить densityThreshold. Если CPU грузится слишком сильно - уменьшите maxThreads (в конфиге его нет по умолчанию, но можно дописать).
Вопросы и ответы
Q: Игра вылетает или не запускается?
A: Проверьте:
- Стоит ли Java 17+.
- Для Leaves - добавлен ли аргумент
-Dleavesclip.enable.mixin=true. - Если обновляли мод - удалите старые файлы
acceleratedRecoilingLib.dllиacceleratedRecoiling.json, пусть пересоздаст.
Q: Поведение сущностей такое же, как в ванилле?
A: Не совсем. Мод меняет алгоритм коллизий, поэтому сдавливание будет другим. Используйте бэкенд Java Vanilla, если нужна максимальная идентичность.
Q: Не сломает ли редстоун-механизмы?
A: Пока не замечено проблем с популярными схемами, но теоретически могут пострадать механизмы, использующие сдавливание сущностей. Делайте бекапы.
Q: Почему производительность упала?
A: Скорее всего, плотность сущностей не достигла порога, и мод работает по двум путям (ванилла + ускорение). Уменьшите densityThreshold.
Q: Совместим ли с другими модами?
A: Да, мод протестирован с ATM9, Lithium, FlatCollision, RuOK, Create, Valkyrien-Skies-2 и другими. Если найдёте несовместимость - сообщите в тикеты репозитория.
Производительность в цифрах
Тестовый стенд: i5-12600KF, 32 ГБ RAM, RTX 3060 Ti, Leaves 1.21.8, GraalVM JDK 21.
Тест 1: TPS при скоплении сущностей в одном чанке (2х2 блока)
| Сущностей | Leaves + Accelerated Recoiling | Ванильный Leaves | Ускорение |
|---|---|---|---|
| 2 048 | 20.0 TPS (16 MSPT) | 3.0 TPS | 20.8x |
| 4 096 | 20.0 TPS (27 MSPT) | 0.5 TPS | 74x |
| 16 384 | 8.6 TPS (115 MSPT) | - | - |
| 32 768 | 4.3 TPS (230 MSPT) | - | - |
Тест 2: BroadPhase (чистая C++ часть)
| Сущностей | MS за кадр | Эквивалентный FPS |
|---|---|---|
| 10 000 | 0.2 ms | 5000 |
| 50 000 | 1.1 ms | 909 |
| 100 000 | 2.5 ms | 400 |
| 400 000 | 21.3 ms | 46 |
Ускорение впечатляет, особенно на больших фермах или серверах с тысячами мобов.
Итог
Accelerated Recoiling - мощный инструмент для оптимизации коллизий. Если у вас сервер с большим количеством сущностей, этот мод может поднять TPS с нескольких единиц до стабильных 20. Скачайте мод Accelerated Recoiling и попробуйте - не забудьте настроить порог под свой сценарий. Для максимальной совместимости используйте бэкенд Java Vanilla, а для производительности - FFM или JNI.
Мод распространяется по лицензии MIT. Для сборки из исходников потребуется JDK 21 и WSL (для Linux-библиотек).
Как поиграть с друзьями с модом Accelerated Recoiling?
Мод Accelerated Recoiling куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Accelerated Recoiling будет готов за пару минут - BungeeHost сделает всё за вас.
