Skip to content

Internals

These pages are for contributors, and for anyone who wants to know what happens under a service call.

  • Login and requests


    The login handshake, how a reply finds its request, and the package layers, drawn.

  • Architecture


    The network, protocol, state and client layers and what each owns.

  • Protocol


    The SmartFox handshake and the %xt% message format, as the game client sends them.

  • State management


    Thread safety, passive updates, object identity and the movement lifecycle.

  • Client bundle notes


    Command ids, the commander/castellan/general split, the gli and cra keys, map object types, and how to read the client bundle yourself.

The game client is the source of truth

Every model and request is written against the game's own HTML5 client. A model's docstring ends with a Client: line naming the client class, and the line of the client bundle it was read from. Where the library is more lenient than the client, its docstring says so. The command ids the library uses are checked against a snapshot of the client's command tables, and a weekly workflow compares that snapshot with the live client.

Contributing explains how to add a command and the conventions every model follows.