v0 - Unaudited: This is an initial version that has not yet been formally audited. Use in production at your own risk.
Package game is the on-chain part of gnofly, a multiplayer plane game. It is the source of truth for everything an admin can tune: the game parameters, the roles and the treasury. It also keeps what the referee attests and what has lasting value: the kills, on the kill leaderboard. Skins and planes are tokens of their own realms, gnofly/nfts/skins and gnofly/nfts/planes, which ask this one who the admins are and where the treasury is.
Three kinds of callers write to it:
- the owner and the admins tune the game (SetParam, ...). Every such write bumps Version, which is how the game server knows it has to read StateJSON again;
- referees, the game servers, record kills (SubmitKills).
Challenge runs never reach the chain: the game server defines the challenges, scores the runs and keeps the session boards.
Reads are plain functions meant for vm/qeval. The ones ending in JSON return a single string holding a JSON document. Render exposes the same data as markdown for gnoweb.