Bean Network Tester

Симуляція лагів в іграх і втрати пакетів

Мережевий код пишуть на локальному з’єднанні з пінгом 1 мс, а тестують гравці на вайфаї готелю. Це закриває розрив на вашій власній машині, лише на процесі гри, поки решта комп’ютера лишається придатною до роботи.

Почніть тут

Спрямуйте на клієнт гри, дайте йому реалістичне погане з’єднання й дозвольте самому зупинитися через п’ять хвилин:

BeanNetworkTester.exe --latency 120 --jitter 60 --loss 3 --target mygame.exe --duration 300

Для цього є і готова часова шкала: overloaded-game-server.json у теці scenarios веде з’єднання в перевантаження й назад, щоб ви бачили, як клієнт упорається з обома напрямками зміни. Дивіться сценарії в часі.

Чому гра показує втрату, а браузер ні

Більшість ігрового трафіку це UDP, а UDP немає за чим ховати втрату. Вебсторінка через TCP тихо повторює передавання й просто довше вантажиться, тому браузер може здаватися нормальним при 5 % втрат, а матч за тих самих 5 % смикається, відкочує персонажа й втрачає синхронізацію.

Це робить гру чесним місцем для перевірки втрат: що ви задали, те клієнт і відчуває.

Що задати і що воно виявляє

НалаштуванняСпробуйтеЩо воно виявляє
Затримкавід 80 до 250 мсПередбачення й інтерполяцію. Чи не відкочується ваш персонаж після пострілу?
Джитервід 40 до 100 мсБуферизацію. Стабільні 200 мс приховати легше, ніж пінг, що постійно рухається.
Втратавід 2 до 10 %Пропущені оновлення стану й те, чи клієнт відновлюється, чи розходиться.
Стрибки1 секунда, рідкоЗависання, яке спричиняє передавання між вежами. Зазвичай найпотворніше.
Вмикання й вимикання каналуцикл 10 с, 30 % простоюПовторне підключення та повторний вхід.

Вимірюйте джитер як різницю між 95-м перцентилем і медіаною, а не як середнє: джитер ледве рухає середнє, тому запуск може на папері виглядати однаково, а грається інакше.

Для порівняння двох збірок потрібен seed

Випадкова втрата робить два запуски різними, тож «нова збірка здається гіршою» не є доказом. Той самий seed відтворює ту саму втрату й той самий джитер, що перетворює відчуття на порівняння:

BeanNetworkTester.exe --latency 120 --jitter 60 --loss 5 --seed 42 --target mygame.exe --duration 180

Чого воно не вміє

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

Далі

Готові навмисно зламати власну мережу?

Завантажити для Windows