Ко всем статьям
•
~4 мин чтения

Что такое 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).

plaintext
       [ Серверный Процессор: 16 ядер ]
  ┌───────────────┬───────────────┬───────────────┐
  │  Поток 1      │  Поток 2      │  Поток 3      │
  │  Регион A     │  Регион B     │  Регион C     │
  │  (Игроки на   │  (Игроки на   │  (Незер/Энд   │
  │   спавне)     │   базе #1)    │   фермы)      │
  └───────────────┴───────────────┴───────────────┘

Как это устроено на практике:#

  1. Группировка чанков: если игроки находятся далеко друг от друга (например, на расстоянии 1000 блоков), чанки вокруг каждого игрока образуют изолированный регион.
  2. Параллельные тики: Регион А рассчитывается на Ядре CPU #1, а Регион B — параллельно на Ядре CPU #2. У каждого региона свой независимый TPS (Ticks Per Second)!
  3. Динамическое слияние: если игроки сближаются, их регионы плавно объединяются в один общий поток без вылетов и лагов.

2. Folia против Paper: Сравнение производительности#

Главная разница между Paper/Purpur и Folia — в масштабировании при росте онлайна:

ХарактеристикаPaper / PurpurFolia
Архитектура тиковЕдиный главный поток (Single-threaded)Региональная многопоточность (Multi-threaded)
Утилизация CPU100% одного ядра + фоновые потокиРавномерно 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 создана под конкретные сценарии:

  1. Крупные SMP и сервера выживания с онлайном от 100 до 300+ человек одновременно в одном огромном мире.
  2. Анархические серверы (2b2t-подобные), где игроки разбросаны по карте на миллионы блоков друг от друга — в таких условиях Folia показывает максимальную эффективность.
  3. Глобальные MMORPG и градостроительные миры с огромными расстояниями между городами.

5. Когда Folia НЕ нужна (и может навредить)?#

  1. Сервер для игры с друзьями (до 20–40 человек): на таком онлайне обычный Paper или Purpur покажет лучшую стабильность и позволит установить абсолютно любые плагины без ограничений.
  2. Серверы мини-игр (BedWars, SkyWars, Duels): когда десятки игроков находятся на одной компактной арене (в одном регионе), они все равно рассчитываются в одном потоке, поэтому преимуществ от Folia не будет. Для мини-игр лучше использовать сеть серверов через Velocity.
  3. Слабый хостинг с 2–4 ядрами: Folia требует многопоточного процессора, на 2 ядрах она будет работать медленнее обычного Paper.

6. Как подготовить сервер к запуску на Folia#

Если вы решили запустить проект на Folia, следуйте правилам:

  1. Выбирайте правильный процессор: для комфортной работы требуется минимум 8–12 виртуальных или физических ядер с высокой производительностью на такт (например, современные AMD Ryzen 9 или EPYC).
  2. Предгенерируйте мир: установите плагин Chunky и запустите генерацию границ мира заранее.
  3. Используйте Aikar's Flags для JVM: многопоточный сервер создает больше объектов в памяти, поэтому сборщик мусора G1GC критически важен.

Итог#

Folia — это будущее высоконагруженных серверов Minecraft. Она сняла многолетнее ограничение в 100 игроков на один мир и открыла дорогу к созданию гигантских проектов с онлайном в сотни и тысячи игроков.

Однако для небольших серверов и классического выживания Paper и Purpur остаются наиболее надежным, проверенным и совместимым выбором.

На хостинге Obsy Host с мощными процессорами AMD Ryzen и скоростными NVMe дисками вы можете запустить как проверенный Paper/Purpur, так и масштабируемую Folia со встроенной Game Anti-DDoS защитой.

Готовы запустить свой Minecraft сервер?
Собственная панель управления, быстрые NVMe накопители, защита от DDoS и запуск за пару минут.