Skip to main content

Как устроен сервер

Сервер построен с использованием прокси BungeeCord и разделен на несколько миров. На данный момент их пять:

  • Основной мир - тут происходит большая часть игры, все постройки, арты, ролиплей и ивенты.
  • Ресурсный мир - для добычи ресурсы, которые идут на строительство и торговлю в основном мире.
  • Фермерский мир - существует, для создания ферм и фарма ресурсов.
  • Лобби - это совсем небольшой мир, куда попадает новый игрок в самом начале.

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

image.png

Другая проблема в ограниченном месте на жестком диске. Например мир майнкрафта 10000х10000 занимает около 20Gb места, а мир с размерами 20000х20000 около 40Gb и так далее в квадратичной последовательности. Так же с увеличением мира требуется больше места под хранение бэкапов.

Ресурсный мир призван решить эту проблему, ограничив основной мир, игроки могут бесконечно выкапывать ресурсный, а так как на нем нет никаких построек игроков, то этот мир можно удалять и создавать новый, по мере исчерпания ресурсов. Так же такой подход позволяет не портить внешний вид основного мира и экономить место на резервном копировании.

image.png

Фермерский мир призван разгрузить остальные миры, так как различные механизмы и большое скопление мобов на фермах может сильно нагружать сервер. В этом мире не так критичен ТПС, так как игроки в основном стоят АФК и фармят ресурсы, поэтому они не испытывают трудностей с постоянным отставанием сервера. В то же время в других мирах игроки могут комфортно играть.

Изначально, все эти миры работали просто в screen и управлялись набором различных скриптов, которые позволяли перезапускать, обновлять и останавливать серверы и плагины.

Проект рос и сейчас серверы управляются через панель управления pterodactyl.io, это позволило:

  • Легко создавать новые сервера
  • Обеспечить доступ, с гибкими правами, к консоли сервера другим людям
  • Запускать каждый сервер изолированно друг от друга и от операционной системы в докер контейнерах
  • Легкость в управлении серверами и их файлами

image.png

image.png