Сервер BedWars - это сервер Paper с плагином BedWars, картами арен, построенными в отдельном мире, и механизмом сброса, который восстанавливает каждую карту после каждой игры. Небольшому сообществу хватает одного сервера, на котором одновременно идут несколько арен. Когда одновременно играет больше примерно пятидесяти человек или когда вам нужно несколько мини-игр, стандартная схема - прокси перед лобби и одним или несколькими игровыми серверами: игроки встают в очередь в лобби и отправляются на свободную арену. Плагин - это просто скачивание; вся работа - в постройке хороших карт, надёжном их сбросе и в том, чтобы игры набирались достаточно полными, чтобы было весело.
В этой статье разобраны выбор плагина, постройка и регистрация арен, проблема сброса, схема сети, расчёт ресурсов и типичные неполадки.
Чем сервер мини-игр отличается от выживания#
Сервер выживания годами держит один мир. Сервер мини-игр делает наоборот: каждая игра начинается с идентичной копии карты, длится десять-двадцать минут и выбрасывается. Ничто из построенного игроками за матч не должно его пережить.
От этого меняется то, что важно:
- Сброс мира - ключевая функция. Карта BedWars после игры завалена поставленной игроками шерстью, сломанными кроватями и предметами. Восстанавливать её быстро и точно, десятки раз в день, - самое важное, что делает плагин.
- Постоянство переезжает в статистику. Игроки сохраняют победы, убийства, сломанные кровати, уровни и косметику. Всё это живёт в базе данных, а не в мире.
- Нагрузка скачкообразная. Игра на шестнадцать человек, которые дерутся, строят мосты и спамят TNT, тяжела свои пятнадцать минут, а потом - ничего. Рассчитывать нужно на пик, когда одновременно стартуют несколько игр.
- Пустые серверы убивают мини-игры. BedWars нужны восемь-шестнадцать человек одновременно. На сервере, где пятеро игроков разбросаны по четырём режимам, играть не с кем. Запускайтесь с меньшим числом режимов, а не с большим.
Выбор плагина BedWars#
| Плагин | Лицензия | Примечания |
|---|---|---|
| BedWars1058 | Бесплатный | Давно существует, много аддонов, арены на одном сервере или по серверу на арену |
| BedWars2023 | Бесплатный | Поддерживаемое продолжение BedWars1058 |
| ScreamingBedWars | Бесплатный, открытый код | Настройки по умолчанию как на Hypixel, активно развивается |
| MBedwars | Платный | Отполирован, большой набор функций, коммерческая поддержка |
Перед выбором проверьте совместимость с вашей точной версией Paper и с тем способом сброса, который собираетесь использовать. Плагин BedWars, который не поддерживает вашу версию, вы сами не почините.
BedWars1058 и его продолжение - удобный пример, потому что в них схемы серверов заданы явно. Плагин работает в одном из трёх режимов, который выбирается в основном конфиге:
- MULTIARENA - один сервер держит много арен и собственное лобби. Игроки заходят в игру через таблички, NPC или меню. Самая простая схема.
- BUNGEE - один сервер запускает ровно одну арену и больше ничего. Прокси и отдельное лобби отправляют игроков на тот игровой сервер, который ждёт игроков. Эту схему используют большие сети.
- SHARED - арены BedWars работают на сервере рядом с чем-то другим, например миром выживания, не захватывая сервер целиком.
У других плагинов BedWars есть аналогичные понятия под другими названиями. Решение одно и то же: всё на одном сервере или одна игра на сервер за прокси.
Другие мини-игры
Большинство плагинов мини-игр следуют той же схеме «арена и сброс», так что всё, что ниже, относится и к ним. Рядом с BedWars обычно запускают: SkyWars (есть несколько бесплатных плагинов), набор Plugily Projects (Murder Mystery, Build Battle, Village Defense и другие на общем фреймворке), плагины паркура и варианты Spleef или TNT Run. По возможности выбирайте одно семейство: единый фреймворк означает один способ настройки арен и одну базу статистики.
Постройка и регистрация арен#
Арена - это карта плюс понятное плагину описание этой карты. Постройте карту в обычном мире, а затем зарегистрируйте её.
- Постройте карту в отдельном мире, обычно пустом, чтобы острова висели в воздухе и вокруг ничего не было. Держите мир каждой карты маленьким и отдельным: один мир на арену делает сброс и копирование тривиальными.
- Войдите в режим настройки плагина для этого мира. Он есть у каждого плагина BedWars - обычно это команда, которая открывает GUI настройки или выдаёт инструменты.
- Расставьте спавны команд, кровати, генераторы и магазины. Для BedWars это спавн и кровать на каждую команду, генераторы железа и золота на каждом острове, генераторы алмазов и изумрудов в центре и позиции NPC магазина и улучшений.
- Задайте зону ожидания - где игроки стоят до начала игры - и минимальное и максимальное число игроков.
- Задайте границы: высоту, на которой пустота убивает, ограничения высоты строительства и защищённый радиус вокруг спавнов и магазинов, чтобы их никто не мог заблокировать.
- Сохраните и проверьте на живых людях. Карта, которая выглядит сбалансированной из креатива, часто оказывается несбалансированной, когда на ней шестнадцать игроков.
Заметки о дизайне карт, которые пришли из практики, а не из вики плагина:
- Расстояние между островами определяет длительность игры. Длинные мосты - длинные игры и меньше рашей. Копируйте пропорции популярных карт, а не изобретайте свои.
- Держите карты маленькими в чанках. Карта BedWars умещается в квадрат в несколько сотен блоков. Каждый лишний чанк нужно загрузить, скопировать и сбросить.
- Уберите всё, что тикает. Никаких ферм, воронок и редстоун-часов в декоративных постройках. Они будут тикать в каждой запущенной копии карты.
- Затяните границу мира вокруг карты, чтобы игроки не могли уйти мостом в сгенерированный рельеф. В пустом мире генерировать нечего, но граница ещё и останавливает жемчуг, брошенный в никуда.
Сброс карт после каждой игры#
Именно эта часть отличает работающий сервер от сервера, который медленно ломается. Есть три распространённых подхода.
Восстановление из копии-шаблона
Плагин хранит чистую копию мира каждой арены. Когда игра заканчивается, он выгружает использованный мир, удаляет его, копирует шаблон обратно и снова загружает. Просто и точно, но загрузка мира - это работа основного потока: на загруженном сервере одновременный сброс нескольких арен даёт заметный скачок лагов. На маленьких картах это быстро, на больших - мучительно.
Отслеживание и откат изменений
Плагин записывает каждый блок, поставленный или сломанный за игру, и в конце откатывает их. Перезагрузки мира нет, но всё, что плагин не отследил, - текущие жидкости, блоки, сдвинутые взрывами или поршнями, сущности - может оставлять следы. За сотни игр мелкие остатки накапливаются. Большинство хороших плагинов совмещают отслеживание с периодическим полным восстановлением.
Slime-миры
Формат Slime, придуманный в Hypixel и сейчас поддерживаемый как Advanced Slime Paper и родственные проекты, хранит маленькие миры в компактном виде и загружает их из памяти или из базы данных, не трогая файлы регионов. Создание свежей копии арены становится почти бесплатным, и ничего не нужно записывать на диск. Несколько плагинов BedWars поддерживают его напрямую. Это лучший вариант для сети с множеством коротких игр и избыточный - для сервера с тремя аренами.
ticks-per: autosave: 6000Эта глобальная настройка автосохранения относится к мирам, которыми Bukkit управляет обычным образом; плагины арен и загрузчики Slime отключают сохранение для своих миров. Подтвердите это в документации своего плагина, а затем проверьте: сыграйте игру, перезапустите сервер посреди игры и убедитесь, что карта после этого чистая.
Схема сети: лобби, игровые серверы и прокси#
Для одного сервера подходит вариант в стиле MULTIARENA: мир лобби и несколько арен в одном процессе. Он перестаёт работать, когда суммарная нагрузка арен больше, чем способен протикать один основной поток, или когда нужны мини-игры из разных плагинов, которые конфликтуют.
Схема сети разделяет работу:
У каждой части одна задача:
- Прокси держит соединение каждого игрока и перемещает его между серверами. Для новой сети правильный выбор - Velocity, см. BungeeCord или Velocity и полную настройку в руководстве по сети на Velocity.
- Лобби - место, куда игроки приходят и где встают в очередь. Ему нужно мало памяти и никакой игровой логики: NPC или таблички для входа, скорборд, косметика. Ему нужно знать, на каких игровых серверах есть место, а это обеспечивает лобби-компаньон плагина BedWars или плагин табличек, обычно через канал plugin messaging
BungeeCordили общую базу данных. - Игровые серверы запускают по одной арене (или по несколько). Когда игра заканчивается, сервер сбрасывается и снова объявляет себя свободным. Поскольку каждый - отдельный процесс, лагающая игра затрагивает только своих шестнадцать игроков.
- База данных хранит статистику, уровни и косметику, чтобы профиль игрока следовал за ним на любой игровой сервер. Все игровые серверы и лобби смотрят в одну базу - настройки подключения и размеры пулов разобраны в статье MySQL для плагинов Minecraft.
Большие сети автоматически запускают и останавливают игровые серверы по мере роста очередей с помощью систем оркестрации. Это выходит за рамки хостинга с панелью и за рамки большинства сообществ: с фиксированным набором игровых серверов вы просто запускаете столько, сколько нужно в пик, и позволяете лобби распределять между ними игроков.
Сколько ресурсов нужно серверам мини-игр#
Мини-игры дают нагрузку всплесками и упираются в CPU. Игра BedWars на шестнадцать человек с TNT, огненными шарами и спамом мостов стоит на одного игрока гораздо больше, чем спокойный сервер выживания.
| Конфигурация | RAM | Примечания |
|---|---|---|
| Лобби (любого размера) | 1-2 ГБ | Низкая дальность прорисовки, режим приключения |
| Одна арена BedWars, 8-16 игроков | 2 ГБ | На каждый игровой сервер в схеме BUNGEE |
| Один сервер, 4-6 маленьких арен | 4-6 ГБ | MULTIARENA, ограничение - основной поток |
| Прокси | 512 МБ-1 ГБ heap | CPU, а не память |
Для игровых серверов подходит низкая дальность прорисовки (view-distance=6 или меньше), потому что карта маленькая, а simulation-distance можно сделать ровно такой, чтобы покрывать карту. Самое дорогое в BedWars - взрывы; большинство плагинов позволяют ограничить радиус урона от TNT и огненных шаров, и это заодно решение о геймплее.
В RE:NODE каждый сервер в сети - отдельный тариф с одним выделенным портом, а дополнительные можно добавить на вкладке Network. Тарифы Minecraft начинаются с 2 ГБ, и это как раз подходящий размер для игрового сервера с одной ареной или для лобби. Вкладка Schedules может перезапускать игровые серверы рано утром, когда в очереди никого нет, и это убирает мелкие остатки, которые пропустил сброс.
Пати, очереди и заполненность игр#
Техническая настройка - половина работы. Другая половина - собрать в каждую игру достаточно игроков одновременно.
- Меньше режимов на старте. Один режим BedWars - соло или четвёрки, но не оба - заполняется быстрее. Добавляйте режимы, когда у существующего появляется очередь.
- Меньший минимум. Позвольте играм стартовать с меньшим числом игроков после обратного отсчёта, чтобы никто не ждал по пять минут в пустом лобби.
- Плагин пати. Друзья хотят вставать в очередь вместе. Плагины пати на прокси переносят всю группу в одну игру. Убедитесь, что ваш плагин BedWars их учитывает.
- Клиенты разных версий. Многие игроки BedWars до сих пор сидят на старых клиентах из-за боевой системы. ViaVersion и ViaRewind на прокси или игровых серверах позволяют им заходить; боёвка 1.8 против современной - отдельное решение, которое некоторые плагины выносят в настройку.
- Игроки Bedrock могут заходить через Geyser на прокси, с теми ограничениями, которые есть у этого моста, - их список в статье Geyser и Floodgate.
Устранение проблем#
Карты после игр возвращаются повреждёнными. Изменения откатываются не полностью, или арена сохранилась поверх шаблона. Восстановите шаблон из отдельной мастер-копии, отключите автосохранение на мирах арен и предпочитайте полное восстановление отслеживанию изменений.
Скачок лагов каждый раз, когда заканчивается игра. Перезагрузка мира в основном потоке. Уменьшите карты, разнесите сбросы по времени или переходите на схему со Slime.
Игроки в лобби видят неверный статус игр. Лобби не получает обновлений от игровых серверов. Проверьте, что plugin messaging проходит через прокси (Velocity по умолчанию держит канал BungeeCord включённым) и что лобби и игровые серверы согласны в именах серверов.
Статистика сбрасывается или различается между серверами. Часть серверов использует локальное хранилище вместо общей базы. Каждый сервер должен смотреть в одну и ту же базу с одним и тем же префиксом таблиц.
Игры никогда не начинаются. Минимум игроков слишком высок для вашего реального онлайна. Уменьшите его и сократите обратный отсчёт.
Игроков выкидывает при отправке на игровой сервер. На этом сервере неправильно настроен forwarding, или его версия Minecraft не совпадает с остальными. Причину ищите в консоли прокси.
FAQ#
Можно ли запустить BedWars на одном сервере с выживанием?
Да, с режимом плагина, который делит сервер, например режимом SHARED в BedWars1058. Для редких игр это работает. Для регулярных игр отдельный сервер за прокси уводит нагрузку BedWars подальше от мира выживания.
Сколько игроков нужно для игры в BedWars?
Восемь - минимум, чтобы игра ощущалась как BedWars; обычно двенадцать-шестнадцать. Рассчитывайте запуск на одну полную игру в пик, а не на несколько полупустых.
Нужен ли прокси для мини-игр?
Для начала нет. Одного сервера с несколькими аренами небольшому сообществу достаточно. Прокси становится оправданным, когда вы запускаете несколько плагинов мини-игр, вам нужно больше арен, чем вытянет один основной поток, или нужно центральное лобби.
Где взять карты для BedWars?
Постройте сами, закажите или скачайте карты, лицензия которых разрешает использование на вашем сервере. Уважайте условия автора: многие бесплатные карты требуют указывать авторство или запрещают перепродажу.
На какой версии Minecraft должен работать сервер BedWars?
На актуальной версии Paper, которую поддерживает ваш плагин BedWars, с ViaVersion и ViaRewind, если хотите пускать старые клиенты. Старая версия сервера ради боёвки 1.8 отрезает вас от современных плагинов и исправлений безопасности.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.