RE:NODE

Производительность Valheim по биомам: что нагружает больше всего

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


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

От этого различия зависит, что делать. Если у группы частота кадров падает в Туманных землях, более мощный тариф сервера ничего не изменит. Если график CPU сервера растёт, когда четверо игроков расходятся по четырём биомам, графические настройки клиентов тоже не помогут. Эта статья идёт по биомам по очереди, говорит, на какой стороне этой границы лежит каждая нагрузка, и заканчивается тем, что имеет смысл менять. Об основных механизмах - зонах, владении, зависании при сохранении - прочитайте сначала Valheim server lag: zone ownership and desync; эта статья опирается на неё, а не повторяет.

Нагрузка на клиент и нагрузка на сервер - разные проблемы#

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

Поэтому биом может навредить в трёх местах:

ГдеЗа что платитКак проявляется
GPU каждого игрокаОтрисовка: туман, огонь, свет, трава, вода, тениНизкая частота кадров у того, кто на это смотрит
CPU игрока-владельцаСимуляция существ, физики, огней и станций в его зонахРывки (rubber-banding) у всех рядом с этим игроком
СерверПередача обновлений, хранение объектов, сохранение, зоны без владельцаЛагают все сразу, долгие сохранения, рост памяти

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

Проверить легко. Откройте оверлей F2, пока это происходит, и посмотрите на свою частоту кадров и пинг. Если кадры упали, а пинг не изменился, нагрузка на вашей машине. Если все рядом с одним игроком видят, как существа телепортируются, а у этого игрока машина не справляется, дело во владении. Если лагают все и везде одновременно, смотрите на сервер.

Луга и Чёрный лес: базовый уровень#

Два стартовых биома - дешёвые, и именно с ними сравнивается всё остальное.

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

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

Болото: плотное и мокрое, но не тяжёлое#

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

О склепах стоит знать. Интерьеры подземелий находятся не под землёй: они построены на большой высоте над местом входа в мире, и вход переносит вас туда. Поэтому вход в склеп - короткая загрузка, и поэтому метка на карте ведёт себя странно. Для производительности это значит, что подземелье - отдельная небольшая область со своими объектами, а не часть болота над ним.

Горы: дешёвый рельеф, дорогие пещеры#

Горы наверху малолюдны: снег, камень, несколько волков и драконов. Отрисовка лёгкая, если не считать снегопада и морозных эффектов, а высокий открытый рельеф даёт длинные линии обзора, но рисовать в них почти нечего.

Исключение - морозные пещеры. Это полноценные интерьеры, полные существ и предметов, и, как склепы, они загружаются как отдельная область. На квадратный метр они тяжелее всего, что снаружи, хотя и невелики. Группа, вместе пробивающаяся через такую пещеру, в порядке; именно в таком месте сразу видно, когда зоной владеет игрок с плохим соединением.

Равнины: трава, расстояние и деревни фулингов#

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

Со стороны симуляции дорогое на Равнинах - это:

  • Деревни фулингов. Множество фулингов, тотемов, костров и построек в одном месте. Нападение на деревню - большой бой с массой ИИ, которым владеет тот, кто пришёл первым.
  • Дефлоскиты (deathsquito). Быстрые летающие существа в постоянном движении. Их немного, но у каждого много обновлений.
  • Локсы. Крупные существа, а фермы прирученных локсов - одно из самых дорогих сооружений, какие группа может построить где угодно, потому что ручные животные продолжают выполнять ИИ там, где стоит их загон.
  • Фермы. На Равнинах растут ячмень и лён, и каждое растение - это объект. Поле в несколько сотен растений - это несколько сотен объектов в одной зоне.

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

Туманные земли: туман, Иггдрасиль и вертикальный рельеф#

Туманные земли - самый требовательный биом для ПК большинства игроков. Тут накладывается несколько факторов.

Туман. Это не настройка дымки, а объёмный эффект, который рисуется вокруг игрока и густо покрывает весь биом. Он отрисовывается на каждом клиенте в каждом кадре. Wisplight расчищает вокруг несущего его игрока пузырь, что помогает видеть, но отрисовка от этого не становится бесплатной.

Иггдрасиль. Огромные корни и упавшие ветви мирового древа проходят через весь биом. Это громадные меши, которые видны издалека, и они - часть того, почему Туманные земли выглядят именно так. Но это и очень много геометрии.

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

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

Сервер от Туманных земель чувствует немного: больше объектов для хранения по мере исследования биома, больше обновлений для передачи во время боя. Клиент же чувствует многое. Группа игроков со средними ПК, у которых Равнины шли хорошо, может провалиться в тумане до малой доли прежней частоты кадров.

