2004 RuneScape fit a multiplayer RPG into 56k dial-up
In 2004, RuneScape managed to deliver a multiplayer RPG experience on a 56k modem, a connection speed of just 5 kilobytes per second. The secret lay in optimizing every byte transmitted. The game's client software, which could be decompiled and analyzed, revealed the intricate details of this optimization.
Upon clicking a tile, the client initiated a breadth-first search to map out a path to the clicked location. This path was then transmitted to the server in packets. The packet began with an "opcode" byte, a small integer indicating the type of packet. This opcode was encrypted using a stream cipher called ISAAC, ensuring only the first byte of the packet was secure against third-party parsers.
The packet body included the absolute position of the first waypoint and the delta (difference) of each subsequent waypoint relative to the first. This approach, of only transmitting deltas rather than absolute coordinates, saved bytes - a single click only required two bytes, compared to the four bytes required for absolute coordinates.
The server, reading the packet, reconstructed the path by walking from the starting point to the destination, validating each step against its own collision map. This validation was crucial, as the server had no way of knowing the client's exact position.
The server's main loop, waking roughly every 600ms, processed incoming packets, handled the game logic, and then sent out updated game states. The 20ms client flush, the time taken to send the packet, was well under the 600ms cycle time, meaning latency was essentially non-existent. This was all possible due to the game's frugal use of bytes, a testament to the developers' commitment to delivering a rich multiplayer experience over a slow connection.
Written by urgent.news from Hacker News's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.