Skip to content

feat(tooling): copy example games from the examples repository and keep only test games - #295

Merged
Exeloo merged 10 commits into
mainfrom
feat/examples-games
Nov 14, 2026
Merged

Exeloo merged 10 commits into
mainfrom
feat/examples-games

Conversation

@Exeloo

@Exeloo Exeloo commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

What does this PR do?

Closes #289
Refs #291 (breakout now gets CLI 3.0.1 from the engine's e2e game, but NANOFORGE_CLI is still not linked into it)

Example games now live in the examples repository (NanoForge-dev/examples feat/centralize-games). Only test games stay here, and the editor no longer reads the engine's removed example/ folder.

  • examples/breakout → plugins/scene/test/fixtures/breakout (frozen: the scene goldens and scene.spec.ts pin its text). examples/ keeps only counter-plugin.
  • packages/server-core/test/fixtures/game: the engine's pong-network at 3.0.0, frozen, as the e2e game. The e2e prep and setup-check take node_modules from <engine>/e2e/game; the engine pin moves to ed8c7e0 (engine 3.0.0). Fixtures on engine ^3.0.0 and CLI/config ^3.0.1.
  • pnpm examples (scripts/examples.mjs): copies chosen games from a local examples checkout (--from, NANOFORGE_EXAMPLES, ../examples, or asked for; @inquirer/prompts checkbox, or --games/--all) into the gitignored .examples/, installs each copy, optionally links a local engine (--engine). pnpm example <name> opens a copy in the built editor (port 4800).
  • apps/editor/test/examples/editor-native.spec.ts: runs the ECS and scene analyzers over every copied game and fails on what the editor can't model; skipped when .examples/ is empty.
  • Docs: README, AGENTS.md, examples/README.md, docs/docs/editor/scenes.mdx (links games/breakout).

How do you test this PR?

pnpm examples --from ../examples --games input-keyboard,breakout,raid-survival
pnpm example breakout

Run on HEAD: pnpm build 17/17, pnpm lint 29/29, pnpm typecheck 41/41, CHROME=… pnpm test (editor-native spec 4/4 on breakout, input-keyboard, network, raid-survival; it fails on a seeded file with no item), full e2e "109 passed" with E2E_REQUIRE_ENGINE=1, runtime/scene/tutorial/console 13 passed on pin ed8c7e0. pnpm install --frozen-lockfile passes. Examples checkout git status unchanged after copying.

Merge danger

Two-way door: tooling, fixtures and docs; no published package or API change. apps/editor deploys on merge (ADR 0006) but no runtime code changed. Merge after NanoForge-dev/examples feat/centralize-games (the docs and pnpm examples expect its layout), together with NanoForge-dev/Engine feat/examples-games.

Follow-up issues

Quality gate

Check Result Notes
Docs Updated 1829e18 plus the producer's docs commits
Correctness Pass fix 0610656 (checklist starts unticked, no cache for test:coverage, release-age exclusions restored)
Performance N/A (tooling, tests and docs only)
Accessibility Pass Minor only (link text, path prompt error)
Security Pass Minor only (symlinks, .data name)
Style Pass lint: pass; questions on the spec's plugin src imports and the new @inquirer/prompts dependency

@Exeloo
Exeloo requested a review from Tchips46 as a code owner November 13, 2026 21:16
@github-actions github-actions Bot added documentation Improvements or additions to documentation apps:editor Related to Editor app packages:server-core Related to Server core package plugins:scene Related to Scene plugin labels Nov 13, 2026
@Exeloo
Exeloo merged commit 672ae7a into main Nov 14, 2026
14 checks passed
@Exeloo
Exeloo deleted the feat/examples-games branch November 14, 2026 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

apps:editor Related to Editor app documentation Improvements or additions to documentation packages:server-core Related to Server core package plugins:scene Related to Scene plugin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move the server-core pong-network fixture to the v3 cli

1 participant