Выбор конфигурации для Bukkit сервера

Вступление

Я игрок под ником sk98q/Finsherov/Kying/xCreazyFR, занимаюсь разработками в сфере java и майнкрафта с 2013 года. У меня было много различных проектов и просто проектов в которых я участвовал под разными обязанностями. По этому мой опыт может многое подсказать, что и как нужно делать при начале разработки сервера майнкрафта. Так как я вижу не многие понимают, что и как работает, давайте расскажу по порядку.

Коротко о майнкрафте написанном на java

Java - это уникальный язык программирования, который не только является довольно старым и популярным, сколько он часто обновляется. Новые библиотеки, новые функции.

Для примера возьмём java 1.8 (java 8) - которая требует не большое количество памяти, но очень сильно нагружает FPS и процессор. Сравним её с новой java 21 - которая требует больше оперативной памяти, не сильно нагружает процессор и FPS.

В чём разница? Новые продуманные функции которые постепенно доводят до идеала, хранение данные в “отмоске ожидания” для того чтобы дать возможность зафурычить процессору и т.д. Ха, обожаю java - это тот язык с которым можно не стоять на месте и продолжать развиваться. Теперь к теме о сервере майнкрафт. Так как он пишется под разные библиотеки - то естественно разное количество памяти используется. Ах да не забываем майнкрафт работает на 1 потоке!

Сколько надо для запуска Bukkit сервера?

Тут информация о том, чтобы именно запустить сервер без добавлений плагинов и модификаций - чисто paper сервера. Срок работы сервера 24 часа без выключения (не играя на нём).

purpur - это форк paper, paper - это форк spigot, spigot - форк bukkit, bukkit - форк ванильного ядра, с добавлением возможности плагинов которые работают с api форка подключенного к ванильным возможностям майнкрафта.

Прошу обратить внимание: это не первый запуск - мир уже генерированный.

1.8.8 paper (java 8) - 0.7 Гб
1.12.2 paper (java 8) - 0.6 Гб
1.15.2 paper (java 8) - 1.6 ГБ
1.15.2 paper (java 11) - 1.4 ГБ
1.16.5 paper (java 16) - 1.3 ГБ
1.17.1 paper (java 16) - 1.5 ГБ
1.18.2 paper (java 17) - 1.7 ГБ
1.19.4 paper (java 17) - 1.8 ГБ
1.20.1 paper (java 17) - 1.7 ГБ
1.20.6 paper (java 21) - 1.8 ГБ
1.21.3 paper (java 21) - 2.0 ГБ

Закончили с мучением и изучением запуска каждой версии, у запуска есть определённые условия, например если мы возмём 1.21.3 и перепишем её код под версию 1.8.8 для использования java 8 - то мы получим:

modded 1.8.8 for 1.21 api paper java 8 - 6.5 Гб

Ух, сильное заявление, в принципе понятно, оптимизация на каждой версии майнкрафт, улучшается, например в версии 1.17.1 - был перебой который исправили аж в 1.20!

Если для каждой версии использовать java 21 - то мы получим не большой прирост памяти даже для версии 1.8.8 - это подтверждает мои слова об добавлении библиотек, на 1.8.8 - этих библиотек меньше - но в java 21 они являются основными - по этой причине подгружаются.

Где можно скачать paper любой версии?

А теперь обсудим, сколько же памяти надо выделять для игры на сервере. Который должен поработать стабильно без выключения по оперативной памяти без приколов с выключением ранее чем 24 часа.
По выше указанной информации считаем по такому примеру:

GB*2+0.05*S+0.1*W/1000*2= Результат.
Где каждое значение:
GB - ГБ которое выше сервер тратит на запуск без игры (выше указаны значения)
S - количество плагинов
W - длина и ширина мира (должен быть куб, считаем всего по 1 стороне)

Ради примера сделаем так: У нас сервер 1.16.5 - анархия, на котором 15 плагинов и размер мира = до 5 тысяч по X.

1.3*2+10*15+10*10=252.6 - это результат который мы получаем (это не верный результат, так как мы не правильно написали.
1.3*2+0.05*15+0.1*10=4,35 - то есть мы получаем результат 4.5 гигабайта - требуется для данного сервера.

Где можно скачать paper любой версии?

Тут - Build explorer | PaperMC

Связь со мной

До новых встреч! Всем удачи в разработке ваших серверов майнкрафт!