Skip to content

Real PixiJS games, ingested unmodified

cli tutorial Advanced ⏱ 4 min vgai 0.1.0

Prerequisites: Ingest an unmodified three.js game

What you'll learn

  • Know which real OSS PixiJS games run unmodified, and how to open one in the editor
  • See the byte-for-byte "zero source diff" proof against each upstream commit

What you'll build: A terminal look at the vendored real PixiJS games, their unaltered-source verification, and how to run them live.

The ingest adapter runs real, third-party games unmodified — this is the 2D counterpart of the 3D marquee ingests. Three real OSS PixiJS games run in-realm through the world2d adapter — a live editor capability (Track P): each has a manifest in the editor’s discovery tree and opens with ?ingest=<id>, with hierarchy/inspector edits persisting to an overlay, never to the game’s source. The sources are vendored byte-for-byte from upstream and re-verified in CI (captured output below).

# transcript pending capture — run: node site/media/capture-cli.mjs
Terminal — Real PixiJS games, ingested unmodified · captured by site/media/capture-cli.mjs
  1. The vendored games. vendor/pixi-games/ holds real upstream PixiJS games: bubbo-bubbo (PixiJS v8), puzzling-potions (PixiJS v8 + Spine), and flappy-pixi (PixiJS v6, run via version-skew capture) — each loads and edits in-realm without touching its code. (The original feasibility recordings live in docs/pixi-game-adapters-proof/; the capability is now shipped in the editor itself.)

  2. Prove zero source diff. verify-unaltered.mjs reads each game’s .UPSTREAM.lock (repo, commit, license, and a sha256 manifest) and checks the tracked source byte-for-byte against that upstream commit. The run reports PASS — byte-for-byte identical to upstream (zero source diff) for each. The same check runs in CI on every PR — a one-byte edit to any vendored game turns the build red.

  3. Run one yourself. The externalized bundles are build products (gitignored), so build once, then open the editor with the game’s id:

    Terminal window
    bash vendor/pixi-games/_host/build-bubbo.sh
    npm run dev # then open http://localhost:5173/packages/editor/editor.html?ingest=bubbo-bubbo

    The game mounts through its manifest (packages/editor/src/ingest/games-2d/bubbo-bubbo/), the hierarchy shows its live display tree, and inspector edits persist to .vgai/overlays/bubbo-bubbo.json. Same recipe for puzzling-potions and flappy-pixi (build-puzzling-potions.sh / build-flappy-pixi.sh).

Recap

New functionality

  • Listed the vendored real PixiJS games
  • Ran the byte-for-byte unaltered-source verification
  • Built a bundle and opened a real game in the editor with ?ingest=<id>

New concepts & skills

  • real OSS PixiJS games run unmodified in the editor via the manifest iframe-reachable route
  • each is checked byte-for-byte against its upstream commit (sha256 manifest) — in CI, on every PR
  • edits persist to an overlay, never to the game source
  • the 2D counterpart of the 3D marquee ingests

Next lesson → Loading Existing Games