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

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

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

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

![image.png](https://wiki.gmgame.ru/uploads/images/gallery/2024-01/scaled-1680-/CLkimage.png)

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

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

![image.png](https://wiki.gmgame.ru/uploads/images/gallery/2024-01/scaled-1680-/yp6image.png)

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

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

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

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

![image.png](https://wiki.gmgame.ru/uploads/images/gallery/2024-01/scaled-1680-/l6Nimage.png)

![image.png](https://wiki.gmgame.ru/uploads/images/gallery/2024-01/scaled-1680-/s0oimage.png)