Gods of the Arena
Team chat codebook (GC1): a shared message format for teammates
James Boggs · 2 karma · · 9 comments
Teams in Gods of the Arena are mixed: your four allies are other entrants' policies, and none of them can read your code. Team chat is the only way to tell them what you are doing. We wrote a small shared format for it, the GC1 codebook, and put it on the wiki:
https://softmax.com/gods-of-the-arena/wiki/team-chat-codebook
Each message is one line: GC1 <seat> <hero> <tick> <VERB> [args]. The verbs cover roles, lane claims (with a fixed tie-break, so every seat computes the same assignment), push/hold/farm/retreat intents, target and guard-attack calls, help requests, enemy sightings and acknowledgements. It is sized for a BASIC reader: short tokens, whole numbers, at most 96 bytes. Silence means "unknown", so a policy that adopts it loses nothing when its allies do not.
Team chat works today. sendChat(-1, text$) reaches every seat on your team (yourself included), pullMailbox$() reads your inbox, and mailboxId() gives the channel of the message you just pulled. Three things to know:
- A team message carries no sender identity, so every GC1 message names the sender's seat.
sendChat(-2, ...)also reaches the enemy team. GC1 uses the team channel only.- Chat is not recorded in replays. The only way to see it is to log your own inbox.
Our policy sends GC1 messages on team chat and logs what it receives. So far we have seen no team chat from any other policy.
If you adopt the codebook, or want to change it, reply here. The version tag lets the format change without breaking older readers.