Bootleg Arcade Architecture
v1.10 | updated September 7, 2026
The model composes a game configuration (a spec) from the catalog of authored mechanics. Routing chooses a supported recipe when applicable; fixed code runs the result. The tabs show generation, checks, replay, and runtime. Expand the reference sections for recipes, fixtures, catalog options, and verification details.
Ordered systems
Every substep dispatches this fixed sequence. Feature-specific systems do nothing when their state is absent; they are not dynamically attached plugins.
- 01spawnGuard
- 02waveScheduler
- 03scrollAuto
- 04straggler
- 05playerMovement
- 06playerFire
- 07ball
- 08spawner
- 09prize
- 10generator
- 11enemyMovement
- 12hordeBreach
- 13capsule
- 14enemyFire
- 15boss
- 16barrier
- 17enemyCollision
- 18satellite
- 19secondaryWeapon
- 20bossCollision
- 21generatorCollision
- 22hazard
- 23playerDamage
- 24bombRelief
- 25gemMagnet
- 26pickup
- 27cache
- 28shrine
- 29pellet
- 30fruit
- 31snake
- 32healthDrain
- 33combo
- 34level
- 35winLose
- 36banner
Recipe families
A recipe is a supported game shape; a spec is one game's JSON configuration. A fixture is a pinned reference spec for testing, not another recipe or genre. Several recipes can share a schema or routing label. These families group supported recipes, not every possible variant.
- Shooters
- Shmups, vertical scrollers, twin-stick arenas and boss finales.
- Paddle games
- Breakout, capsule power-ups and invader or horde sieges.
- Mazes and dungeons
- Pellet hunts, armed mazes, dungeon crawls and sieges.
- Survivors
- Timed hordes, endless arenas and upgrade-driven survivor loops.
- Platform arenas
- Bump-and-kick, trap bubbles, Joust and rising-lava arenas.
- Runners and launchers
- Rooftop runs, flapping, jetpacks, gunboot descents, tower climbs and cannon rides.
- Snake
- Length targets, timed bonuses and solid or wrapping edges.
Catalog reference
These lists come from the code's catalog and registries. Individual recipes constrain which options can be combined; listing a value here does not make every combination supported.
Component types
- ArcadeArena
- ArcadePlayer
- EnemyWave
- Collectible
- Barrier
- Hazard
- PowerUp
- Boss
- Paddle
- Ball
- BrickField
- Spawner
- Snake
- Dungeon
- Maze
- Platforms
- Runner
Ingredient genres
- snake
- crawler
- maze
- platformer
- breakout
- survival
- shmup
Objective registry
- survive-time
- clear-waves
- defeat-boss
- clear-field
- clear-generators
- reach-exit
- eat-pellets
Player control
- free2d
- horizontal
- grid
Fire modes
- manual-dir
- auto-aim
- twin-stick
- directional
- none
Primary weapons
- single
- double
- spread
- laser
EnemyWave movement
- descend
- sine
- chase
- zigzag
- dive
- formation-flying
Spawner movement
- descend
- sine
- chase
- zigzag
- dive
- formation-flying
- walker
- flyer
Fire patterns
- straight
- aimed
- spread
- lob
- ring
- spiral
Formations
- grid
- vee
- line
- arc
Power-ups
- rapidfire
- spread
- shield
- slowmo
- nuke
- weapon
- orbit
Hazards
- zone
- laser
Spawner edges
- top
- all
- doors
Animated backdrop
- none
- stars
- grid
Spatial frame
- single-screen
- scroll-follow
- scroll-auto
Survivor auto-weapons
- aura
- nova
- wand
- whip
- spiral
- cross
- flak
- orbit
Survivor passives
- spinach
- duplicator
- tome
- candelabra
- spellbinder
Flavor packs
- vampire
- cyber
- dungeon
- cosmic
Cabinet color schemes
- bootleg
- gruvbox
- catppuccin
- dracula
- vercel
- onedark
- gameshow
- haunted
- wizard
Weapon evolution requires both a max-level weapon and its matching passive at the required level.
Verification
- Every fixture has a regression check. Most pin a terminal outcome, score and time; others assert survival and score progress at the test cap.
- Seeded simulation is reproducible under a fixed input and tick schedule. Browser frame timing and upgrade choices can vary, so a seed link replays the configuration, not the original player's run.
- Accepted specs receive a best-effort autopilot test run for attract-reel selection. Rejected specs and specs whose pilot run cannot be scored can still be stored without pilot results. Acceptance, request fidelity, and pilot outcomes are different measures; none guarantees every game is playable.
- Contract tests check mechanics. Browser and human playtests check the rendering, controls, pacing and feel that a headless run cannot establish.