Bean Network Tester

Gamelag en pakketverlies simuleren

Netcode wordt geschreven op een lokale verbinding met 1 ms ping en getest door spelers op hotelwifi. Dit dicht dat gat op je eigen machine, alleen op het gameproces, terwijl de rest van de computer bruikbaar blijft.

Begin hier

Richt op de gameclient, geef hem een realistische slechte verbinding en laat hem na vijf minuten vanzelf stoppen:

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

Hiervoor is ook een kant-en-klare tijdlijn: overloaded-game-server.json in de map scenarios loodst een verbinding naar congestie en weer terug, zodat je kunt zien hoe de client beide richtingen van de verandering aankan. Zie scenario’s in de tijd.

Waarom een game verlies laat zien als een browser dat niet doet

Het meeste gameverkeer is UDP, en UDP heeft niets om verlies achter te verbergen. Een webpagina over TCP verstuurt stilletjes opnieuw en duurt gewoon langer, daarom kan een browser prima aanvoelen bij 5% verlies terwijl een potje bij diezelfde 5% hapert, teruggetrokken wordt en uit sync raakt.

Dat maakt een game de eerlijke plek om verlies te testen: wat je instelt is wat de client daadwerkelijk ervaart.

Wat je instelt en wat het blootlegt

InstellingProbeerWat het blootlegt
Latentie80 tot 250 msVoorspelling en interpolatie. Schuift je personage na een schot terug?
Jitter40 tot 100 msBuffering. Een constante 200 ms is makkelijker te verbergen dan een ping die blijft bewegen.
Verlies2 tot 10%Ontbrekende statusupdates, en of de client herstelt of afdrijft.
Uitschieters1 seconde, zeldenDe stilstand die een overdracht tussen masten veroorzaakt. Meestal de lelijkste.
Verbinding aan en uitcyclus van 10 s, 30% uitvalOpnieuw verbinden en opnieuw meedoen.

Meet jitter als het verschil tussen het 95e percentiel en de mediaan in plaats van als gemiddelde: jitter beweegt een gemiddelde nauwelijks, en daarom kan een run op papier identiek lijken en toch anders spelen.

Twee builds vergelijken heeft een seed nodig

Willekeurig verlies maakt twee runs verschillend, dus “de nieuwe build voelt slechter” is geen bewijs. Dezelfde seed speelt hetzelfde verlies en dezelfde jitter opnieuw af, wat een gevoel in een vergelijking verandert:

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

Wat het niet kan

Dit vormt het verkeer van jouw machine. Het vertraagt de server niet, verandert zijn tickrate niet en zet geen andere spelers op een slechte verbinding, dus het test jouw client tegen een slechte verbinding, niet je server onder belasting. Voor de serverkant heb je belastingtests nodig, en voor een lobby vol slechte verbindingen heb je meer dan één machine nodig.

Verder

Klaar om je eigen netwerk expres te slopen?

Downloaden voor Windows