RE:NODE

Руководства11 мин чтения

Кастомные карты Rust, размер мира и seed

Как выбрать размер мира и seed Rust под ваш онлайн, посмотреть карту до дня вайпа и разместить кастомный файл .map через server.levelurl так, чтобы он нормально скачивался.

0 прочтений

Сервер Rust получает карту одним из двух способов. Процедурная карта генерируется из server.seed и server.worldsize: один и тот же seed, размер и сборка игры всегда дают один и тот же рельеф, поэтому карту можно посмотреть заранее, до дня вайпа, и выбрать осознанно. Кастомная карта - это файл .map, сделанный в редакторе, обычно в RustEdit, который раздаётся игрокам с публичного URL, указанного в server.levelurl. В обоих случаях важнее всего размер - он задаёт, насколько далеко друг от друга живут игроки, сколько появляется монументов и сколько памяти нужно серверу. В этом гайде - как выбрать и то и другое, как разместить кастомную карту, чтобы скачивание не срывалось, и что меняется, когда выходит ежемесячное обновление.

Процедурные карты: seed, размер и уровень#

Процедурный мир определяют три convar-а в строке запуска:

bash
+server.level "Procedural Map" +server.seed 1234567 +server.worldsize 3500
ConvarЗначенияЧто задаёт
server.levelProcedural Map, Barren, фиксированные карты вроде HapisIslandКакой генератор или встроенная карта
server.seedЦелое положительное число до 2147483647Какую карту выдаст генератор
server.worldsize1000-6000Длина стороны квадратной карты в метрах

Barren - это процедурный генератор с гораздо меньшим количеством деревьев и декоративных объектов; его используют для более лёгких и открытых карт и игры в стиле арены, а сколько он экономит, зависит от того, что на нём строят игроки. Фиксированные встроенные карты вроде Hapis Island сделаны вручную и игнорируют seed и размер.

Указывайте эти значения в строке запуска, а не в server.cfg, чтобы карта была записана в команде, которой запущен сервер. Если не указать seed, сервер выберет его сам и будет использовать для этого сохранения. Если потом поменять seed или размер, при следующем запуске вы получите новую карту; старое сохранение на новый рельеф не загрузится.

Сервер записывает сгенерированный рельеф в файл, названный по входным параметрам, например proceduralmap.3500.1234567.<version>.map в папке identity. Имя этого файла - самый быстрый способ ответить на вопрос «какой у нас seed», не открывая настройки запуска. О файлах сохранения, которые лежат рядом, рассказывает статья о вайпах Rust без потери игроков.

Размер мира под ваш онлайн#

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

Размер мираПлощадь относительно 3000Комфортный онлайнОщущение
20000.4x5-20Маленькая группа, постоянный контакт
30001x20-60Плотно и динамично
35001.4x50-100Самый распространённый размер для сообщества
40001.8x75-150Место и для кланов, и для соло
45002.25x125-200Большая и тихая, если не заполнена
5000+2.8x и больше200+Только если есть кем её заполнить

Рассчитывайте на реалистичный пик, а не на надежды. Новый сервер с двадцатью постоянными игроками на карте 4500 кажется мёртвым; те же двадцать на 3000 проводят живой вайп. Увеличить карту всегда можно на следующем вайпе.

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

Предпросмотр и выбор seed#

Выбрать seed вслепую - значит узнать в ночь вайпа, что у аутпоста нет воды или что крупный монумент оказался в море. Сначала посмотрите карту.

  1. Составьте короткий список seed-ов выбранного размера на сайте предпросмотра карт. Самый популярный - RustMaps: введите размер и seed, и он покажет рельеф, монументы и дороги для текущей версии игры.
  2. Проверьте то, что важно вашим игрокам: набор крупных монументов, сеть дорог и железных дорог, которая их соединяет, достаточно места в глубине суши для строительства и наличие всех монументов, на которые рассчитывает ваше сообщество.
  3. После ежемесячного обновления подтвердите выбор на тестовом сервере. Генерация может меняться между версиями, и предпросмотр, сделанный на сборке прошлого месяца, не гарантирован для текущей.
  4. Запишите seed в план вайпа, чтобы тому, кто проводит день вайпа, не пришлось импровизировать.

