RE:NODE

Приручённые животные в Valheim: разведение, загоны и лаги

Автор Команда RE:NODE
14 мин чтения


Приручённые животные - самый дешёвый в постройке и самый незаметный источник лагов в группе Valheim. Каждый волк, кабан, локс, курица и асксвин - это существо со своим ИИ, которое работает на компьютере ближайшего игрока, а не на сервере, а разведение продолжает добавлять новых, пока не сработает ограничение по числу животных поблизости. Загон из шести кабанов ничего не стоит. Амбар на восемьдесят волков превращает главную базу в слайд-шоу для каждого, кто туда зайдёт, и никакой тариф сервера это не лечит, потому что нагрузка ложится на машины игроков. Правила, при которых приручённые остаются полезными, короткие: разводите с целью, держите загоны небольшими и подальше от главного зала, убирайте лишних мясницким ножом и заранее договаривайтесь о лимите на игрока, пока никто не начал собирать волчью армию.

Кого можно приручить и как#

В текущей версии игры пять приручаемых существ, по одному-два на биом по мере продвижения. Дикие приручаются одинаково: существо должно быть спокойным (не заметить в вас угрозу), оно должно есть еду, которую вы положили на землю, а прогресс приручения идёт, пока оно сыто и его не тревожат. Если ударить его или дать ему увидеть в вас врага, прогресс встаёт, пока оно не успокоится. Без помех приручение занимает несколько порций еды и примерно полчаса реального времени; точный таймер у каждого существа свой и менялся в патчах, так что считайте это порядком величины.

СуществоГдеЧто естЗачем группам
КабанMeadowsЯгоды, грибы, морковь, репа, лукСырое мясо и обрезки кожи, ранняя еда
ВолкMountainsСырое мясо и рыбаБоевые спутники, охрана базы
ЛоксPlainsЯчмень, облачные ягоды, лёнМясо и шкуры локса, ездовой со сёдлом
КурицаИз яицСеменаЯйца и перья, ингредиенты для готовки
АсксвинAshlandsРастения Ashlands, например виноягодыЕздовой со сёдлом, транспорт на поздних этапах

Двое из них появляются не так, как остальные. Куры в мире не спавнятся: начинать нужно с яиц, которые продаёт Haldor после убийства Yagluth и которые можно найти в запечатанных башнях на Plains по заданиям Hildir. Яйцо, положенное отдельно (не в стопке), рядом с огнём и под крышей остаётся тёплым и вылупляется в цыплёнка, который ручной с рождения. Асксвинов можно приручить и в дикой природе, но они достаточно сильны, чтобы ломать большинство стен, поэтому группы обычно приручают их в яме или выращивают из яиц, найденных в Ashlands, - это работает так же, как с куриными яйцами: тепло, крыша, по одному яйцу.

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

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

Кто симулирует приручённых на сервере#

Чтобы понять, почему приручённые обходятся так дорого, нужно одно правило из руководства по выделенному серверу Valheim, которое объясняет большую часть поведения мультиплеера: мир поделён на зоны, и каждую зону симулирует игрок, который зашёл в неё первым. Сервер хранит существ, пересылает их состояние и передаёт владение. ИИ он сам не запускает, если больше этого никто не делает.

Для приручённых отсюда следуют три вывода.

  • Пока рядом никого нет, приручённый ничего не делает. Он сохранён в файле мира как объект с позицией, здоровьем, состоянием приручения и именем. Пока его зона выгружена, он не голодает, не уходит и не размножается. Поэтому разведение будто встаёт, когда дома никто не остаётся: животные накапливают нужное для размножения состояние только пока кто-то находится достаточно близко, чтобы зона оставалась активной.
  • Платит игрок, ближайший к загону. ИИ, поиск пути и физика всех приручённых в активной области выполняются на его машине. Сорок волков в амбаре - это сорок экземпляров ИИ и сорок физических тел, которые каждый кадр толкаются друг с другом на процессоре одного человека. Игрок со скромным ПК становится узким местом для всех, кто придёт после него.
  • Все остальные получают результат. Владелец отправляет состояние каждого существа серверу, а сервер ретранслирует его остальным игрокам в зоне видимости. Чем больше существ, тем больше объектов нужно синхронизировать, и именно это проявляется как рывки и телепортирующиеся у базы монстры.

