Netplay quality checker

This tool allows a user to check the quality of his network connection for the purpose of playing fighting games. The tool simulates a simple "game" where two players, represented by lines, move backward and forward. Since the game's movement rely on faked keyboard strokes instead of acutal ones, it is completely predictable. Thus, the tool is capable of running an ideal version of the game, knowing exactly how players will both. Two copies of the game are ran: the upper copy uses rollback netcode in order to synchronize the two players in real-time, while the bottom copy represents an ideal game where there is no network lag. You can use this tool to see the artifacts caused by network lag and how they are countered by rollback and delay parameters. Note that except for the faulty connection simulation parameters, all other parameters are automatically enforced on both sides of the connection.

I hope you find this tool useful, whether to evaluate the best parameters for your netplay, or to learn how netcode works. This tool was created through modification of Thomas Boyt's telegraph library, which is itself a Javascript port of GGPO, one of the first rollback netcode implementations for fighting games. The code for telegraph can be found here. My modifications can be found here.

Also, I made this as a preparation for creating a browser based fighting game, wish me luck.



Network connection parameters for both machines

0 The delay parameter tells the netcode to add an artifical delay to your key presses, this delay gives time for the other side to catch up with your key presses. Whenever you want, you can press Z to change the shape of one of the lines. The higher the delay, the longer will it take for the line to start changing.
2 The rollback parameter tells the netcode how many game frames to predict when not receiving input from the other player. Rollback artifacts can be seen when the moving lines "break". Since rollback attempts to predict where the lines will move, then network lag will cause prediction failures whenever the lines change direction/speed.

Simulation parameters for both machines

16 The direction change interval tells the automated players how quickly to change directions. The lower it is, the faster will the players alternate between moving left or right.
20 The movement distance parameter tells the automated players how far to move.
The movement type tells the player to use one of two types of movement: walk or dash. A walk movement has constant speed and can change direction immediately. A dash movement is more realistic, representing an object with acceleration that needs to spend effort to stop. Note that when using the dash movement, it will not always be possible to accurately select the requested movement distance.

Faulty connection simulation (use if running both on your machine)

0 For each sent packet, it will be delayed by at least this value
0 For each sent packet, it will be delayed by at most this value
0 Percentage of sent packets to drop

To run a netplay quality test against a friend, the connection URL to your friend. You can also a second instance on an another tab and use the faulty connection simulation.

Connection URL is:

Connecting...