Сайтам предпросмотра после обновления нужно время на обработку новых версий, а совершенно новый seed может генерироваться у них несколько минут. Держите наготове два-три кандидата.

Какая процедурная карта хорошая

Предпросмотр позволяет легко отбраковать плохие seed-ы, но полезно знать, что именно искать. Вот что меняет ход вайпа:

  • Распределение монументов. Крупные монументы вроде Launch Site, Military Tunnels и Airfield - это место, где лежит лучший лут и идут бои. Если они скучены на одной стороне, эта часть карты достаётся тому, кто первым там отстроится. Если разбросаны - в каждом регионе есть за что сражаться.
  • Безопасные зоны. Outpost и Bandit Camp - места, где игроки торгуют и перерабатывают ресурсы, не опасаясь выстрела. Карта, где обе зоны забились в один угол, заставляет половину сервера совершать долгие походы.
  • Дороги и железная дорога. Связанная сеть дорог и железных дорог делает полезными транспорт и поезд. Карта, где железная дорога разорвана на куски, впустую тратит одну из систем игры.
  • Побережье и вода. Длинное побережье - это больше игры на лодках и больше рыбацких деревень; озёра и реки в глубине суши дают строителям удобные для обороны места. Острова у самого берега - любимые места для баз у больших групп.
  • Место для строительства. Некоторые seed-ы хоронят большую часть суши под крутыми горами или снегом. Игрокам нужна ровная земля рядом с ресурсами в каждом биоме.

Идеальных seed-ов не бывает, и игроки всё равно построятся там, где захотят. Смысл предпросмотра - избежать явно перекошенных карт, на которых вайп кажется решённым в первый же день.

Кастомные карты: что это и откуда они берутся#

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

Получить такую карту можно тремя способами:

  • Бесплатные карты, которыми делятся авторы, обычно более старые или простые.
  • Платные карты с маркетплейсов вроде Lone.Design и Codefling, как правило с обновлениями после изменений в игре. Читайте лицензию: большинство разрешает использование на ваших серверах, но не распространение.
  • Заказ у авторов карт - ради карты, которой больше ни у кого нет.

Некоторым кастомным картам для полноценной работы нужно серверное расширение. Расширение RustEdit обеспечивает возможности, которые авторы размещают в редакторе, - например, кастомные спавны NPC, IO-логику и другое поведение, заданное картой. В Oxide это .dll, который кладётся в RustDedicated_Data/Managed; Carbon обрабатывает расширения по-своему. Что нужно карте, написано в её документации. Подробности о совместимости - в статье Carbon или Oxide.

Размещение файла карты через server.levelurl#

Кастомная карта заменяет процедурную тройку одним convar-ом, указывающим на URL. Сервер скачивает файл при запуске, и то же самое делает клиент каждого игрока при первом входе.

bash
+server.levelurl "https://maps.example.com/rust/longship-v3.map"

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

ХостингРаботает?Примечания
Свой веб-сервер или статический хостингДаСамый надёжный вариант; имя файла и доступность под вашим контролем
Объектное хранилище с публичными ссылкамиДаУбедитесь, что ссылка публичная и не ограничена по времени
DropboxС оговоркамиСсылка должна быть в форме прямого скачивания
Google DriveНенадёжноДля больших файлов вместо файла показывается страница с предупреждением
Вложения DiscordНетСсылки истекают

Три правила предотвращают большинство сбоев в ночь вайпа:

  1. Меняйте имя файла при каждом изменении карты. Клиенты кэшируют карты по имени. Если заменить longship.map обновлённой версией с тем же именем, игроки со старой копией загрузят старый рельеф и не смогут зайти или увидят глюки. Последовательность longship-v3.map, затем longship-v4.map этого избегает.
  2. Используйте HTTPS на хостинге, который будет доступен в час вайпа. Каждый игрок, ещё не скачавший карту, обращается к URL в первые минуты после вайпа. Личная ссылка с лимитом трафика откажет именно тогда.
  3. Проверьте URL снаружи. Вставьте его в браузер в другой сети. Если вы видите веб-страницу, запрос логина или предупреждение, то же самое увидит и игра.

