Разработчики представили проект Folia, добавляющий многопоточность в Minecraft-серверы
Разработчики организации PaperMC представили инструмент Folia, добавляющий многопоточность в Minecraft-серверы. Инструмент позволяет администраторам масштабировать серверы и приглашать на них больше игроков.
В Minecraft игровая карта формируется из чанков — областей 16 блоков в ширину, 16 блоков в длину и 256 блоков в глубину. В Vanila Minecraft все чанки обрабатываются в одном потоке, что при большом количестве пользователей в онлайне заметно нагружает сервер и ограничивает количество активных игроков.
Регионализатор Folia меняет базовую логику Minecraft по организации регионов, группируя близлежащие чанки в один. Каждая такая область обрабатывается в отдельном потоке, разгружая сервер. Тем самым Folia выполняет несколько тиков параллельно, а у каждого региона образуется свой поток. Если на сервере присутствует несколько разбросанных по карте игроков, то система соберёт их чанки в единую область.
Данные сервера во время тестового запуска Folia
Разработчики отмечают, что с Folia администраторы серверов при выборе оборудования смогут больше не обращать внимание производительность одного ядра процессора. Для сервера можно будет выбирать процессоры с низкой тактовой частотой, но с большим количеством ядер, что поможет сэкономить на аренде оборудования.
Данные сервера во время тестового запуска Folia
Исходный код Folia доступен в GitHub, а сам проект написан на Kotlin. В репозитории есть подробные инструкции по работе с Folia.