one dataset · paper, tables, graph, wiki
simgrammar the grammar of simulation

definition

The player authors programs in a textual or visual language that the game interprets each tick to drive entities. State owned: program source, interpreter state (instruction pointer, registers, memory), and an execution budget. Update rule: each tick, run each program for up to a budget of instructions or CPU time, read sensors through an API, and issue commands that the simulation resolves. Languages range from real ones (JavaScript in Screeps and Bitburner, Python-like code in The Farmer Was Replaced) to assembly-like puzzle languages (TIS-100, Shenzhen I/O, Exapunks) and visual instruction tracks (SpaceChem waldos, Opus Magnum arms). Screeps is canonical for a persistent world: each player's main module runs once per tick against a fixed state, commands are applied together at tick end, and a CPU limit with a carryover bucket constrains computation.

player experience

The player designs behavior rather than performing it. Writing, running, and debugging a program that then works unattended is satisfying in a way direct control is not, and failures are logic errors the player can find and fix.

design levers

  • language: real general-purpose, constrained assembly, or visual
  • execution budget per tick (instructions or CPU milliseconds)
  • sensor and actuator API surface
  • debugging tools: stepping, logs, breakpoints, visualization
  • persistence: programs keep running while the player is offline
  • scoring of programs by size, speed, or cost

failure modes

  • A steep entry cost excludes players who cannot already program.
  • A real language with a rich API lets players import libraries and copied code, so the community's code replaces the puzzle.
  • Execution budgets set too tight make debugging feel like fighting the platform.
  • Weak debugging tools turn failures into opaque guessing.

dynamics

  • Automation through code lets players operate at scales no one could control by hand.
  • In shared worlds, players' programs compete directly, producing an arms race of strategies and exploits.
  • Code sharing builds communities around libraries and frameworks.

open questions

  • When code assistants can write competent bots from a description, what remains of the programming puzzle, and does play shift to specification and review?
  • Can games teach programming effectively by letting AI assistants scaffold and then withdraw?

appears in

the paper, 3 sections · 1 chapter
paper

4. A grammar of simulation games

linked in this section of the paper

paper
paper

5. The structure of the design space

linked in this section of the paper

paper
paper

8. Where the techniques land

linked in this section of the paper

paper
glossary

Glossary of mechanics

listed under control & automation, with its summary

book
ch 8

Chapter 8. Where AI lands

linked from the text

book

relations

1 stored edges
synergy

Signal circuits

Both express automation as logic; games that offer both span visual and textual programming.

claims

2 with sources
c01high

In Screeps each player's main module runs once per tick against a fixed game state, and queued commands are applied together at the end of the tick.

src-screeps-2026-docs-game-loop

c02high

Screeps limits CPU per tick (20 without CPU Unlock), with unused CPU accumulating into a bucket of up to 10,000 that allows bursts up to 500 per tick.

src-screeps-2026-docs-cpu-limit

sources

2
(2026). Understanding game loop, time and ticks. Screeps documentation
(2026). How does CPU limit work. Screeps documentation

provenance

runs in log/runs
2026-10-24
created2026-10-24-taxonomy-m6taxonomy