Сервер 7 Days to Die строит карту по трём строкам в serverconfig.xml: GameWorld выбирает Navezgane, случайный мир (RWG) или уже готовую папку с миром; WorldGenSeed и WorldGenSize описывают, какой случайный мир строить. Один и тот же сид при одном и том же размере на одной и той же версии игры даёт одну и ту же карту. Мир 6k генерируется за несколько минут и подходит примерно для четырёх игроков; 8k - золотая середина для группы из шести-восьми человек; 10k - для публичного сервера, который может позволить себе и память, и долгий первый запуск. Самый надёжный способ получить карту, которая вам действительно нравится, - сгенерировать её в игровом клиенте, где можно посмотреть превью и настроить города и рельеф, а затем загрузить папку на сервер.
В этом руководстве разобрано, как работает генерация, во что обходится каждый размер, какие настройки сервер даёт менять, а какие нет, как перенести на сервер мир, созданный в клиенте, и какие ошибки оставляют группу на новой карте, о которой никто не просил. Об остальной части конфига читайте в статье настройки сервера 7 Days to Die.
Мир и сохранение: две разные вещи#
Всё, что касается карт, становится понятным, как только вы начинаете различать две папки.
- Мир - это рельеф: карта высот, изображения биомов и текстур, данные о воде и список всех мест интереса (POI), расставленных на карте. Случайный мир лежит в
GeneratedWorlds/<World Name>/внутри папки пользовательских данных сервера. Navezgane и поставляемые с игрой готовые миры лежат в установке, вData/Worlds/. Во время игры мир не меняется. - Сохранение - это всё, что игроки с ним сделали: разрушенные блоки, базы, собранный лут, время суток, квесты, land claim и файлы игроков. Оно лежит в
Saves/<World Name>/<GameName>/.
GameWorld выбирает мир. GameName выбирает сохранение внутри него. Именно это разделение позволяет делать вайп сервера без новой генерации карты (новый GameName, тот же мир) и генерировать новую карту, не теряя старую (новый сид, а папка старого мира остаётся на диске, пока вы её не удалите).
Имя папки случайного мира - это не сид. Генератор превращает сид и размер в имя - два-три выдуманных слова, часто с чем-то вроде «Territory» или «County» на конце - и выводит его в лог при первом запуске. Запишите его. Это имя папки, которую вы будете бэкапить, и имя, которое нужно вписать в GameWorld, если когда-нибудь захотите закрепить сервер именно за этим миром.
Navezgane, RWG или готовый мир#
| Вариант | Размер | Сильные стороны | Слабые стороны |
|---|---|---|---|
Navezgane | Примерно 6k | Сделан вручную, проверен, мгновенный старт, игроки его знают | Каждый раз одна и та же карта, небольшая |
RWG | На ваш выбор | Новая карта на каждый сид, любой поддерживаемый размер | Долгий первый запуск, качество зависит от сида |
| Готовый мир из комплекта игры | Фиксированный | Не нужно ждать генерации, разумная планировка | Меньше выбора, всё равно собран случайно |
| Мир, который вы сгенерировали и загрузили | На ваш выбор | Вы видели и настроили его до игроков | Нужен шаг с загрузкой |
Navezgane - это карта ручной работы, вокруг которой проектировалась игра. Она компактная, города на ней расставлены с умом, и стартует она сразу, потому что генерировать нечего. Для группы из трёх-четырёх человек, которым нужна знакомая карта и быстрый старт, это вполне хороший ответ, и у неё самые скромные требования к памяти и диску из всех вариантов.
RWG используют большинство серверов, потому что новая карта - это половина смысла нового сезона. Его слабость в том, что генератор остаётся генератором: какие-то сиды ставят единственного торговца в угол, редко разбрасывают города или дают пустыню там, где все хотели лес. В клиенте можно посмотреть на результат, прежде чем на нём остановиться. На сервере без интерфейса вы узнаёте об этом одновременно с игроками.
В последних версиях в Data/Worlds/ также лежат несколько заранее сгенерированных случайных миров с именами, начинающимися на Pregen. Их точные имена и размеры меняются от релиза к релизу, поэтому смотрите в эту папку на своей установке, а не копируйте имя из руководства. Если указать в GameWorld одно из этих имён, генерация полностью пропускается.
Размер карты: память, диск и длительность первого запуска#
WorldGenSize - это длина стороны квадратной карты в блоках. Комментарий в поставляемом конфиге называет официально поддерживаемым диапазон от 6144 до 10240 с шагом 2048 - то есть 6144, 8192 и 10240. Некоторые сборки принимают и большие значения, но это целиком на ваш страх и риск: время генерации, расход памяти и шанс получить сломанный мир растут быстрее, чем сама карта.
WorldGenSize | Площадь относительно 6k | Типичная группа | Первый запуск | RAM в работе |
|---|---|---|---|---|
6144 | 1x | 1-4 игрока | Несколько минут | 8 GB |
8192 | 1.8x | 4-8 игроков | Заметно дольше | 10-12 GB |
10240 | 2.8x | 8+ игроков, публичный | Может идти заметно дольше десяти минут | 12-14 GB |
Время сильно зависит от скорости CPU и версии игры, так что воспринимайте его как относительное, а не как обещание. Из таблицы следуют три практических вывода.
Генерация - это пик потребления памяти. Чтобы построить мир, нужно больше памяти, чем чтобы его запускать, потому что генератор держит в памяти сразу изображения всей карты и расстановку POI. Сервер, который спокойно держит мир 10k в 12 GB, всё равно может быть остановлен во время генерации, если он близок к лимиту. Если такое случится в RE:NODE, контейнер останавливается на лимите и перезапускается начисто, а посреди генерации это означает, что генерация начнётся заново. Генерируйте мир, пока сервер больше ничем не занят и никто не подключён.
Не прерывайте её. Пока генератор работает, лог надолго замолкает, и возникает соблазн решить, что сервер завис. Он не завис. Если остановить его на полпути, останется неполная папка, которая может загрузиться и оказаться неправильной или не загрузиться вовсе. Следите за консолью, пока лог не сообщит, что мир загружен и сервер принимает подключения.
Больше - не значит больше контента на игрока. На карте 10k больше городов, но игроки те же самые, и они просто расходятся дальше. А именно разброс игроков дороже всего обходится серверу 7 Days, потому что каждый игрок держит активным собственный набор чанков. Для группы из пяти человек мир 8k означает, что вы встречаетесь друг с другом; мир 10k - что у вас четыре отдельных сервера, у которых по случайности общий чат.
С диском всё не так драматично, как с памятью. Папка сгенерированного мира скромная. Растёт сохранение - за счёт файлов регионов, которые пишутся только для тех мест, где игроки действительно побывали, поэтому хорошо исхоженный мир 10k за сезон дорастает до нескольких гигабайт, а почти неисследованный остаётся маленьким.
Настройки генерации, которые даёт сервер#
На выделенном сервере генерацией управляют только эти параметры:
<property name="GameWorld" value="RWG"/><property name="WorldGenSeed" value="Thursday Season 4"/><property name="WorldGenSize" value="8192"/><property name="GameName" value="Season4"/>| Параметр | По умолчанию | Что делает |
|---|---|---|
GameWorld | Navezgane | RWG для генерации или имя существующей папки мира |
WorldGenSeed | - | Любая строка. Тот же сид и размер на той же сборке - тот же мир |
WorldGenSize | 6144 | Длина стороны в блоках, используется только для RWG |
GameName | - | Сохранение внутри мира |
Сид - это строка, а не число, поэтому Thursday Season 4 - вполне нормальный сид. Пробелы и заглавные буквы имеют значение: thursday season 4 - это другая карта.
Чего сервер не даёт, так это всего, что можно выбрать в генераторе мира в клиенте: количество городов, плотность POI в дикой местности, реки, озёра, кратеры, трещины и соотношение равнин, холмов и гор. Сервер, генерирующий мир из RWG, берёт значения по умолчанию из Data/Config/rwgmixer.xml. Эти значения можно поменять модлетом, который патчит rwgmixer.xml, - тем же механизмом XPath, что описан в руководстве по админ-командам и модлетам, но для того, что клиент делает ползунками и с превью, это грубый инструмент.
Генерация в клиенте и загрузка мира#
Этот способ стоит освоить, потому что он даёт карту, которую вы видели раньше, чем на ней кто-то начал играть.
- В игровом клиенте откройте экран новой игры и генератор мира. Введите сид, выберите размер и настройте по вкусу города, дикую местность, реки, озёра и рельеф.
- Сгенерируйте мир и посмотрите на карту превью. Проверьте то, что важно для группы: есть ли торговец ближе к центру, начинается ли игра в лесу, а не в пустоши, разбросаны ли города или собраны в кучу. Если не нравится, поменяйте сид и сгенерируйте снова. Это стоит вам минут, а не перезапуска сервера.
- Найдите результат на своём компьютере. В Windows клиент пишет в
%APPDATA%\7DaysToDie\GeneratedWorlds\<World Name>\. - Остановите сервер. Загрузите всю эту папку в каталог
GeneratedWorlds/на сервере, оставив имя папки в точности как есть. Папку такого размера разумно переносить по SFTP; данные для подключения есть в статье SFTP и файловый менеджер. - Укажите в
GameWorldимя папки, задайте новыйGameNameи запустите сервер. - Смотрите в лог: мир должен загружаться под этим именем. Если вместо этого начинается генерация, имя не совпадает с папкой.
<property name="GameWorld" value="East Nikazohi Territory"/><property name="GameName" value="Season4"/>Две детали подводят людей. Версия игры, которая сгенерировала мир, и версия, на которой он запущен, должны совпадать: мир, сделанный на старой сборке, может загрузиться на новой, но планировки POI и форматы файлов мира между крупными версиями меняются, и несовпадение выглядит как пропавшие или сломанные здания. И как только GameWorld указывает на папку, а не на RWG, параметры сида и размера игнорируются, так что не меняйте их в ожидании эффекта.
В RE:NODE файловый менеджер распаковывает архивы на месте, поэтому можно также упаковать папку мира в zip на своём компьютере, загрузить один файл и распаковать его на сервере - это быстрее, чем загружать тысячи мелких файлов по одному.
Биомы, торговцы и что делает сид хорошим#
Случайный мир собирается из биомов - сосновый лес, выжженный лес, пустыня, снег и пустошь, - а поверх них ставятся города и POI. Начиная с 1.0 у биомов есть сложность: в более трудных биомах жёстче спавны и лучше лут, а в последних версиях добавлены опасности биомов, для долгого выживания в которых нужны снаряжение или баффы. Из-за этого планировка значит больше, чем раньше. Сид, который спавнит половину группы в снегах, а половину в лесу, - это сид, на котором первая неделя у разных людей проходит совсем по-разному.
Что проверить в превью, прежде чем остановиться на карте:
- Торговцы. Квесты и ранняя экономика завязаны на торговцев, а генератор ставит их в городах. Карта, где торговец находится на разумном расстоянии от вероятной зоны спавна, играется группой гораздо лучше, чем та, где первая вылазка - это двухдневный поход.
- Стартовый биом. Лес - самый щадящий старт. Посмотрите, где стоят точки спавна относительно границ биомов.
- Расположение городов. Города, собранные в кучу, концентрируют игроков - это дёшево для сервера и хорошо для компанейской группы. Разбросанные города разводят игроков, а это стоит памяти, и карта кажется пустой.
- Вода и дороги. Длинные участки без того и другого делают жизнь мучительной до появления транспорта и однообразной после.
Ничего из этого нельзя настроить при старте RWG на сервере без интерфейса - и это главный аргумент за генерацию в клиенте.
Цена исследования, предварительная генерация и здоровье мира#
Карта существует как проект с момента окончания генерации, но чанки строятся и сохраняются, только когда игроки до них доходят. Из этого следуют две вещи.
Когда кто-то впервые заходит в область, сервер создаёт эти чанки, наполняет POI и пишет новые файлы регионов. На свежем сервере, где все разбегаются в разные стороны, первые пару вечеров нагрузка будет самой высокой за всё время, не считая ночей орды. Всё успокаивается, когда часто посещаемые области уже созданы.
В 7 Days to Die есть консольная команда visitmap, которая проводит сервер по области и заранее генерирует её чанки - примерно как Chunky для Minecraft. Она полезна, чтобы отрисовать полную веб-карту на дашборде, и иногда - чтобы сгладить запуск. Но она медленная, пишет файлы регионов для всей области, и полная карта 10k, сгенерированная таким способом, - это много гигабайт сохранения ещё до того, как кто-то что-то построил. Выполните help visitmap на своей сборке, чтобы узнать точный синтаксис, и без особой причины используйте её на части карты, а не на всей.
Взрослому миру помогают две настройки:
| Параметр | По умолчанию | Что делает |
|---|---|---|
MaxUncoveredMapChunksPerPlayer | 131072 | Предел открытой карты каждого игрока, которая хранится в его файле игрока |
ServerMaxWorldTransferSpeedKiBs | 512 | С какой скоростью исследованные данные мира отправляются заходящему игроку |
На большом, хорошо исследованном мире новые игроки могут заходить долго, потому что им отправляется много данных мира. Увеличение скорости передачи помогает, если у сервера есть канал, а у игрока - соединение.
Файлы регионов - это то место, где мир повреждается. Каждый файл .7rg покрывает квадрат карты, и сервер, убитый посреди записи, может оставить такой файл повреждённым. Выглядит это как конкретная область, которая роняет любого, кто в неё заходит, при том что остальная карта в порядке. Останавливайте сервер командой shutdown или кнопкой Stop в панели, никогда не убивайте процесс, и храните резервные копии, которые можно просматривать пофайлово, чтобы восстановить один регион, а не весь сезон.
Вайпы, новые сезоны и сохранение старого мира#
Раз мир и сохранение разделены, существует три вида сброса, и их стоит назвать до того, как группа начнёт спорить, какой из них имелся в виду.
| Сброс | Что меняется | Результат |
|---|---|---|
| Вайп сохранения, та же карта | Новый GameName | Тот же рельеф, свежие POI и лут, все начинают заново |
| Новая карта | Новый сид или новый загруженный мир плюс новый GameName | Новый рельеф и свежее сохранение |
| Вайп только игроков | Удалить папку Player в сохранении | Состояние мира прежнее, персонажи сброшены - редко то, чего кто-то хочет |
Безопасный порядок действий для нового сезона:
- Объявите о нём и назовите дату.
- В этот день выполните
saveworld, затем остановите сервер. - Сделайте резервную копию папки старого мира и папки старого сохранения вместе и заблокируйте её, чтобы ротация её не удалила. В RE:NODE резервные копии можно заблокировать от ротации именно для этого.
- Поменяйте
GameName, а также сид илиGameWorld, если меняется карта. - Запустите сервер, дождитесь генерации или загрузки мира и зайдите один раз сами, прежде чем объявлять, что сервер открыт.
- Когда будете уверены, что никому ничего не нужно из старого сезона, удалите старые папки сохранения и мира, чтобы освободить диск.
Хранить мир прошлого сезона дешевле, чем кажется, и иногда бесценно - для игрока, который клянётся, что на его базе был сундук, который теперь просят восстановить, или для «финальных выходных» на старой карте. В статье резервные копии, которые действительно восстанавливаются объясняется, почему такую копию стоит проверить на открытие заранее, а не когда она понадобится.
Решение проблем#
Сервер «завис» на пятнадцать минут при первом запуске. Он генерирует мир. Большие миры на скромных CPU генерируются долго. Следите за консолью; когда всё будет готово, она сообщит о загрузке мира.
Сервер перезапустился во время генерации и начал заново. Он упёрся в лимит памяти. Убедитесь, что больше ничего не происходит, попробуйте снова и подумайте о меньшем размере или о мире, сгенерированном на вашем компьютере и загруженном на сервер.
После изменения конфига все появились на новой карте. Поменялись сид, размер или GameWorld, поэтому загрузились новые мир и сохранение. Старые по-прежнему на диске. Верните старые значения или укажите в GameWorld имя папки старого мира.
Загруженный мир вместо загрузки генерирует новую карту. Значение GameWorld не совпадает с именем папки в точности, включая пробелы и заглавные буквы, или папка загружена на уровень глубже (GeneratedWorlds/Name/Name/).
В загруженном мире здания пропали или стоят недостроенными. Мир сгенерирован на другой версии игры. Сгенерируйте его заново на той версии, на которой работает сервер.
Одна область роняет игроков, которые в неё заходят. Повреждённый файл региона. Восстановите этот .7rg из резервной копии.
На старом сервере вход занимает минуты. Игроки скачивают исследованные данные мира. Увеличьте ServerMaxWorldTransferSpeedKiBs и подумайте, не пора ли давно идущему миру начать новый сезон.
FAQ#
Какой размер карты лучше всего для сервера 7 Days to Die?
8192 для большинства групп из четырёх-восьми человек. Городов и торговцев на ней хватает, чтобы карта не заканчивалась, а игроки остаются достаточно близко, чтобы встречаться. 6144 или Navezgane подходят небольшим группам и скромным планам; 10240 - для публичных серверов с запасом памяти.
Даст ли тот же сид ту же карту, что в игре у друга?
На той же версии игры и том же размере - да, для мира, сгенерированного на сервере из RWG. Мир, сгенерированный в клиенте, зависит ещё и от выбранных там ползунков, поэтому клиентский мир совпадёт, только если совпадают и эти настройки. Между крупными версиями генератор меняется, и тот же сид даёт другую карту.
Можно ли увеличить существующий мир?
Нет. Размер фиксируется при генерации. Мир большего размера - это новый мир, а значит, и новое сохранение для него. Текущий мир остаётся на диске, так что изменение можно откатить.
Можно ли задать количество городов или рельеф на сервере без интерфейса?
Не через serverconfig.xml. Сервер использует значения по умолчанию из rwgmixer.xml. Либо пропатчите этот файл модлетом, либо сгенерируйте мир в клиенте с нужными настройками и загрузите папку.
Navezgane хуже случайного мира?
Не хуже, просто знаком. Он сделан вручную, компактный и стартует мгновенно, что подходит небольшим группам и коротким сезонам. Его минус в том, что все, кто уже играл в игру, знают, где лежит хороший лут.
Сколько места на диске нужно миру?
Сам сгенерированный мир небольшой. Растёт сохранение: файлы регионов появляются по мере исследования, и долгий сезон на карте 10k может дойти до нескольких гигабайт. Закладывайте место под сохранение плюс как минимум две его резервные копии.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.