RE:NODE

Моды размера мира Valheim: Expand World Size и Better Continents

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


Ванильный мир Valheim - это диск радиусом 10 000 метров с краем в 500 метров за ним, и каждое зерно (seed) - это другой взгляд на одну и ту же фиксированную схему. Два мода меняют это. Expand World Size (JereKuusela) меняет числа: радиус, растяжение, высоту, глубину воды, количество лесов, число размещаемых локаций. Better Continents заменяет части генератора слоями шума и картами-изображениями, так что высоты, биомы и стартовую позицию можно нарисовать самому. Оба мода должны стоять в одной версии на сервере и на ПК каждого игрока, потому что Valheim генерирует рельеф на клиенте. Оба предназначены для новых миров. Направьте их на мир, в который вы играете месяцами, и земля поедет под вашими постройками.

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

Как Valheim строит мир и почему это важно здесь#

Мир Valheim состоит из трёх вещей, и хранятся они по-разному.

  1. Базовый рельеф - высоты, биомы, где суша, а где море - нигде не сохраняется. Он вычисляется из зерна генератором мира каждый раз при загрузке зоны. Ваш файл .db не содержит формы земли.
  2. Правки рельефа - всё, что игроки вскопали, подняли или выровняли, - хранятся в мире как изменения относительно вычисленной земли.
  3. Объекты - деревья, камни, собираемые растения, существа, подземелья, алтари боссов и каждый построенный игроками элемент - хранятся в мире после генерации их зоны. Локации (алтари, деревни, склепы, торговец) размещаются для всей карты при создании мира, и это размещение тоже сохраняется.

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

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

Expand World Size: важные настройки#

Expand World Size должен стоять на всех клиентах и на сервере. Его настройки сохраняются в файле мира при сохранении мира и применяются при загрузке мира, так что у разных миров свои настройки; новые миры берут то, что в конфиге в этот момент. Хранятся только значения, отличные от стандартных.

НастройкаВанильное значениеЧто меняет
World radius10000Радиус игрового мира в метрах
World edge size500Полоса края за радиусом; менять редко стоит
Stretch world1Масштабирует всю схему: острова и океаны становятся больше
Stretch biomes1Масштабирует размер биомов поверх растяжения мира
Locations1Множитель числа размещаемых локаций (алтари, подземелья)
Altitude multiplier1Умножает расстояние от уровня воды: глубже море, выше суша
Altitude delta0Поднимает или опускает всё; положительные значения создают мелководье
Water depth multiplier1Умножает итоговую глубину воды
Forest multiplier1Количество леса
Minimap size1Разрешение карты; при изменении сбрасывает исследованное

README приводит формулу высоты water level + (altitude - water level) * multiplier + delta с уровнем воды 30 метров. Высота также определяет расположение биомов - поднимите её, и гор станет больше, - а снег по высоте зашит в код и за ней не следует.

Настройки размера взаимодействуют так, что люди на этом спотыкаются:

  • Площадь растёт как квадрат радиуса. Удвоение радиуса до 20 000 метров даёт вчетверо большую площадь. Совет README - масштабировать Locations вместе с площадью: вчетверо больше при удвоенном радиусе, в шестнадцать раз больше при учетверённом. Иначе в дополнительных землях почти не будет подземелий и алтарей.
  • Растяжение - более мягкий вариант. Stretch world 2 вместе с Stretch biomes 0.5 сохраняет знакомую схему, но больше, а пятна биомов возвращаются к обычному размеру.
  • Большие карты рисуются дольше. Карта генерируется фоновой задачей, о которой говорит небольшой текст Loading. Примеры из README: около 15 секунд при размере по умолчанию, 1 минута при размере 2, 4 минуты при размере 4, 16 минут при размере 8 и час при размере 16. ew_map перегенерирует её вручную.
  • Есть предел формата сохранения. Valheim сохраняет мир кусками, покрывающими радиус 16 384 метра; всё дальше попадает в один кусок и вызывает сильные лаги. Expand World Size автоматически увеличивает сетку сохранения (до радиуса 65 536 метров) и конвертирует сохранение при загрузке. README однозначен: не загружайте и не сохраняйте мир больше 16 384 метров без мода, иначе объекты могут дублироваться.

Есть также Offset X и Offset Y, которые сдвигают ваш мир внутри большей фиксированной схемы Valheim, Seed, который полностью заменяет зерно (сохраняется навсегда), и ew_seeds, выводящий текущие смещения и зёрна. Есть и настройки рельефа Ashlands и Deep North; если вы используете и Expand World Data, меняйте их только в одном из двух модов.

Better Continents: рисование мира#

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

Мир Better Continents - это три файла, а не два: обычные Name.fwl и Name.db плюс файл, оканчивающийся на .BetterContinents, рядом с ними, в котором хранятся настройки и данные изображений. Этот дополнительный файл должен ездить вместе с миром. В его документации сказано, что клиенту и серверу при запуске мира Better Continents нужна одна и та же версия Better Continents, а игроки по-прежнему могут заходить на ванильные серверы с установленным модом.

Проверьте пакет, прежде чем вести группу на него. Оригинальный Better Continents от billw2012 помечен на Thunderstore как устаревший с последнего обновления в 2022 году, а более поздний форк JereKuusela теперь тоже устарел. На момент написания поддерживаемый форк публикует Wubarrk, с недавними обновлениями. Прочтите его список изменений для текущей версии Valheim и помните, что долгоживущий мир зависит от того, что этот форк остаётся поддерживаемым. Миры Better Continents, построенные из карт-изображений, также могут быть очень большими на диске - авторы карт на Nexus иногда предупреждают, что их мирам тяжело работать на сервере, - так что посмотрите размер файла, прежде чем загружать чужую карту.

Почему существующим мирам плохо#

