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

Эта статья про такую репетицию. Мы не будем рассуждать о хостинге вообще: задача узкая — взять существующее сохранение, перенести его на сервер, который работает на VPS, и убедиться, что игра продолжается, а не начинается заново. Попутно разберём, где в этом процессе прячется память, почему спокойное состояние сервера ничего не говорит о его тяжёлом моменте и по каким признакам понять, что пора вернуться на прежний вариант.

Сначала определяем, что именно переезжает

Фраза «перенести сохранение» звучит так, будто речь об одном файле. На деле переезжает несколько разных вещей, и полезно развести их до начала работы.

Первое — собственно мир: сохранение, в котором записаны постройки, прогресс исследований, содержимое хранилищ и положение игроков. Второе — чертежи (blueprint). Согласно вики по выделенному серверу, сохранения, чертежи, настройки и журналы лежат в разных каталогах. Это важный нюанс: если вы перенесли только сохранение, фабрика будет на месте, но библиотека чертежей, которую вы собирали месяцами, останется на старом компьютере. Третье — настройки самого сервера, которые к миру не относятся. И четвёртое — журналы, которые вам пока не нужны, но понадобятся, когда что-то пойдёт не так.

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

Версия игры: вопрос, который задают до загрузки, а не после

Satisfactory существует в двух ветках — Stable и Experimental. Если сервер и клиенты сидят на разных ветках, а сохранение пересекает эту границу, вы рискуете получить либо отказ подключения, либо мир в состоянии, к которому игра не готова. Разработчик в официальном FAQ рекомендует при смене между Stable и Experimental делать копию сохранения. Мы бы пошли чуть дальше и сформулировали правило шире: любая операция, где сохранение меняет «среду обитания», начинается с копии, лежащей отдельно от рабочего экземпляра.

Практически это выглядит так. Вы выбираете файл, который собираетесь переносить, и копируете его в сторону: в папку, которую не трогают ни игра, ни сервер. Работаете уже с копией копии. Звучит параноидально, но у этой паранойи есть простое оправдание: зрелая фабрика — это сотни часов, а сохранение — один файл, который можно случайно перезаписать неудачным автосохранением в неудачный момент.

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

Ветка клиента и ветка сервера должны совпасть

Прежде чем дергать сервер, убедитесь, что вы и ваши друзья играете на одной ветке и что сервер установлен для той же ветки. Эта проверка не требует никаких специальных инструментов: достаточно договориться в чате и сверить, у кого что выбрано в лаунчере. Если окажется, что один участник сидит на другой ветке, лучше потратить время на выравнивание сейчас, чем потом разбираться, почему «сервер не пускает».

Загрузка мира: где она происходит и кто имеет право её делать

Существующий мир загружают через раздел Manage Saves в Server Manager — об этом говорится в той же вики. Отдельно стоит запомнить, что у сервера два разных пароля: административный и игровой. Пароль игрока не включается автоматически, то есть свежеустановленный сервер без дополнительных действий может оказаться не защищён так, как вы ожидаете. И наоборот: можно настроить администратора, а потом долго недоумевать, почему друзья не могут войти, — просто потому что для них ничего не задано.

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

Теперь сама загрузка. Логика у неё простая: вы открываете Server Manager с административными правами, переходите в Manage Saves, загружаете файл и запускаете из него сессию. А вот что происходит под капотом в эту минуту, интереснее всего, и именно здесь начинается разговор о памяти.

Спокойный сервер и сервер в момент загрузки — это две разные машины

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

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

Моменты, когда память нужно смотреть отдельно
МоментЧто происходитЧто измерять
Сервер запущен, мир пуст или не загруженПроцесс ждёт, игроков нетБазовый уровень, точка отсчёта
Загрузка вашего сохраненияМир разворачивается в памяти целикомПик во время загрузки и уровень после неё
Мир загружен, никого нетФабрика работает без наблюдателейУстоявшийся уровень «в покое»
Подключаются участникиКаждый клиент получает состояние мираПрирост на каждого, пик во время входа
Сохранение прогрессаСостояние мира записывается на дискПик и время записи
Перезапуск сервераВсё повторяется с загрузкиСовпадает ли поведение с первым запуском

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

Как замерять, не выдумывая метрик

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

Ниже — условный пример, придуманный только для иллюстрации хода рассуждения; это не результат измерения ни на каком тарифе. Допустим, на сервере с 8 ГБ памяти в таблице у вас получилось: после старта процесса занято немного, во время загрузки вашего сохранения — заметно больше, а после загрузки уровень чуть откатился, но остался выше стартового. Тогда решение принимается не по любому из этих чисел отдельно, а по запасу в самый тяжёлый момент: хватило ли системе места под пик с запасом на подключение игроков? Если запас тонкий — это сигнал смотреть на следующий тариф, а не надеяться, что «обойдётся».

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации Россия, США, Франция и Великобритания. Оплата картой РФ и по СБП.

