Meaningful Play 2026

DarkWeb
GameJam

You design the game. An AI agent builds it with you. This hub has everything your team needs: the approach, the tools, the template, and the submission requirements.

How It Works

The Approach

The key insight: the AI doesn’t design your game — you do. Your job is to sharpen your semantic knowledge: the ability to describe exactly what you want in precise, unambiguous language. The better you describe it, the better the AI builds it.

01

Write CLAUDE.md — your AI agent’s rulebook

CLAUDE.md is the most important file in the project. It tells your AI agent the rules of your project: what files exist, what the architecture is, what it must never do, and how to behave every session. Without it, the AI has no context and makes generic choices. With it, the AI builds your game consistently across every session.

02

Write DESIGN.md before any code

Describe your game in full: the players, the core mechanic, the turn structure, the win conditions, and the visual design. The AI reads this before it writes a single line. If your design doc is vague, you get vague code. If it is specific, you get a real game. This is where your semantic knowledge does the most work.

03

Separate game logic from rendering

src/game/ contains pure Python — no pygame, no screen, no drawing. src/ui/ contains all rendering. This is the single most important architectural rule. It means your game logic is fully testable without a screen, and your rendering can change without touching your rules. The hockey card game (Drop of the Dot Dot) was built this way: 76 passing tests, zero pygame in the game layer.

04

Build one module at a time — test after every change

Never ask the AI to build the whole game at once. Pick one module, build it, run python -m pytest tests/, confirm the game still launches, then move on. Small increments catch mistakes early. The AI agent should append one line to log.md after every session so the next session starts in exactly the right place.

05

All constants live in config/game_config.json

No magic numbers in code. Every color, screen size, speed, score value, and game parameter lives in config/game_config.json and is loaded once at startup. This lets you retune the game’s feel — speed, balance, colors — by editing one JSON file. The AI never hardcodes a number; it always reads from config.

Semantic Knowledge

Describe, don’t implement

The AI writes code. You describe game behavior. Your skill is precision of language: “the player places a card face-down at one of five locations, then all locations resolve simultaneously” generates better code than “make a card game.”

Architecture

Game logic tests clean

Pure Python in src/game/ means you can run 50 automated tests in under a second. If a rule is wrong, you find it before you see it on screen. This is how Drop of the Dot Dot shipped with 76 passing tests.

Workflow

log.md is your memory

One line per session. What changed, what files were touched. The AI reads this at the start of every session and picks up exactly where it left off — no repeated work, no lost context.

Step 1

Install Your AI Agent

Every game must be designed and built with an AI coding agent. Pick one of the two supported options and have it installed before the jam starts.

Option A — Anthropic

Claude Code

Terminal-based AI coding agent. Works from your command line inside any project folder. Reads CLAUDE.md automatically at the start of every session. Best for teams comfortable with the terminal.

  1. 01 Install Node.js 18+ from nodejs.org
  2. 02 Run npm install -g @anthropic-ai/claude-code
  3. 03 Get an API key at console.anthropic.com
  4. 04 Open your project folder and run claude

Option B — GitHub

VS Code + Copilot

AI assistant built into VS Code. Inline suggestions and an Agent chat panel. Point Copilot Agent at CLAUDE.md and DESIGN.md at the start of each session to give it context.

  1. 01 Install VS Code from code.visualstudio.com
  2. 02 Create a GitHub account at github.com
  3. 03 Install the GitHub Copilot extension in VS Code
  4. 04 Sign in with GitHub — Copilot activates automatically

Also required for all teams

Python 3.10 or higher
pygame-ce (Community Edition)
pygbag (web build tool)
pytest (for automated tests)
Git & a GitHub account
The starter template (below)

Step 2

Get the Template

Download the starter zip. It contains the full directory structure, a filled-in CLAUDE.md, a DESIGN.md template with every required section, a working main.py entry point, a sample game state with tests, and a game_config.json with all common settings pre-wired. Unzip, fill in DESIGN.md, and start prompting your AI agent.

your-game/
  CLAUDE.md  -- AI agent rulebook (write this first)
  DESIGN.md  -- game design doc (write this second)
  README.md  -- play instructions
  requirements.txt  -- pip dependencies
  log.md  -- one line per session
  src/
    main.py  -- entry point (keep it small)
    game/  -- pure Python, zero pygame
      game_state.py
      rules.py
      entities.py
    ui/  -- all rendering here
      game_window.py
      components.py
    utils/
      constants.py  -- loads game_config.json
  config/
    game_config.json  -- all constants here
  assets/data/  -- cards, levels (JSON)
  assets/images/
  assets/sounds/
  tests/
    test_game_state.py

Python — pygame template

The file structure shown above. Build with Python 3.10+, pygame-ce, and pytest; ship to the web via pygbag or run on the desktop. The CLAUDE.md already has the architecture rules, session protocol, and workflow your AI agent needs, and the tests pass before you write a single line of game code. Choose this if you prefer Python.

Download Python / pygame ZIP

JavaScript template

The same architecture — separated game logic and rendering, all constants in one config file, tests that pass out of the box — in plain ES modules and an HTML5 <canvas>. No build step and nothing to install just to play; tests run on node --test, and a bundled tool packages your game into an upload-ready zip. Choose this for the shortest path from code to a page anyone can open.

Download JavaScript ZIP

The two files that matter most

CLAUDE.md gives the AI agent its rules. Without it, the AI guesses. With it, the AI follows your architecture consistently across every session — same folder structure, same style, same constraints.

DESIGN.md gives the AI agent its goal. Your game design doc is where your semantic knowledge lives. Describe the mechanic, the turn structure, the win condition, and the feel. The more precise you are, the more precisely the AI builds it.

Step 3

Submission Requirements

Every submitted game must meet these requirements. Use the template, document your design decisions, and ship before the deadline.

The Game

What you ship

  • Must be playable — not a prototype or tech demo
  • Must run in a modern web browser (via pygbag)
  • Built on the starter template directory structure
  • Team size: 1–4 people

The AI Agent

How you build it

  • Must use Claude Code or VS Code Copilot as your primary agent
  • You design, direct, and decide — the AI implements
  • No pre-built game engines (pygame-ce is fine; Unity and Godot are not)
  • Game logic must be in src/game/ with zero pygame imports

Documentation

What you write

  • Completed DESIGN.md with all sections filled in before coding starts
  • CLAUDE.md tuned to your game (not just the template default)
  • README.md with play instructions and controls
  • A brief postmortem: what did the AI get right? What did you have to correct?

Submission

How you submit

  • GitHub repository (public or shared with Dr. Jamieson)
  • Game must be live at a public URL at submission time
  • Automated tests must pass: python -m pytest tests/
  • Deadline set by the Meaningful Play 2026 conference schedule