Bean Network Tester

Symulator lagów i utraty pakietów w grach

Kod sieciowy pisze się na lokalnym łączu z pingiem 1 ms, a testują go gracze na hotelowym WiFi. To zamyka tę różnicę na Twojej maszynie, tylko na procesie gry, gdy reszta komputera zostaje używalna.

Zacznij tutaj

Wyceluj w klienta gry, daj mu wiarygodnie słabe łącze i pozwól zatrzymać się samo po pięciu minutach:

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

Jest też gotowa linia czasu - overloaded-game-server.json w katalogu scenarios wprowadza łącze w przeciążenie i z niego wyprowadza, więc widzisz, jak klient radzi sobie z oboma kierunkami zmiany. Zobacz scenariusze w czasie.

Dlaczego gra pokazuje stratę, a przeglądarka nie

Większość ruchu gier to UDP, a UDP nie ma czym zasłonić straty. Strona po TCP po cichu retransmituje i po prostu ładuje się dłużej - dlatego przeglądarka może działać znośnie przy 5 procentach straty, gdy mecz przy tych samych 5 procentach się tnie, cofa postacie i traci synchronizację.

To czyni grę uczciwym miejscem do testowania straty: to, co ustawisz, jest tym, czego klient naprawdę doświadcza.

Co ustawić i czego to szuka

UstawienieSpróbujCo obnaża
Latencja80 do 250 msPredykcję i interpolację. Czy postać cofa się po strzale?
Jitter40 do 100 msBuforowanie. Stałe 200 ms łatwiej ukryć niż ping, który ciągle się rusza.
Utrata2 do 10 procentGubione aktualizacje stanu i to, czy klient wraca, czy odjeżdża.
Skoki1 sekunda, rzadkoZacięcie przy przełączeniu nadajnika. Zwykle najbrzydsze.
Łącze na przemiancykl 10 s, 30 procent przerwyPonowne łączenie i powrót do rozgrywki.

Jitter mierz jako różnicę między 95. percentylem a medianą, nie jako średnią - jitter prawie nie rusza średniej, dlatego przebieg może wyglądać identycznie na papierze i grać się inaczej.

Porównanie dwóch buildów wymaga ziarna

Losowa strata sprawia, że dwa przebiegi się różnią, więc "nowy build wydaje się gorszy" nie jest dowodem. To samo ziarno odtwarza tę samą stratę i ten sam jitter, co zamienia wrażenie w porównanie:

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

Czego to nie potrafi

To kształtuje ruch Twojej maszyny. Nie zwalnia serwera, nie zmienia jego tick rate i nie wsadza innych graczy na słabe łącze - więc testuje Twojego klienta przy złym łączu, a nie serwer pod obciążeniem. Do strony serwerowej służą testy obciążeniowe, a do lobby pełnego słabych łączy potrzebujesz więcej niż jednej maszyny.

Dalej

Chcesz zepsuć sobie sieć specjalnie?

Pobierz na Windows