Skip to main content

What You Need

  1. challenge.json — metadata file describing the challenge. See Challenges for the schema.
  2. Operator implementation — a module exporting a createChallenge factory function that returns a ChallengeOperator.

Reference Implementation

The reference implementation provides BaseChallenge<TGameState>, an abstract base class that handles player joins, message routing, scoring, and game lifecycle. You provide the game-specific logic.

Quick Steps

  1. Create your challenge folder with challenge.json and index.ts
  2. Export a createChallenge(challengeId, options?, context?) factory
  3. Register it with the arena (in the reference implementation: add an entry to server/config.json)
See CONTRIBUTING.md for the development workflow.