Infinite Pokémon technical report: agent-driven generative gameplay

A source-grounded review of a self-hosted creature-collecting prototype where an AI harness proposes new content and an authoritative engine decides what can enter the saved world.

Download the 10-page PDF

Abstract and scope

Infinite Pokémon combines a deterministic TypeScript game engine with structured proposals from a host-connected AI harness. The engine controls movement, collision, combat, inventory, rewards, and persistence. The harness supplies bounded descriptions, narrative hooks, content profiles, NPC policies, and interior layouts. Accepted maps are compiled, validated, and stored. Checkpoints can branch into isolated futures.

The report is a provisional engineering document, not a peer-reviewed study. It describes one source baseline and does not claim unlimited novelty, proven long-term coherence, measured enjoyment, or real-time inference. The global website leaderboard was added after this report’s source baseline.

Core architecture

React manages menus, Phaser renders the world, Node owns canonical state, SQLite persists runs, and WebSockets carry commands and state. Generated output is data rather than executable code. The current browser demo runs the same bounded engine in a Web Worker with IndexedDB persistence.

A generation job receives a versioned snapshot with the target, nearby maps, selected player state, relevant events, and dependency hashes. Before publication, the server checks schema validity, snapshot identity, run and connection identity, unchanged dependencies, target state, and geometry.

Streaming and persistence

Map preparation uses Manhattan-distance depth from zero to three. The surrounding counts are 0, 4, 12, and 24 blocks. Jobs are prioritized by distance to active players, cached maps are reused, and concurrency can be set from one to eight. Waiting states report queued, generating, failed, paused, disconnected, and provider-limited work without inventing a percentage.

Runs are writable worlds; checkpoints are immutable SQLite snapshots. Branching verifies the checkpoint, copies it into a new run, rotates credentials, clears pending jobs, and builds future generation context only from that branch.

Findings and limitations

  • Bounded context can omit old facts; semantic retrieval and durable narrative summaries remain future work.
  • Schema and hash checks establish structure and freshness, not narrative truth, originality, or balance.
  • Template geometry supports controlled variation, not arbitrary landscapes or buildings.
  • SQLite and filesystem checkpoints are locally coupled and have not been load-tested for very large worlds.
  • Verification exercises software behavior; no participant study or demonstrated endless novelty is claimed.

Proposed evaluation

The report proposes controlled comparisons for context strategies, streaming depth and concurrency, NPC policies, generated interiors, and authored-only versus generated-content play. Operational correctness, generative quality, cost, and player experience should be measured separately.

The complete PDF includes related work, formulas, verification evidence, code-review findings, and references to PCGML, MarioGPT, Generative Agents, Voyager, CALYPSO, and FIREBALL.