uTsung - distributed load testing tool for uLink games

We're currently working on a major rewrite of uTsung. Therefore the official download only supports up to uLink 1.2. In the meantime developers are welcome to modify the source code to address their needs.

Before releasing your uLink game it is of course essential to test the performance of both the server and the client, to make sure they can handle the expected load.

At MuchDifferent we have modified and tweaked the Erlang-based load-generating tool "tsung" for load testing our various games, including our world record FPS game with 1000 simultaneous players. Since it has proven very useful, we have decided to release the tool to the public. We call it "uTsung", and it's free to use for everyone.

Some of the things uTsung can do:

  • Simulate thousands of players on regular linux hardware (~ 100 players per core).
  • Easily distribute the load generation over several machines on the local network.
  • Record statitics, for example: Number of connected players, response times (ping), server load (cpu, memory, network etc), number of rpc:s sent and received.
  • Consolidate statistics and generate graphical reports once the test run is over.
  • Lets the user write all game-specific simulated client logic in javascript, using a small and simple callback API.

In order to simulate a large amount of users with reasonable amounts of hardware, the amount of logic in clients must be kept as small as possbile. uTsung clients are implemented with simple javascript programming, and will not have a physics engine and other things that a real client has. uTsung is therefore best suited for testing games with an authorative server setup, where the server will automatically correct any client behaving in an unallowed manner.

This manual will cover the basics of how tsung works, along with detailed descriptions of the extra features added in uTsung. For a complete reference on tsung, please refer to the tsung manual:

http://tsung.erlang-projects.org/user_manual.html