Система спауна мобов нашего сервера

На сервере работает наш самописный плагин, контролирующий спаун мобов и перераспределяющий его. Говоря простым языком, теперь вокруг каждого игрока всегда будут спауниться мобы. В верхнем мире, в аду и в краю.

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

Максимальное количество мобов (или мобкап) зависит от количества игроков онлайн.

На нашем сервере мобкап индивидуален для каждого игрока. Это означает, что вне зависимости от наличия игроков, мобы будут спауниться вокруг каждого игрока.

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

Главная идея индивидуального мобкапа заключается в том, чтобы каждый игрок мог полностью ощутить возможности игры:

  • фермы работают при любом онлайне
  • чёрных скелетов (как и всё остальное) всегда можно найти в крепостях
  • качалки в краю работают вне зависимости от наличия других игроков в этом же измерении
  • рыб, спрутов и дельфинов всегда можно найти в водоёмах

Чем больше игроков онлайн, тем больше суммарное количество мобов, но меньше индивидуальный мобкап каждого игрока. Сейчас мобкап (для враждебных монстров) рассчитывается по формуле 500/N, где N — количество игроков онлайн. Результат ограничен сверху значением 70 и снизу значением 20. Это означает, что при малом количестве игроков, мобкап не будет превышать 70, а при большом количестве игроков не будет меньше 20.

В игре существует 4 типа мобов:

  • Враждебные или монстры: скелеты, зомби, криперы, ведьмы, пауки, гардианы и т.д. Спаун фантомов отключен.
  • Пассивные мобы: овцы, свиньи, кони, коровы и т.д.
  • Водные мобы: только рыбы, дельфины и спруты.
  • Мобы окружения: только летучие мыши (Мы решили отключить их спаун в связи с их бесполезностью)

Для каждого типа мобов есть свои настройки максимального мобкапа, и частоты спауна. Частота спауна — это задержка в игровых тиках (1 тик — 1/20 секунды) между попытками спауна.

Текущие настройки сведены в таблицу ниже:

Тип Формула количества ( X / кол-во игроков) Максимум мобкапа Минимум мобкапа Частота спауна (в тиках)
Враждебные 500 70 20 2
Пассивные 250 30 4 400
Водные 100 10 5 30
Окружение 0 0 0 0

Механики и условия спауна остались абсолютно неизменными. Привычные для мобов ареалы обитания никак не изменились:

  • Слизняки спаунятся в своих чанках и на болотах
  • Ведьмы в домах
  • Чёрные скелеты в крепостях
  • И так далее

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

Так же не изменены и механики деспауна:

  • Враждебный моб моментально пропадает, находясь дальше 128 блоков от любого игрока
  • Враждебный моб может пропасть каждый тик с некоторой вероятностью, находясь дальше 32 блоков от любого игрока
  • Именованный или подобравший какой-либо предмет моб не деспаунится никогда (но такой моб всё ещё учитывается в мобкапе в отличие от стандартной механики)

Мы можем контролировать расстояние спауна мобов от игрока. Сейчас минимальное расстояние установлено на 20 блоков, а максимальное на 90. Это сделано, чтобы даже при уменьшенном мобкапе, мобы спаунились ближе к игроку. Однако сейчас мы не можем контролировать условия и расстояния деспауна, но планируем добавить эту возможность.

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

Так как плагин всё ещё находится на достаточно ранней стадии разработки, мы отслеживаем его работу. Одним из инструментов для этого является постоянный подсчёт фактического количества враждебных мобов вокруг каждого игрока. Эти данные доступны для всеобщего обозрения в списке игроков (кнопка TAB) — рядом с ником указано количество враждебных мобов в радиусе 128 блоков.

Часто можно заметить, что количество мобов немного превышает 70. Это связано с механикой группового спауна. Суть его заключается в том, что шанс случайно выбрать подходящее для спауна место не так велик. Поэтому когда такое место всё же находится, алгоритм пытается заспаунить группу мобов в небольшом радиусе на той же высоте. Поэтому при наличии 69/70 мобов, алгоритм попробует заспаунить ещё одну группу от 1 до 5 мобов и может получиться 74/70.

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

Мы продолжаем разработку и улучшение плагина, и конечно же рассчитываем на отзывы о его работе.

  • /var/www/dokuwiki/data/pages/guides/mobspread.txt
  • Последние изменения: 2020/03/12 17:25
  • anatolgol3