Сам сервер приручённых тоже ощущает, но не так напрямую: каждое существо - это ещё один объект в мире, который сохраняется на диск при каждом сохранении и отправляется каждому игроку, зашедшему в зону видимости. Мир с сотнями приручённых получает больший .db, более долгие подвисания при сохранении и более долгую загрузку, когда кто-то приходит на базу. В статье производительность и лаги сервера Valheim рассказано, как отличить серверные лаги от клиентских, и здесь это важно, потому что лаги от приручённых в основном клиентские.

Как работает разведение и где оно останавливается#

Разведение автоматическое. Приручённые животные одного вида, сытые и спокойные, с партнёром рядом, постепенно набирают прогресс к беременности. Когда она завершается, появляется потомок - поросёнок, волчонок, телёнок локса - и со временем вырастает во взрослого. Потомки ручные с рождения.

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

ПараметрПримерное ванильное значениеЧто это значит
Радиус проверки популяцииОколо 10 мБолее далёкие животные не считаются
Расстояние до партнёраОколо 3 мПартнёр должен быть так близко
Лимит: кабан, волк, локсПримерно 4-5 рядомПри таком числе размножение прекращается
Лимит: курица, асксвинВыше, около 10Мелкие существа, стаи побольше
УсловиеРучной, сытый, спокойныйГолодное животное не размножается

Эти числа менялись от версии к версии и нигде в игре не показываются, поэтому не стройте загон с точностью до сантиметра. Если нужны точные значения, сверьтесь с актуальным источником для вашей версии. Важен принцип: ограничение локальное. Оно останавливает размножение только внутри своего радиуса.

Так и возникает неконтролируемое размножение. Загон шире радиуса проверки, несколько загонов в пешей доступности друг от друга или потомки, которые разбрелись за пределы загона, - всё это даёт игре новое место, где счётчик ниже лимита. Чаще всего это волки: группа щедро кормит загон, волчата выбираются через щель в ограде или идут за кем-то по команде, и амбар превращается в поле волков. Каждый из них остаётся навсегда, пока его что-нибудь не убьёт.

Вторая половина - кормление. Чтобы размножаться, животное должно быть сытым, так что группа может остановить рост загона, просто не кормя его. В Valheim животные не умирают от голода; голодный ручной просто перестаёт размножаться. Поэтому кормление - это реальный регулятор, и он надёжнее, чем попытки управлять размерами загонов.

Почему большие загоны лагают и сколько - это слишком много#

Опубликованного числа для «слишком много приручённых» нет, потому что нагрузка зависит от машины игрока, существа и того, что ещё попало в кадр. Несколько честных ориентиров по тому, как ведёт себя игра:

  • Маленькие загоны практически бесплатны. Пять-шесть кабанов или горстка волков не добавят ничего заметного.
  • Крупные существа дороже мелких. Локсы - большие физические тела с длинными коллайдерами. Набитый локсами загон заметно тяжелее такого же числа кур.
  • Теснота хуже, чем количество. Пятьдесят волков, рассыпанных по лугу, дешевле пятидесяти волков в амбаре, где каждый каждый кадр сталкивается с соседями.
  • Спутники путешествуют. Волк, которому велели идти следом, ходит за своим игроком повсюду, в том числе в чужие базы, и остаётся там, где игрок вышел из игры.

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

В статье размещение баз на общих серверах Valheim объяснено, насколько далеко должны стоять тяжёлые постройки, чтобы нахождение в одной не загружало другую. Коротко для загонов: нескольких десятков метров от главного зала хватает, чтобы игроки не загружали амбар при каждом крафте, а для большого загона лучше ещё дальше.

Кормление, загоны и как сохранить приручённых живыми#

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

Полезные привычки, которые ничего не стоят:

  1. Стройте загоны внутри обороны базы. Рейд, появившийся на краю базы, первым убивает всё, что осталось за стенами.
  2. Упростите кормление. Кормушка - это просто еда, брошенная на пол внутри загона. Держите сундук с кормом рядом с загоном и договоритесь, кто его пополняет.
  3. Давайте важным имена. Приручённым можно дать имя, и сразу видно, что этот локс - чей-то проект, а не запасной.
  4. Не пускайте загоны на проходы. Животные толкают игроков, а волк, перегородивший дверь, - ежедневная мелкая неприятность для всех.
  5. Для асксвинов используйте яму. Они ломают каменные стены. Глубокая яма удерживает их там, где ограда не справляется.

У приручённых нет владельца. Любой игрок на сервере может командовать приручённым, кормить его или ездить на нём, а варды не защищают животных так, как защищают постройки и сундуки. Если в группе сильно чувство «это мои волки», это должно быть правилом, а не механикой игры. В статье варды и грифинг описано, что варды защищают на самом деле.

