Bean Network Tester

Simulează lag și pierdere de pachete în jocuri

Netcode-ul se scrie pe o conexiune locală cu 1 ms de ping și este testat de jucători pe wifi de hotel. Asta închide acea prăpastie pe propriul tău calculator, doar pe procesul jocului, în timp ce restul calculatorului rămâne utilizabil.

Începe aici

Țintește clientul jocului, dă-i o conexiune proastă realistă și lasă-l să se oprească singur după cinci minute:

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

Există și o cronologie gata făcută pentru asta: overloaded-game-server.json din folderul scenarios duce o conexiune în congestie și o scoate înapoi, ca să vezi cum tratează clientul ambele sensuri ale schimbării. Vezi scenarii în timp.

De ce arată un joc pierderi când un browser nu

Cea mai mare parte a traficului de joc este UDP, iar UDP nu are în spatele cui să ascundă pierderea. O pagină web peste TCP retransmite pe tăcute și doar durează mai mult, de aceea un browser poate părea în regulă la 5% pierderi, în timp ce un meci la aceleași 5% se blochează, aruncă personajul înapoi și se desincronizează.

Asta face din joc locul cinstit pentru a testa pierderea: ce setezi este ce experimentează de fapt clientul.

Ce să setezi și ce expune

SetareÎncearcăCe expune
Latență80 până la 250 msPredicția și interpolarea. Alunecă personajul tău înapoi după o lovitură?
Jitter40 până la 100 msBuffering-ul. Un ping stabil de 200 ms se ascunde mai ușor decât unul care tot se schimbă.
Pierdere2 până la 10%Actualizările de stare lipsă și dacă clientul își revine sau derapează.
Salturi1 secundă, rarBlocajul provocat de un transfer între turnuri. De obicei cel mai urât.
Legătură pornită și oprităciclu de 10 s, 30% pauzăReconectare și reintrare.

Măsoară jitterul ca diferența dintre percentila 95 și mediană, nu ca medie: jitterul abia mișcă o medie, de aceea o rulare poate arăta identic pe hârtie și se poate juca diferit.

Compararea a două build-uri cere un seed

Pierderea aleatorie face două rulări diferite, deci „noul build se simte mai rău” nu e o dovadă. Același seed reia aceeași pierdere și același jitter, ceea ce transformă o senzație într-o comparație:

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

Ce nu poate face

Acesta modelează traficul calculatorului tău. Nu încetinește serverul, nu îi schimbă rata de tick și nu pune alți jucători pe o conexiune proastă, deci testează clientul tău pe o legătură proastă, nu serverul tău sub încărcare. Pentru partea de server ai nevoie de teste de încărcare, iar pentru un lobby plin de conexiuni proaste ai nevoie de mai mult de o mașină.

Mai departe

Ești gata să-ți strici intenționat propria rețea?

Descarcă pentru Windows