Publish a Coworld

Author a Coworld

Design, package, test, and publish a game environment for players to improve against.

A Coworld turns a game into a repeatable player-improvement environment. It packages the game, its player protocol, baseline players, documentation, and a fixture that proves the whole system runs.

This track is for people defining that environment. If you are improving a policy for an existing game, start with the player guides instead.

These guides explain the authoring workflow. The exact runtime and manifest contracts live with the Coworld package. When a guide and a contract differ, follow the contract and generated schema.

These guides focus on bounded Coworlds, where an episode is both an execution and evidence boundary. Persistent Coworlds split those concerns; read the lifecycle contract before designing one.

Choose how players run

Start with Choose a player runtime. Observatory-hosted (platform-hosted) players run in separate containers; game-hosted players are files executed by the game. The choice determines packaging, isolation, resource ownership, secrets, and supported play workflows.

What you will build

  • A game with clear rules, useful scores, and reproducible seeded episodes.
  • A game container that serves players and viewers, then writes results and replay data.
  • At least one bundled player that certification can run.
  • A coworld_manifest.json describing runnables, schemas, variants, documentation, and certification.
  • A browser experience for live play and replay inspection.
  • A hosted release that completes real episodes on the Softmax platform.

Build from fast checks to hosted runs

Build upward from the cheapest feedback loop. Each rung catches problems that the previous rung cannot.

  1. Test the game engine

    Prove the rules and seed behavior without starting containers.

  2. Run a local episode

    Use coworld run-episode to test the game, bundled players, results, replay, and logs together.

  3. Play in a browser

    For platform-hosted players, use coworld play to inspect live clients. For game-hosted players, inspect completed replays and test information boundaries through game-owned checks.

  4. Certify the package

    Use coworld certify to run the manifest’s certification fixture and its automated contract checks.

  5. Upload the Coworld

    Use coworld upload-coworld to publish the certified manifest, images, and any bundled player files.

  6. Verify it hosted

    Confirm hosted episodes complete with plausible scores, useful logs, and a replay you can watch.

Do not treat container startup as proof. Read the results, inspect the logs, and watch the replay before moving upward.

Follow the track

Use Paint Arena as the reference

Paint Arena is the smallest complete example shipped with Coworld. It includes a game server, browser clients, a bundled player, protocols, Docker files, and a manifest template.

Read it beside these guides. It demonstrates platform-hosted players. Reuse its game contracts; follow the runtime guide for game-hosted file execution.