Выбраковка лишних#

Игроки не могут убить своих приручённых обычными атаками. Предусмотренный инструмент - мясницкий нож, который убивает ручное существо с одного удара; это правильный способ превратить лишних кабанов в мясо или проредить разросшийся волчий амбар. Спрашивайте, прежде чем использовать его на животных, которых развёл кто-то другой.

У администраторов с devcommands инструменты мощнее, но грубее. На ванильном выделенном сервере devcommands вообще не работает; на сервере с модом ServerDevcommands приручённых затрагивают такие команды:

КомандаЭффектПрименение на общем мире
killallУбивает всех существ рядом, включая приручённыхПочти никогда рядом с базой
killenemiesУбивает врагов рядом, приручённых щадитБезопасная для зачистки монстров
killtameУбивает приручённых существ рядомВыбраковка разросшегося амбара, с согласия
tameПриручает всех приручаемых существ рядомВосстановление загона после потери
code
devcommandskillenemies

Если выбраковка пошла не так, единственная настоящая отмена - восстановление из бэкапа. О том, как его сделать, рассказано в статье бэкапы сервера Valheim и повреждение мира; восстановление откатывает весь мир, а не только животных, поэтому бэкап нужно делать непосредственно перед выбраковкой, а не накануне вечером.

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

Правила для приручённых, которые стоит ввести в группе#

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

tame-rules.txt
1. Up to 10 tames per player. Breed for a purpose, cull the rest.   Reason: big pens lag everyone who walks past them.2. Pens at least 50 m from the main hall, portal hub and docks.   Reason: whoever stands nearest pays for the animals' AI.3. Stop feeding a pen that is full. Hungry tames do not breed.4. Followers stay home when you log off. A wolf left in someone   else's base is your wolf in their base.5. Ask before culling or riding someone else's animals.6. Admins cull runaway pens after warning in Discord, with a backup.

Десять на игрока - отправная точка, а не измеренный предел; в статье правила сообщества сервера Valheim используется то же число по той же причине. Небольшая группа может позволить себе больше. На публичном сервере с двадцатью постоянными игроками и правилом «без лимита» рано или поздно появится один амбар, который испортит целую область карты.

Ещё два решения нужно принять в начале, а не после спора:

  • Волки как защита от рейдов. Стая волков вокруг базы действительно облегчает рейды. Но она же делает базу самой дорогой зоной на сервере. Договоритесь о размере стаи.
  • Общий скот. Общий загон кабанов и общий курятник, которые кормятся из общего сундука, избавляют каждого от необходимости держать своих. Это самый эффективный способ удержать общее число животных низким. О том, как вести пищевую часть базы группой, рассказано в статье общая ферма и еда в Valheim.

Моды, меняющие приручение и разведение#

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

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

На RE:NODE то, что касается сервера, уже есть в панели. Графики в консоли показывают память и процессор относительно лимитов тарифа - это самый быстрый способ доказать, что лаги от приручённых не вина сервера. Слоты бэкапов входят в каждый тариф Valheim, так что снимок перед выбраковкой - одна кнопка, как и восстановление. А вкладка Schedules может запускать ежедневный бэкап в час, когда никто не играет, так что копия, нужная после аварии, никогда не старше суток.

FAQ#

Почему мои приручённые животные перестали размножаться?

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

Продолжают ли приручённые размножаться, пока все офлайн?

Нет. Существо симулируется, только когда игрок достаточно близко, чтобы загрузить его зону. Если рядом никого нет, загон заморожен ровно в том состоянии, в каком его оставили: без голода, без размножения, без блуждания.

Остановит ли более крупный тариф лаги вокруг нашего волчьего амбара?

Редко. ИИ и физика существ поблизости работают у игрока, владеющего зоной, а не на сервере. Если графики процессора и памяти сервера во время лагов далеки от лимитов, решение - меньше животных или перенос амбара подальше от людных мест.

Может ли другой игрок украсть или убить моих приручённых?

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

Как избавиться от пятидесяти лишних волков?

Перестаньте их кормить, чтобы загон перестал расти, затем проредите мясницким ножом. Администратор с ServerDevcommands может использовать killtame, стоя внутри загона, но команда убивает всех приручённых в радиусе - сначала сделайте бэкап и предупредите всех.

Нужен ли курам выделенный сервер?

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