Файлы кастомных карт больше, чем обычно ожидают, - часто десятки мегабайт, а у детальных карт и больше. Каждый новый игрок скачивает файл один раз на версию, а в ночь вайпа это большая часть вашего онлайна за несколько минут. Умножьте размер файла на пиковое число игроков, чтобы понять, сколько хостингу нужно отдать за этот всплеск, и выберите хостинг, который не режет скорость и не ограничивает трафик. Для игрока медленное скачивание выглядит как зависание игры на экране загрузки; предупредите в объявлении, что первый вход займёт больше времени, чтобы люди подождали, а не решили, что сервер сломан.

Если у вас уже есть сайт, проще всего разместить карту рядом с ним. Статический файл на веб-тарифе с доменом и автоматически выпускаемым сертификатом - вполне хороший хостинг для карты; в RE:NODE тарифы веб-хостинга включают слот reverse proxy, который выпускает и продлевает сертификат, как только ваша A-запись указывает на показанный адрес. Как раздавать обычные файлы, разобрано в статье о хостинге статических сайтов.

Кастомные карты и ежемесячное обновление#

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

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

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

Пример: перевод сервера на кастомную карту#

Community-сервер на 60 игроков с процедурной картой 3500 хочет к следующему вайпу тематическую кастомную карту.

  1. За неделю купите или получите карту и прочитайте её требования: размер, расширение, плагины.
  2. Загрузите harbour-v1.map на веб-хостинг и проверьте URL с телефона через мобильный интернет.
  3. На тестовой копии сервера замените три процедурных convar-а на +server.levelurl и установите расширение. Запустите, зайдите, проверьте монументы и спавны.
  4. В день вайпа обновите Rust, обновите расширение, заново скачайте карту, если автор выпустил исправление, и переименуйте её в harbour-v2.map.
  5. Удалите старые файлы .sav и .map, задайте server.levelurl на живом сервере, запустите.
  6. Объявите, что при первом входе скачивается карта, чтобы долгая загрузка не стала для игроков сюрпризом.

Сохраните старые процедурные настройки записанными. Если кастомная карта в последний момент подведёт, вернуться к заранее просмотренному seed - дело двух минут.

Решение проблем с картами#

Игроки застревают на «Downloading map» или получают ошибку скачивания. URL не является прямой ссылкой, истёк или ограничен по частоте запросов. Проверьте его в браузере снаружи своей сети.

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

Сервер с кастомной картой не запускается после обновления. Изменился префаб или расширение. Проверьте, нет ли новой версии карты и сборки расширения; чтобы поднять сервер на время ожидания, переключитесь на процедурную карту.

Монументы без NPC или со сломанной IO-логикой. Нужное расширение не загружено. Найдите в консоли при запуске строку о его загрузке.

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

Первому запуску после вайпа не хватает памяти. Генерация на большом размере мира. Уменьшите server.worldsize или дайте генерации больше памяти.

FAQ#

Какой размер мира лучше всего для сервера Rust?

Тот, что соответствует вашему пиковому онлайну. 3000-3500 подходит большинству community-серверов на 30-100 игроков; 4000 и больше окупается только при большем числе игроков.

Можно ли сохранить ту же карту между вайпами?

Между принудительными вайпами - да: оставьте .map, удалите .sav, и игроки начнут с нуля на знакомом рельефе. После принудительного обновления процедурный seed обычно генерирует другую карту, а кастомная карта остаётся прежней, если её автор её обновит.

Какая самая большая карта допускается в Rust?

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

Где взять кастомные карты для сервера Rust?

Напрямую у авторов карт или на маркетплейсах вроде Lone.Design и Codefling, где платные карты обычно включают обновления после изменений в игре. Большинство из них сделано в RustEdit.

Почему игроки не могут скачать мою кастомную карту?

Почти всегда дело в URL. Он должен отдавать файл напрямую по HTTP или HTTPS, без страницы предпросмотра, логина и срока действия. Разместите файл там, где вы его контролируете, и проверьте ссылку из другой сети.


Комментарии

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

0/2000