Теория
Версия 1.0.0
Изменения:
- ограничение по высоте увеличено до 40
- добавлена проверка на доступный объем. Как следствие – отсутствует мгновенное разделение или застревание [слизней]. Для определения минимально необходимого размера фермы проверь размеры слизней.
Общие сведения:
Сид карты определяет какие чанки могут спавнить слизней. В среднем – это каждый десятый чанк.
Некоторые факты:
- При спавне слизней используются те же алгоритмы проверки на максимальное количество мобов и спавна агрессивный мобов. Если хочешь, чтобы ферма слизней была производительной хорошо освети пещеры и поверхность. Так же это повлечет крохотное снижение вероятности спавна слизней в других чанках (см. ниже), где возможен спавн слизней [пер. – пока что для меня последнее утверждение очень спорное].
- Если ядро игры «решит» заспавнить агрессивного моба, она выбирает его тип рандомно. Каждый моб, включая слизней, имеет равный шанс заспавниться. Однакосуществует дополнительные 90% вероятности, что слизни не заспавняться (даже если чанк «разрешенный»). Так что теоретически шансы выглядят так: 1:10:10:10:10 (слизень:паук:крипер:скелет:зомби соответственно). Так же слизень может не заспавниться из-за ограничения спавна слизней по [абсолютной] высоте и отсутствия «разрешенного» чанка.
- слизни спавняться вне зависимости от освещенности и только ниже уровня 40 (обязательно наличие блоков воздуха ниже уровня 15 включительно (координаты 16.6 по F3, когда стоишь на 15-м блоке)).
- слизень каждого размера имеет равный шанс заспавниться (33,(3)%)
- в игре нет огромного слизня, чтобы ни говорила Wiki. Хотя их несложно добавить модом, используя дополнительное целое число для определения размера [пер. – как и многие объекты в игре, кроме ID имеющие дополнительный ID-постфикс с указанием типа/стадии, слизни имеют целочисленный постфикс, определяющий размер слизня (а через размер – его характеристики и «поведение»)]. (Может использоваться ленивыми для добавления в игру босса)
Размеры:
Маленький слизень: 0.6x0.6x0.6 (ниминально необходимая для спавна комната: 1x1x2. Допустима комната 1х1х1, если блок над ней прозрачен [пер. – для ядра игры в алгоритме спавна нет разницы между воздухом, стеклом и иными «прозрачными» блоками]).
Средний слизень: 1.2x1.2x1.2 (3x3x2)
Большой слизень: 2.4x2.4x2.4 (3x3x3)
Медленный спавн или «почему я должен так долго колупаться?»
Ядро игры спавнить мобов кахжый [игровой] тик (0.1 сек). Алгоритм спавна всех типов мобов (водных, агрессивных, нейтральных) не срабатывает, если достигнуто ограничение по максимальному количеству мобов или, для агрессивных мобов, если сложность игры выставлена на «мирный» (peaceful). На самом деле такая проверка происходит [пер. – перед запуском алгоритма спавна мобов по всей карте] только единожды, поэтому на карте за один тик потенциально может оказаться мобов больше выставленного лимита.
Затем алгоритм последовательно «проходит» каждый чанк (17x17 = 289!) вокруг игрока(игроков) и в произвольном порядке, выбирает произвольно тип моба и произвольную точку в чанке. Если выбранная точка удовлетворяет всем критериям, игра пытается заспавнить до 4-х мобов вокруг и, возможно, в самой точке. Прямо перед тем, как заспавнить моба проводятся дополнительные проверки в зависимости от типа моба. Для слизней это уровень высоты плюс дополнительные 90% вероятности не заспавниться. Для других агрессивных мобов вероятность неудачного спавна 100% при уровне освещенности более 8 едениц.
Предположим, что у нас есть вырытый чанк 16х16:
Сценарий 1. Обычный мир.
Существует множество точек вокруг вас, где агрессивные мобы могут спавниться – уровень света низкий или равен нулю. [Пер. – самый близкий нормальный перевод: «Предположим, что еще не достигнут лимит на максимальное количество мобов и только в этом случае ваш чанк в этот тик сможет заспавнить мобов.»] Есть 20% шанс, что игра решит заспавнить слизней. Тогда общая вероятность будет 1/128 = 0.7% (=> 20% * 0.7% = 0.14%), что игра выберет точку на конкретном уровне высоты. Так же шанс заспавнить слизня снизится на 90% (эта часть алгоритма самая непонятная, так как непонятно, как эти 90% влияют на групповой спаун слизней).
Из-за деспавна агрессивных мобов алгоритм запускается снова каждые несколько секунд.
Сценарий 2. Освещенный мир
Так как никакие другие агрессивные мобы не смогут спавниться, алгоритм запускается каждый тик, пока ограничение на количество мобов не достигнет максимума. И это будут исключительно слизни.
Как можно увидеть, даже если учесть, что значения, которые я привел не точны из-за группового спавна, в некоторой степени, как перебираются чанки и уровни. А любом случае надеюсь, описание объясняет, почему приходится ждать так долго и почему приходится так долго возиться, чтобы получить достойную вероятность спавна.