Что такое Folia в Minecraft: как работает многопоточный сервер и когда его использовать
Полный разбор революционного ядра Folia от PaperMC: региональная многопоточность (Regionized Multithreading), масштабирование на сотни игроков, совместимость плагинов и требования к серверу.
С самого момента выхода Minecraft в 2009 году игровой мир работал в одном главном потоке (Main Thread). Независимо от того, сколько ядер у процессора — 4, 16 или 64 — весь расчет мобов, тиков блоков, физики и игроков на обычном сервере Paper или Purpur ложится на одно единственное ядро CPU.
В 2023 году команда PaperMC представила Folia — революционный форк Paper, который впервые в истории игры внедрил региональную многопоточность (Regionized Multithreading).
В этой статье разберем, как устроена Folia, сколько игроков она может выдержать, в чем ее ограничения и стоит ли переводить свой сервер на это ядро.
1. Как работает Folia: Региональная многопоточность#
Главная идея Folia заключается в отказе от глобального единого тика мира. Вместо того чтобы рассчитывать всю карту в одном цикле, Folia динамически делит мир на независимые регионы (Tick Regions).
[ Серверный Процессор: 16 ядер ]
┌───────────────┬───────────────┬───────────────┐
│ Поток 1 │ Поток 2 │ Поток 3 │
│ Регион A │ Регион B │ Регион C │
│ (Игроки на │ (Игроки на │ (Незер/Энд │
│ спавне) │ базе #1) │ фермы) │
└───────────────┴───────────────┴───────────────┘Как это устроено на практике:#
- Группировка чанков: если игроки находятся далеко друг от друга (например, на расстоянии 1000 блоков), чанки вокруг каждого игрока образуют изолированный регион.
- Параллельные тики: Регион А рассчитывается на Ядре CPU #1, а Регион B — параллельно на Ядре CPU #2. У каждого региона свой независимый TPS (Ticks Per Second)!
- Динамическое слияние: если игроки сближаются, их регионы плавно объединяются в один общий поток без вылетов и лагов.
2. Folia против Paper: Сравнение производительности#
Главная разница между Paper/Purpur и Folia — в масштабировании при росте онлайна:
| Характеристика | Paper / Purpur | Folia |
|---|---|---|
| Архитектура тиков | Единый главный поток (Single-threaded) | Региональная многопоточность (Multi-threaded) |
| Утилизация CPU | 100% одного ядра + фоновые потоки | Равномерно 100% всех доступных ядер CPU |
| Предел онлайна в одном мире | ~80–120 игроков | 300–500+ игроков (при наличии мощного CPU) |
| TPS | Единый для всего сервера | Индивидуальный для каждого региона мира |
| Совместимость с плагинами | 99.9% (Bukkit, Spigot, Paper) | Требуются плагины с поддержкой Folia API |
| Рекомендуемое железо | 4–6 ядер с максимальной частотой | 8–16+ мощных ядер (AMD Ryzen / EPYC) |
3. Проблема совместимости плагинов#
Поскольку в Folia больше нет единого глобального тика, классические плагины, использующие Bukkit.getScheduler() или обращающиеся к блокам в соседних несинхронизированных регионах, работать на Folia не могут и вызывают сбои.
Какие плагины работают на Folia:#
- Совместимы из коробки: LuckPerms, ProtocolLib, Chunky, Vault, EssentialsX (Folia-билд), Simple Voice Chat, Spark, FastAsyncWorldEdit (FAWE), Plan.
- Требуют адаптации: плагины на авто-шахты, скорборды, мини-игры и экономику, обращающиеся к сущностям между мирами.
⚠️ Перед переходом на Folia обязательно проверьте список всех ваших плагинов на наличие поддержки Folia (Folia-supported scheduler).
4. Когда СТОИТ использовать Folia?#
Folia создана под конкретные сценарии:
- Крупные SMP и сервера выживания с онлайном от 100 до 300+ человек одновременно в одном огромном мире.
- Анархические серверы (2b2t-подобные), где игроки разбросаны по карте на миллионы блоков друг от друга — в таких условиях Folia показывает максимальную эффективность.
- Глобальные MMORPG и градостроительные миры с огромными расстояниями между городами.
5. Когда Folia НЕ нужна (и может навредить)?#
- Сервер для игры с друзьями (до 20–40 человек): на таком онлайне обычный Paper или Purpur покажет лучшую стабильность и позволит установить абсолютно любые плагины без ограничений.
- Серверы мини-игр (BedWars, SkyWars, Duels): когда десятки игроков находятся на одной компактной арене (в одном регионе), они все равно рассчитываются в одном потоке, поэтому преимуществ от Folia не будет. Для мини-игр лучше использовать сеть серверов через Velocity.
- Слабый хостинг с 2–4 ядрами: Folia требует многопоточного процессора, на 2 ядрах она будет работать медленнее обычного Paper.
6. Как подготовить сервер к запуску на Folia#
Если вы решили запустить проект на Folia, следуйте правилам:
- Выбирайте правильный процессор: для комфортной работы требуется минимум 8–12 виртуальных или физических ядер с высокой производительностью на такт (например, современные AMD Ryzen 9 или EPYC).
- Предгенерируйте мир: установите плагин Chunky и запустите генерацию границ мира заранее.
- Используйте Aikar's Flags для JVM: многопоточный сервер создает больше объектов в памяти, поэтому сборщик мусора G1GC критически важен.
Итог#
Folia — это будущее высоконагруженных серверов Minecraft. Она сняла многолетнее ограничение в 100 игроков на один мир и открыла дорогу к созданию гигантских проектов с онлайном в сотни и тысячи игроков.
Однако для небольших серверов и классического выживания Paper и Purpur остаются наиболее надежным, проверенным и совместимым выбором.
На хостинге Obsy Host с мощными процессорами AMD Ryzen и скоростными NVMe дисками вы можете запустить как проверенный Paper/Purpur, так и масштабируемую Folia со встроенной Game Anti-DDoS защитой.