Десинк между игроками на ARK-сервере
Классика ARK: один игрок клянётся, что рекс стоит у ворот базы, второй в это же время спокойно проходит мимо — существа для него в другом месте. Или трайб бьёт по боссу, а урон засчитывается с задержкой в секунду-две, будто игра сама не может определиться, что происходит прямо сейчас. Это десинк — рассинхронизация положения существ, игроков и объектов между клиентами и сервером. Разберём, откуда он берётся и что из этого реально лечится настройками, а что придётся просто пережить как особенность движка.
Содержание
Что такое десинк и чем он отличается от обычных лагов
Десинк — не то же самое, что просадка FPS или тик-лаги в привычном понимании. При обычном лаге весь мир на сервере тормозит одинаково для всех: все видят одну и ту же замедленную картинку. Десинк — это когда у разных клиентов разные версии реальности в один и тот же момент: игрок А видит велоцираптора на скале, игрок Б — уже спустившегося вниз, хотя оба смотрят на один и тот же сервер в одну и ту же секунду.
Технически дело в том, как ARK на движке Unreal синхронизирует состояние мира. Сервер — источник истины, но не может слать полное состояние каждого объекта каждому клиенту в реальном времени, это нереалистичный объём трафика при сотнях существ на карте. Вместо этого используется репликация с интерполяцией и предсказанием на клиенте: клиент сам достраивает движение существ между пакетами обновлений, а когда приходит новый пакет — «доводит» позицию до реальной. Если пакеты идут редко, с задержкой или сервер не успевает вовремя разослать обновления — расхождение между тем, что клиент "напредсказывал", и тем, что реально происходит на сервере, растёт. Это и ощущается как десинк, рывки существ («телепорты»), запоздалый урон.
Если у вас в принципе весь сервер тормозит одинаково для всех — это, скорее всего, обычный тик-лаг, а не десинк, и тут больше пригодится общая статья про мониторинг TPS и лагов на игровом сервере — принципы диагностики CPU/RAM там применимы и к ARK. Здесь разбираем именно ситуацию, когда картина мира у разных игроков расходится.
Сетевая нестабильность сервера: проверяем первым делом
Прежде чем лезть в конфиги игры, исключите банальное — проблемы с сетью самого сервера. Десинк усиливается пропорционально тому, насколько нестабильно и с задержкой сервер отправляет пакеты обновлений клиентам.
С клиентской машины проверьте маршрут до IP сервера:
tracert ip_сервера # Windows
traceroute ip_сервера # Linux/macOS
mtr ip_сервера # Linux/macOS, показывает потери по каждому узлу маршрута
Смотрите на две вещи: стабильность пинга (скачет ли он рывками между пакетами вместо ровного значения) и packet loss — потери пакетов на любом из промежуточных узлов. Если жалуется весь трайб одновременно, а не один игрок — вероятнее сеть самого сервера или хостинга, а не чей-то домашний роутер. Если десинк ловит только один человек, пока остальные не замечают проблем — вероятнее его собственное подключение, и тут конфигами сервера ничего не исправить.
Со стороны сервера полезно проверить исходящий канал под нагрузкой — не упирается ли он в лимит именно в часы пика, когда десинк обычно и заметнее всего (чем больше онлайн и активности, тем больше исходящего трафика на рассылку состояния мира). Если хостинг даёт доступ к графику сетевой загрузки в панели — стоит свериться, не совпадают ли жалобы игроков по времени с пиками исходящего трафика.
Поднять сервер ARK: Survival за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверПерегрузка сервера: слишком много существ и построек
ARK известен тем, что плохо масштабируется по числу активных объектов на карте — это не секрет и не баг конкретно вашего сервера, а особенность того, как движок обсчитывает и реплицирует сотни прирученных существ, турелей, построек с физикой. Каждое существо на карте — это не просто модель, а объект с ИИ, коллизией и сетевым состоянием, которое нужно постоянно синхронизировать со всеми клиентами поблизости. Чем больше таких объектов скопилось за долгую жизнь сервера — тем больше нагрузка на каждый цикл репликации, и тем заметнее десинк даже при в целом приличном тикрейте.
Характерный сценарий: сервер живёт месяцами, трайбы держат десятки прирученных динозавров каждый, база обросла сотнями построек — и десинк, которого не было в первую неделю, постепенно нарастает. Это прямое следствие накопленной нагрузки, а не внезапной поломки конфига.
Что реально снижает эту нагрузку:
- лимит на число прирученных существ на трайб или на игрока (
TamedDinoClassDamageMultipliersтут не поможет — а вот лимиты через настройки сложности сервера и модерация вручную работают); - регулярная чистка заброшенных построек неактивных игроков — в ванильном ARK это частично делает система разрушения построек в PvP по таймеру, но на PvE-серверах чаще нужна ручная модерация или плагин;
- ограничение числа турелей на базу там, где это уместно для баланса сервера — турели с постоянным сканированием целей тоже не бесплатны для сети.
Если у вас модовый сервер со структурными или creature-модами — учтите, что часть модов сама по себе добавляет нагрузку на репликацию сверх ванильной игры. Разбор популярных сборок и на что смотреть при их выборе — в статье про топ модов для ARK: Survival.
NetServerMaxTickRate и сетевые настройки в конфиге
Один из немногих рычагов, который напрямую влияет именно на десинк, а не на тик-лаги в целом — параметр NetServerMaxTickRate в GameUserSettings.ini, секция [ServerSettings]:
[ServerSettings]
NetServerMaxTickRate=30
Это частота, с которой сервер рассылает клиентам обновления сетевого состояния — по умолчанию ориентировочно около 30 в секунду (точное значение по умолчанию может отличаться между версиями игры, не воспринимайте это как жёстко зафиксированную цифру). Чем выше значение — тем чаще клиенты получают свежие данные о позициях существ и объектов, и тем меньше клиенту приходится "додумывать" интерполяцией — соответственно десинк субъективно ощущается меньше. Но у этого есть цена: более высокий тикрейт сети — это больше исходящего трафика на каждого подключённого игрока и больше нагрузки на CPU сервера на сборку и рассылку этих пакетов. Поднимать его стоит только если у сервера реально есть запас по каналу и процессору — иначе можно получить обратный эффект и просадить общую производительность.
Путь до файла для классического ARK: Survival (Evolved):
ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini
Для ARK: Survival Ascended — обратите внимание, папка называется WindowsServer даже на Linux-хостинге, потому что бинарник сервера остаётся Windows-приложением и крутится через Proton:
ShooterGame/Saved/Config/WindowsServer/GameUserSettings.ini
Если ставили сервер по нашим инструкциям — подробный разбор структуры и остальных параметров есть в статьях как поднять сервер ARK: Survival и как поднять сервер ARK: Survival Ascended.
Поднимать NetServerMaxTickRate стоит небольшими шагами (например, с 30 до 40-45) и проверять реакцию сервера по CPU и по фидбеку игроков, а не сразу выкручивать в максимум — иначе конфиг может сделать хуже, а не лучше.
Слишком много игроков на насыщенной карте
Десинк усиливается нелинейно с ростом одновременного онлайна на насыщенной событиями карте — не потому что каждый игрок сам по себе тяжёлый, а потому что каждый добавляет свою зону активности (существа рядом, постройки, бои), которую нужно синхронизировать со всеми остальными поблизости. Сервер на 70 игроков с активной PvP-зоной десинкает заметно чаще, чем тот же сервер на 20 игроков при равном железе — это довольно типичная картина для survival-песочниц с плотной застройкой.
Если карта разрослась и десинк стал регулярной жалобой, а не редким эпизодом, есть несколько практических путей, кроме banального апгрейда тарифа:
- Кластер вместо одной перегруженной карты. Разнести игроков по нескольким картам-инстансам (например, The Island + Ragnarok в кластере с общим складом) снижает плотность объектов на каждой отдельной карте и, соответственно, нагрузку на репликацию в каждый момент времени.
- Ограничение максимального онлайна под реальные возможности железа, а не под то, сколько слотов хотелось бы продать — если сервер стабильно десинкает при заполнении, честнее снизить
MaxPlayersв конфиге запуска, чем терпеть жалобы. - Разделение PvP и PvE активности по времени или зонам, где это применимо для формата сервера — концентрация боёв с турелями и существами в одном месте создаёт локальный пик нагрузки на репликацию сильнее, чем равномерно распределённая активность.
Что реально помогает: чек-лист минимизации
Собираем всё в порядке приоритета — от простого к более трудозатратному:
- Проверить сеть сервера (
mtr/traceroute, стабильность пинга, packet loss на исходящем канале) — это база, без которой остальные шаги бессмысленны. - Свериться с ресурсами хоста — CPU и, отдельно, загрузку исходящего сетевого канала в часы пика.
- Провести ревизию накопленных существ и построек — заброшки, лишние турели, раздутые фермы динозавров.
- Аккуратно поднять
NetServerMaxTickRateнебольшими шагами, если есть запас по CPU и каналу. - При стабильно высоком онлайне на насыщенной карте — рассмотреть разнесение по кластеру или пересмотр лимита слотов.
- Если после всего этого десинк остаётся заметным при обычной активности — это, вероятнее всего, упор в возможности тарифа, и стоит смотреть в сторону более мощной конфигурации VPS под сервер ARK.
Отдельно стоит сказать честно: часть десинка в ARK — это известная техническая особенность движка при высокой нагрузке, а не баг конкретно вашей настройки. Даже у крупных сообществ и официальных серверов десинк периодически проскакивает в пиковые часы. Задача не в том, чтобы полностью убрать его — это едва ли реалистично при большом активном сервере — а в том, чтобы свести к разумному минимуму через сеть, ресурсы и аккуратные настройки конфига.
Поднять сервер ARK: Survival за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Десинк — это то же самое, что рубербендинг (rubber-banding)?
Близкие явления с одной причиной — задержкой или потерей сетевых обновлений, но рубербендинг обычно про резкие рывки позиции самого игрока при движении, а десинк шире — расхождение положения существ, объектов и событий (урон, взаимодействия) между разными клиентами.
Помогает ли SSD/NVMe против десинка?
Косвенно и не напрямую. Десинк — это в первую очередь про сеть и CPU-нагрузку на репликацию состояния, а не про скорость диска. Быстрый диск важен для загрузки мира и сейвов, но не решает проблему рассинхронизации между клиентами.
Можно ли полностью убрать десинк на ARK-сервере?
Реалистично — нет, если сервер активный и насыщенный контентом. Можно заметно снизить частоту и выраженность через настройки сети, чистку карты и достаточные ресурсы, но полностью исключить его при высокой нагрузке движок не позволяет.
NetServerMaxTickRate одинаково настраивается для ARK: Survival и ARK: Survival Ascended?
Сам параметр и логика работы одинаковые, но путь до конфига отличается — Config/LinuxServer у оригинального ARK и Config/WindowsServer у Ascended, даже при развёртывании на Linux-хостинге.
Стоит ли сразу винить хостинг, если начался десинк?
Не сразу — сначала проверьте сеть (mtr/traceroute) и ресурсы своими силами. Если сеть чистая, CPU не упирается в потолок, а десинк всё равно есть при разумном онлайне — вот тогда есть смысл писать в поддержку хостинга с конкретными данными диагностики, а не с абстрактным "сервер лагает".