Пепельные земли: огонь, свет и непрерывные бои#

Пепельные земли дороги по-другому. Почти всё в них светится или горит.

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

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

На сервере экспедиция в Пепельные земли - это в основном затраты на передачу. Много существ, много снарядов, много изменений состояния, и всё это отправляется каждому игроку поблизости. Группа, сражающаяся при осаде крепости, - это самое близкое, что поздняя игра предлагает к сценарию «десять игроков в рейде на главной базе», который напрягает бюджет отправки на игрока.

Океан: зоны пролетают быстро#

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

Три практических эффекта:

  1. Короткие подвисания при заходе в новые воды, когда подгружаются острова и береговые линии. Это нормально и в основном происходит на клиенте.
  2. Лодку симулирует игрок, который ею управляет. Физика корабля и груз на нём работают на машине этого игрока. Капитан с плохим соединением заставляет лодку дёргаться для команды.
  3. Исследование раздувает файл мира. Каждая вновь посещённая область добавляет свои объекты в сохранение. Долгое плавание за открытиями - один из самых быстрых способов раздуть .db, поэтому мир, который много обплывали, потребляет больше памяти; цифры приведены в статье how much RAM a Valheim server needs.

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

Во сколько серверу обходятся игроки, разбросанные по биомам#

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

Расположение группыАктивные областиНагрузка на сервер
Десять игроков на главной базеОдна, плотнаяМного передачи; предел - бюджет отправки
Десять игроков в одной экспедицииОдна или двеУмеренная
Десять игроков в десяти разных местахДесятьНаибольшая постоянная нагрузка и память
Пять игроков на пяти тяжёлых базахПять, все плотныеХудший случай для памяти

Поэтому же память сервера растёт в течение долгой сессии, даже когда никто не строит: больше частей мира загружено и затронуто. Еженедельный перезапуск по расписанию в тихий час не даёт этому накапливаться; о выборе времени говорит статья restart schedules that help.

На RE:NODE консоль показывает память, CPU и диск относительно лимитов тарифа, так что вы можете наблюдать, что происходит, когда группа расходится. Если CPU упирается в предел в такие моменты, узким местом является тариф. Если нет, а игроки всё равно жалуются, проблема на их стороне таблицы выше. Как выглядит упёршийся в предел один поток - а именно такую форму даёт сервер Valheim, - объясняет статья Reading a server load graph.

Что менять для каждого биома#

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

БиомГлавная нагрузкаЧто помогает больше всего
РавниныТрава, дальность прорисовкиНиже качество растительности, ниже уровень детализации
Туманные землиТуман, крупная геометрия, рельефНиже качество теней, ниже уровень детализации, владелец с сильным ПК
Пепельные землиСвет, огонь, частицыМеньше точечных источников света и без теней от них
ОкеанЗагрузка зонБыстрый локальный накопитель для игры, стабильное соединение у капитана
Любая оживлённая базаЭлементы, свет, ручные животныеМеньше факелов в поле зрения, меньше загоны, предметы в сундуках

Консольная команда lodbias меняет уровень детализации на клиенте и относится к немногим консольным командам, которым не нужны включённые читы. Меньшие значения сокращают дальность, на которой сохраняется детализация, что помогает на Равнинах и в Туманных землях ценой заметного появления объектов на ходу.

code
lodbias 1

Она действует только на игрока, который её ввёл, и ни на кого больше на сервере. Значение по умолчанию и полезный диапазон отличаются от версии к версии, поэтому попробуйте пару значений и следите за частотой кадров, а не доверяйте одному числу. Статья Valheim admin console commands перечисляет её вместе с другими командами, работающими без читов.

Со стороны сервера полезные рычаги от биома вообще не зависят: держите мир лёгким (меньше ручных животных, меньше предметов на земле), выставьте разумный -saveinterval, перезапускайте раз в неделю и переходите на более высокий тариф, только когда CPU или память самого сервера упираются в предел во время проблемы.

FAQ#

Почему Туманные земли лагают, когда остальная игра идёт нормально?

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

Исправит ли более мощный тариф сервера частоту кадров в Пепельных землях?

Нет. Частоту кадров рисует видеокарта каждого игрока. Более мощный тариф помогает, только когда CPU или память самого сервера упираются в предел, а это видно на его графиках независимо от биома.

Хуже ли для сервера, когда мы расходимся?

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

Почему плавание подвисает даже в пустом море?

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

Дороже ли строиться в Туманных землях, чем на Лугах?

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

Стоит ли что-то пустой форпост в Пепельных землях, пока нас нет?

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