Вернёмся к трём слоям. Когда вы меняете размер мира или настройки генератора в уже существующем мире:

  • Земля меняется под сохранёнными объектами. Деревья, камни и постройки игроков были сохранены на фиксированных высотах. Если новый генератор ставит землю на десять метров ниже, длинный дом парит; если выше - он закопан. README Expand World Size предупреждает, что некоторые настройки меняют рельеф настолько, что разрушают постройки.
  • Правки рельефа относительны. Выровненная база была сохранена как изменение старой земли. Применённое к новой земле, оно может оставить яму или плато там, где была база.
  • Биомы смещаются, а растительность нет. Зона, сгенерированная как Тёмный лес, сохраняет свои сосны и спавнеры Грейдвёрфов, даже если новая схема называет её Лугами.
  • Локации уже размещены. Локации определяются при создании мира. Увеличьте радиус, и в новом внешнем кольце их не будет, пока вы не выполните ванильную команду genloc, которая размещает то, что раньше разместить было нельзя.
  • Появляются швы. Зоны, в которых никто не бывал, сгенерируются по новым правилам рядом с зонами, сгенерированными по старым.

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

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

Создание нового мира и загрузка на сервер#

Самый чистый путь - создать мир на ПК, проверить и загрузить.

  1. Установите мод в той версии, на которой будет работать сервер, в профиле менеджера модов. Убедитесь, что группа будет использовать тот же профиль - как им поделиться, показывает статья о профилях r2modman для группы.
  2. Задайте конфиг (Expand World Size) или спроектируйте мир в интерфейсе игры (Better Continents) до создания мира. О зерне - проверки хорошей стартовой области в руководстве по зёрнам Valheim.
  3. Создайте мир в одиночной игре, дождитесь окончания размещения локаций и посмотрите на карту. С Expand World Size ew_seeds подтвердит, что вы создали.
  4. Закройте игру, чтобы мир сохранился, затем найдите файлы в worlds_local.
  5. На сервере установите BepInEx и ту же версию мода, остановите сервер, загрузите файлы и задайте имя мира, совпадающее с ними. Точные шаги - в статье о загрузке локального мира.
code
worlds_local/  Midgard.fwl  Midgard.db  ...BetterContinents          Better Continents worlds only: upload it too

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

Чего стоит больший мир#

Большая карта стоит не того, чего боятся, а того, о чём забывают.

  • Память следует за исследованием, а не за радиусом. Сервер держит то, что сгенерировано и построено. Мир радиусом 20 000 метров, исследованный так же, как ванильный, использует сходный объём памяти. Мир, который ваша группа активно исследует месяцами, растит свой .db с каждой посещённой зоной.
  • Создание мира медленнее. Больше локаций для размещения - дольше первый запуск, и README предупреждает, что большой множитель Locations может значительно его увеличить.
  • Сохранения длиннее. Больший .db дольше записывается, и это подвисание игроки чувствуют на каждом интервале сохранения.
  • Путешествия длиннее. Это игровая цена. Рейды за рудой и походы к боссам растягиваются вместе с расстояниями, и правила порталов становятся более важным решением, чем обычно.
  • Клиенты платят за генерацию карты. Большие размеры миникарты рисуются у каждого клиента минуты.

На RE:NODE память и диск - это ступени тарифа, от 2 ГБ и 15 ГБ на Starter до 8 ГБ и 50 ГБ на Premium. Модифицированный мир на большой карте - разумный случай для середины этого диапазона, а если он перерастёт тариф, переход на ступень выше меняет лимит на том же сервере, не перенося мир. Об источниках нагрузки на сервер в целом читайте в статье о производительности и лагах сервера Valheim.

Как сохранить модифицированный мир играбельным#

Мир, созданный модом генератора, зависит от этого мода всю свою жизнь. Несколько привычек поддерживают его жизнь:

  • Закрепите версию. Не позволяйте серверу или игроку обновлять мод самому. Изменившееся значение по умолчанию в новой версии меняет рельеф у этого игрока.
  • Храните конфиг вместе с копиями. Expand World Size хранит настройки в мире, но всё равно держите копию файла конфигурации. Для Better Continents файл .BetterContinents входит в каждую резервную копию - копия без него непригодна.
  • Обновляйтесь после мода. В день патча Valheim подождите, пока мод поддержит новую версию, и сначала проверьте на копии мира. Порядок действий разобран в статье о модифицированном сервере после патча игры.
  • Читайте лог BepInEx при первом запуске. Ошибки версии и конфига видны там задолго до того, как кто-то заметит странный рельеф. Что означают строки, объясняет статья об устранении неполадок по логу BepInEx.
  • Кроссплей исключён. Игроки Xbox не могут ставить моды, а игрок без генератора видит рельеф, отличный от всех остальных. Считайте такие миры только для ПК - что нужно для кроссплея, см. в статье о кроссплее и игроках Xbox.

На RE:NODE резервные копии хранятся вне машины, которую они защищают, и их можно скачать, так что легко держать у себя на ПК и проверенную копию мира, и его файл .BetterContinents, и конфиг мода.

FAQ#

Можно ли увеличить мой текущий мир, не начиная заново?

Частично. Увеличение только радиуса в Expand World Size добавляет новую землю за старым краем и в принципе оставляет исследованную карту в покое; затем выполните genloc, чтобы разместить локации в новой области. Сначала сделайте копию и потом осмотрите свои базы. Остальные настройки - растяжение, высота, биомы - перекраивают исследованные земли и безопасны только в новом мире.

Видят ли игроки без мода тот же мир?

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

Нужно ли для мира 20 000 метров вчетверо больше RAM?

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

Можно ли использовать Expand World Size и Better Continents вместе?

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

Что будет, если мод перестанут обновлять?

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