Skip to content

Online games ​

Massively multiplayer games and other games where a server owned by the publisher holds the world. The main rules (combat results, loot, the economy) run on a server you do not have. They are environments shared by many players.

Read Legal before starting. Online games add limits that single-player games do not have: terms of service you agreed to, servers whose owners forbid testing against them, client protection that many countries' laws cover, and rights holders who have taken projects to court.

Reference games ​

GameYearWhy it is a good example
Ultima Online1997Early MMO with a documented packet protocol and long-running server emulators
EverQuest19993D MMO; zones as separate servers; a server emulator project for decades
Phantasy Star Online2000, Dreamcast and PCA console online game still played on community servers
City of Heroes2004Shut down in 2012; a community server was later licensed by the publisher
World of Warcraft2004The best known case of server emulation, and of legal action against private servers

Projects to learn from ​

ProjectGameApproach
RunUO, ServUOUltima Onlineserver emulators
EQEmuEverQuestserver emulator
newservPhantasy Star Onlineserver emulator
City of Heroes: HomecomingCity of Heroesa community server, licensed by NCSoft in 2024

These rebuilt the server from observing the client and its traffic, because the client was available and the server was not. Their rules (combat formulas, loot tables) are often approximations rebuilt from what players observed.

The rule set ​

What must be exact. The protocol: message formats, encryption or obfuscation, ordering and timing, so the original client accepts the server. Server rules can only be as exact as the evidence: captured traffic, client-side formulas, players' documentation. Mark them inferred.

Where the rules live. The rules are split. The client has the interface, rendering, prediction and some formulas (to show numbers before the server answers). The server has the authority. Data files on the client often include tables the server also uses.

Inputs. For the client: the player's input and the server's messages. For a server: the clients' messages. Record traffic only from your own sessions, on servers you are allowed to use.

Interface. As large as an RPG's, plus chat, groups, trading, mail and auction houses.

Time and determinism. Server ticks; the client interpolates and predicts. A port is exact when it follows the protocol and gives the server's answers.

How to verify. Against captured traffic from your own sessions (while the official service exists and allows it), and against the client: does it accept every message, and show the same thing?

Pitfalls.

  • Testing against a live service without permission breaks its terms. It can lead to bans or legal action.
  • Anti-cheat and protection in the client: bypassing it may be illegal. It is not needed to study a game you run offline.
  • Traffic that contains other players' data: keep it private. Do not publish it.

Connections ​

  • RPGs: character rules, items, quests.
  • Strategy: lockstep compared with client-server.
  • First-person: client prediction and server authority in shooters.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.