АРЕНДОВАТЬ СЕРВЕР

Как ресурсы VPS соотносятся с этим тестом

На VPS MAATRIX линейка тарифов задаёт понятную лестницу: Ba — 1 vCPU, 2 ГБ RAM и 40 ГБ NVMe; Uab — 2 vCPU, 4 ГБ и 80 ГБ; Heka — 4 vCPU, 8 ГБ и 160 ГБ; Maat — 8 vCPU, 16 ГБ и 240 ГБ; Djed — 16 vCPU, 32 ГБ и 320 ГБ. Это ресурсы, а не обещание ёмкости: никакой тариф не означает «потянет столько-то игроков». Для нашей задачи лестница полезна как набор ступеней для эксперимента. Вы начинаете с той, которая выглядит разумной для вашего мира, прогоняете описанный выше тест и смотрите на запас в тяжёлый момент. Если запаса нет, переходите вверх; если он избыточно большой, имеет смысл прикинуть, нужна ли такая ступень.

Есть и обратная логика, и она часто недооценивается. Зрелая фабрика ценна именно тем, что её не хочется терять. Поэтому ошибиться вверх при тестировании дешевле, чем ошибиться вниз: короткий прогон на более щедрой конфигурации покажет, как выглядит «здоровая» загрузка вашего мира, и даст вам эталон для сравнения. Дальше решаете, на какой ступени остановиться, уже с цифрами, а не с ощущениями.

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

Про расположение стоит подумать заранее. В публичном предложении перечислены UK, US, RU и FR. Для игры в реальном времени важнее всего, где находятся ваши участники: сервер ближе к ним — меньше задержка. Если игроки разбросаны, выбор локации — это компромисс, и единственный честный способ его проверить — подключиться и поиграть.

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

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

Делайте это по нарастающей. Сначала войдите сами и запишите уровень памяти. Потом пригласите одного участника, потом второго. Каждый шаг фиксируйте. У вас получится не абстрактное «потянет столько-то игроков», а понятная кривая: сколько добавляет каждый человек именно в вашем мире на вашей конфигурации. Заранее обещать число игроков по чужим цифрам нельзя: оно зависит от размера вашей фабрики, и единственный надёжный ответ — собственный замер.

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

Когда подключение не получается: сеть или мир?

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

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

Этот приём хорош тем, что превращает смутное «не работает» в конкретную гипотезу. Тестовый пустой мир здесь — не замена вашей базы, а инструмент диагностики: он помогает отделить сетевую проблему от проблемы содержимого.

Сохранение нового прогресса: перенесли — ещё не значит, что продолжается

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

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

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

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

Копия на случай, если сохранение не понравится

Пока вы не убедились, что всё работает, держите исходное сохранение нетронутым. Хорошая практика — после каждого значимого этапа делать отдельную копию, подписанную датой и описанием, например «после первой загрузки» или «после входа троих». Это не ритуал: такие копии дают вам точки возврата. Автоматические резервные копии на стороне хостинга мы не берём в расчёт: надёжнее считать, что копии — ваша ответственность.

Перезапуск: действительно ли фабрика возвращается

Теперь самое важное и самое скучное: перезапустить сервер и посмотреть, что вернётся. Именно здесь рождается уверенность. Если после перезапуска вы заходите в мир и видите всё, что делали полчаса назад, значит цепочка замкнулась: загрузка, игра, сохранение, повторная загрузка.

Проверяйте по конкретным признакам, а не по общему впечатлению.

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

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

Когда пора возвращаться на прежний вариант

Хороший перенос включает честный план отступления. Заранее решите, какие признаки означают «стоп». Вот наши критерии, и они, разумеется, ваши собственные, а не требование игры.

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

Возвращение не означает провал. Оно означает, что эксперимент сделал свою работу: вы выяснили границы на копии, а не на единственном экземпляре фабрики. Пока исходное сохранение лежит нетронутым, потерять вы можете только время.

Что даёт такая репетиция

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

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

Если вы решите испытать сервер на VPS, начинайте со ступени, у которой достаточно памяти для вашего мира, и поднимайтесь или опускайтесь по результатам собственного замера. Конфигурации в предложении MAATRIX удобно воспринимать как набор ступеней для такого теста: сервер создаётся автоматически через пару минут после оплаты, оплатить можно картой РФ или через СБП, так что пробный прогон не превращается в долгое мероприятие.

А финальная проверка — совсем простая. Выйдите из мира, подождите минуту, зайдите снова и дойдите до своей главной линии. Если ленты катятся, генераторы гудят, а недостроенная секция ждёт именно там, где вы её оставили, — можно спокойно брать чертёж, подключать новую ветку и продолжать то, что вы начали задолго до всякого сервера. Фабрика не заметила переезда, а это и есть признак того, что переезд удался.