Налаштування мережевої реплікації (Replication Layer) та боротьба з затримками в Arma Reforger

Технічний посібник з оптимізації мережевого рівня реплікації движка Enfusion, налаштування пропускної здатності в config.json та усунення десинхронізації через важкі моди.

20.05.2026 Українська

Налаштування мережевої реплікації (Replication Layer) та боротьба з затримками в Arma Reforger

З виходом Arma Reforger та революційного движка Enfusion Engine розробники з Bohemia Interactive повністю відмовилися від старої мережевої архітектури, що використовувалася в Arma 3. На зміну капризним глобальним змінним та скриптовому планувальнику, який був жорстко пов'язаний із кадровою частотою, прийшов сучасний, високопродуктивний мережевий рівень — Replication Layer (Слой репликации).

Незважаючи на колосальний крок уперед у плані оптимізації, некоректне налаштування параметрів мережі на виділеному сервері (Dedicated Server) при високому онлайні (64+ гравців) все ще може призводити до мережевих лагів, затримок реєстрації влучань та розсинхронізації. У цій статті ми проведемо глибокий технічний розбір роботи шару реплікації та навчимося керувати лімітами пропускної здатності через конфігураційні файли хостингу.

Як працює реплікація в Enfusion Engine?

В основі старого мережевого коду Arma 3 лежала модель, за якої клієнти постійно «домовлялися» з сервером про симуляцію фізики. Enfusion Engine працює інакше — за суворим принципом авторитету сервера (Server Authority) та динамічного обміну станами (State Replication).

Кожен об'єкт у світі гри (солдат, патрон, автомобіль, дерево) на мережевому рівні є набором Вузлів репликації (Replication Nodes). Замість відправки безперервного потоку координат, сервер надсилає клієнтам тільки зміни станів цих вузлів. Якщо БТР стоїть на базі і не рухається, його вузол реплікації переходить у стан «сну» і генерує 0 байт мережевого трафіку.

Слой реплікації використовує два основні методи передачі даних:

  • RplProp (Replicated Property): Властивості, що автоматично синхронізуються. Наприклад, рівень здоров'я гравця або кількість патронів у магазині. Вони передаються з різним пріоритетом у фоновому режимі.
  • RPC (Remote Procedure Call): Моментальні мережеві події, що вимагають миттєвого виконання (наприклад, факт натискання на спусковий гачок або кидок гранати).

Чому виникають затримки? Коли на сервері йде масштабний бій (режим Conflict, працюють 100+ ботів, вибухає техніка, гравці ведуть щільний вогонь), обсяг RPC-запитів та змін RplProp різко зростає. Якщо мережеві ліміти в конфігурації сервера затиснуті за замовчуванням, сервер починає штучно урізати частоту оновлень, вибудовуючи пакети в чергу. Для гравців це виглядає як телепортація союзників та затримка реєстрації кулі.


Тонке налаштування мережевих лімітів у config.json

Для запобігання мережевим чергам та розкриття потенціалу Enfusion Engine необхідно вручну скоригувати приховані мережеві параметри. Відкрийте ваш основний файл config.json через файловий менеджер панелі хостингу та знайдіть або створіть блок "game".

Внесіть такі оптимізовані параметри, розраховані на high-load сервери з модами:

"game": {
    "network": {
        "streamingRadius": 1500,
        "maxBandwidthUp": 50000,
        "minBandwidthUp": 5000,
        "maxPacketsPerClient": 120,
        "controlFramerate": 60,
        "signalingTimeout": 15000
    }
}

Оптимізація частоти оновлення сутностей (Entity Update Rate)

Усередині движка Enfusion пріоритет відправки даних залежить від відстані до об'єкта. Ви можете керувати цією логікою, щоб далекі об'єкти не відбирали пропускну здатність у тих, що знаходяться прямо перед гравцем.

Мережевий рушій ділить світ навколо кожного клієнта на три умовні зони реплікації:

Зона видимості Радіус дії Логіка роботи репликації
Ближня (Close Range) 0 — 200 метрів Максимальний пріоритет. Дані реплікуються кожен мережевий тік (60 разів на секунду). Гарантує ідеальний ПВП-відгук, плавні анімації нахилів та стрільби.
Середня (Mid Range) 200 — 800 метрів Адаптивний пріоритет. Оновлення надсилаються раз на 2-3 тіки. Траєкторії руху техніки згладжуються алгоритмом інтерполяції на стороні клієнта.
Дальня (Far Range) 800 — 1500+ метрів Низький пріоритет. Оновлюються лише критичні зміни (факт знищення об'єкта, переміщення великих груп). Дрібні анімації солдатів повністю відсікаються.

Порада щодо оптимізації `streamingRadius`: За замовчуванням у деяких сценаріях цей параметр може бути відсутнім або викрученим на максимум карти. Встановлення жорсткого ліміту в 1500 метрів у файлі налаштувань — це найефективніший спосіб підняти продуктивність сервера. Гравці все одно не побачать піхоту далі за цю відстань через туман війни, але сервер перестане прораховувати для них переміщення ботів на іншому кінці карти.

Боротьба з десинхронізацією через важкі моди

В Arma Reforger кастомні моди на одяг, розвантажувальні жилети та обвіс зброї часто пишуться сторонніми розробниками без урахування вимог оптимізації мережевих властивостей. Якщо ви помітили, що при наближенні до певного гравця у всіх навколо падає мережевий відгук, причина криється в перевантаженні вузла інвентарю.

  1. Кожен кастомний підсумок або приціл, прикріплений до зброї, створює дочірній вузол реплікації.
  2. Коли гравець швидко перемикає зброю або відкриває інвентар, сервер намагається відреплікувати структуру всіх вкладених предметів одночасно.
  3. Рішення: Обмежуйте використання модів, які додають надмірну кількість слотів під кастомізацію (наприклад, моди на 10 різних шевронів, рацій та дрібних підсумків на одній броні). Віддавайте перевагу оптимізованим пакам (таким як офіційний RHS Status Quo), де структури інвентарю оптизовані на рівні коду класів рушія.

Пам'ятка адміністратора: Enfusion Engine чудово справляється з розподілом потоків, але він вимагає від хостингу широкого мережевого каналу. Переконайтеся, що ваш тарифний план на ігровому хостингу не має жорстких обмежень щодо трафіку (Unmetered Traffic) та надає мережевий порт зі швидкістю не менше 1 Гбіт/с, оскільки оптимізований сервер Arma Reforger при пікових боях споживає в 3 рази більше мережевої пропускної здатності, ніж сервер Arma 3.

Схожі статті

Оптимізація серверної продуктивності в Arma Reforger: ліміти ШІ та чистка карти

Технічний посібник з оптимізації виділених серверів Arma Reforger за допомогою налаштування лімітів спавну ботів ШІ та правил збирача сміття в файлі config.json.

Читати далі

Вирішення конфліктів модів та крашів сервера в Arma Reforger

Технічний посібник з усунення крашів та конфліктів модифікацій на серверах Arma Reforger. Навчіться читати логи движка Enfusion та оптимізувати ієрархію JSON.

Читати далі

Як знайти та підключитися до вашого сервера

Зручний посібник із пошуку сервера Arma Reforger у грі за допомогою пошуку за назвою або прямого підключення за IP-адресою.

Читати далі