Skip to content

[FEATURE] Range program: make any game from 2D cartoon to photoreal FPS buildable on jgengine #1678

Description

@Noisemaker111

Parent for the 2026-09-01 range audit. Summary in docs/plans/sdk-remediation.md under "Range audit". Every sub-issue below is written as an ordered task list; each task is one PR.

Landed so far: #1692 (fixed-step ctx.sim, interpolation, replay snapshots), #1693 (PhysicsBackend seam, PhysicsWorld adapter, conformance suite, capsule controller), #1694 (animation graph), #1695 (model shadow flags, design skills installed by default).

Working order for the sub-issues (earlier ones create seams later ones reuse):

  1. [FEATURE] Process: install design skills by default, require an art-direction artifact, make the visual scorecard the completion bar, add a feel gate, run the game gates #1690 process gates (cheap, catches slop in every later PR)
  2. [FEATURE] Photoreal lighting seams: environment source, punctual lights, shadow flags on imported models, LUT grade, graphics profile #1680 lighting and looks
  3. [FEATURE] 2D presentation path: sprite clips, textured tile layers, pixel-perfect camera, 2D framing and collision #1679 2D path
  4. [FEATURE] Physics backend seam with capsule character controller and a Rapier adapter #1682 Rapier adapter and controller adoption
  5. [FEATURE] Animation graph, IK, root motion, and animation events #1683 animation follow-ups
  6. [FEATURE] AI seams: polygon navmesh, perception service, decision graph #1684 AI
  7. [FEATURE] Real-time netcode: tick-indexed input queue, interpolation buffer, prediction and reconciliation, delta wire, session resume, RTT #1685 netcode
  8. [FEATURE] Gamepad, action contexts, input feel helpers, local player slots and split-screen viewports #1686 input and local players
  9. [FEATURE] Audio: spatial graph, bus sends and ducking, reverb zones, sample banks, streamed layered music, audio as an asset kind #1687 audio
  10. [FEATURE] HUD skin depth, in-world SDF text, captions, and a real graphics settings surface #1688 HUD skin and settings
  11. [FEATURE] Bring-your-own assets: import spec for every asset kind, editor ingest, game-defined component schemas #1689 assets and components
  12. [FEATURE] First-person presentation: viewmodel layer, decals, textured particles, impact feedback #1681 first-person presentation

Rules every task follows (repeated on each sub-issue so a fresh session sees them):

  • Wait for bun run agent:bootstrap --check to report ready. Branch claude/<slug> off origin/main. Post "Working on this in " on the issue first.
  • One task per PR. Use .github/pull_request_template.md. Put Closes #N only on the PR that finishes the last task; earlier PRs say Refs #N.
  • After adding, renaming, or removing an export: bun run gen (every new export needs a JSDoc line or gen:skill-api fails; every new create* factory needs snapshot()/restore() or check-stateful-ratchet fails).
  • Add a bullet under ## [Unreleased] in CHANGELOG.md (Migrate / Changed / Added). Do not add a second ### Changed or ### Added heading; append to the existing one.
  • Before pushing: bun --cwd=packages/<pkg> run check-types and run test for every touched package, plus bun run check-stateful-ratchet, bun run check-doc-symbols, bun run check-orphan-ratchet. Then git fetch origin main && git merge origin/main; if CHANGELOG.md conflicts, keep both sides.
  • Rendered surface changed: bun run games:clone once, bun run shoot daemon start, then bun run shoot <game> --mode play --size half --out shots/<name>.png (games with imported models: the-robots, claudecraft, ironhold). Capture the before shot on origin/main code (stash your shell changes, shoot, git stash pop). Publish with bun run pr-shots --dir <branch> shots/*.png and paste the printed markdown into the PR. Stop with bun run shoot daemon stop.
  • Open the PR ready for review, enable squash auto-merge, end the turn. Fix CI failures on the same branch.
  • Never skip or disable a test, never edit Games/*, never add Kenney assets, no comments that restate code.

Acceptance for the parent: every sub-issue closed, and a 2D sprite game plus a first-person PBR game both pass jgengine-verify with no game-local renderer, physics, or audio code.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions