docs / roadmap

Roadmap

This is an evidence-based summary of ROADMAP.md, which is the source of truth: every status there is backed by tests, smoke runs, or a released artifact — never by a stub. Documented ≠ implemented is a roadmap principle: planned features are listed here, never stubbed in code.

Last reviewed against ROADMAP.md: 2026-10-28

Shipped

All verified by the deterministic test suite, CI, or a released npm artifact:

MilestoneWhat landedStatus
MVP 0 – 1FFoundation: pnpm monorepo, strict TypeScript, renderer contract, PixiJS adapter, Game lifecycle + frame loop, SceneManager, DOM-free InputState, AssetManager, Transform2D/Sprite2D, GameObject layer, audio contract, scene-ownership hardening.done
R5 – Gamepad & touchMulti-touch contacts in core InputState via Pointer Events, DOM-free GamepadState with an injectable polling source (@g2w/input-gamepad). 41 deterministic tests.done
E3 – Adapter lifecycle hardeningFailure-safe init/attach rollback, concurrent and repeated lifecycle calls, terminal disposal, listener cleanup for all imperative adapters.done
E4 – Effect runtimeG2WGame: the game lifecycle orchestrated by a managed Effect runtime with LIFO finalizers and idempotent disposal. Core stays Effect-free; the frame hot path never allocates an Effect.done
R1 – Texture ownershipPixiRenderer.dispose() destroys stage display objects only — never textures. One framework-wide, non-destructive texture lifetime, pinned by hazard tests.done
R2 – Game objectsGameObject + GameObjectCollection in core: claimed, snapshot-iterated update/destroy registry driven by the existing loop. No ECS, no scene graph — deliberately minimal.done
R3 – Logical resolution & resizeExplicit logical width/height, runtime resize(), pointer mapping under CSS scaling. Fixed logical resolution with proportional display scaling.done
R4 – AudioAudioManager contract in core + @g2w/audio-web Web Audio backend with an explicit autoplay policy (suspended-context play() throws; resume() needs a user gesture).done
R11 – Anchors & z-orderingNormalized Anchor2D and zIndex on Sprite2D, applied through view.sync(); stable sort for equal z values.done
R6 – Renderer audit & backendsBackend preference + actual-backend reporting (R6-1), a shared renderer conformance suite (R6-2), and per-backend feature verification: 12/12 features on WebGL, Canvas, and WebGPU in a real browser (R6-3).done
DevTools MVP@g2w/devtools: a read-only runtime overlay (scenes, objects, transforms, FPS, watched input, logs). Dev-only, excluded from production builds.done
R7 – create-g2w CLIZero-dependency scaffold CLI with a TypeScript + Vite template, deterministic tests, and local git init only.done
R10 – npm publishingAll eight packages published to npm at 0.1.0 (2026-10-28) via OIDC trusted publishing, --provenance, and the protected npm-release environment. Tagged v0.1.0.done
EvidenceThe release claim is checkable right now: npm view @g2w/core version returns 0.1.0, and the v0.1.0 releaseexists on GitHub. Per-milestone test counts and smoke results are in the full roadmap.

In progress

WorkScopeStatus
R6 – Dependency & supply-chain maintenanceOngoing: weekly Dependabot updates, pnpm audit gates in release review, install-lifecycle-script review for every new dependency.in progress

Exploratory

Directions under consideration — they may change shape or be dropped. Neither has started; each lists the gate that must pass first.

DirectionShapeStatus
R8 – Three.js adapter for 3DA third renderer adapter proving the renderer contract generalizes beyond 2D. Gate: core contracts frozen for one release cycle without a breaking 2D change.exploratory
R9 – Integrations (React, Vue)Thin bindings embedding g2w in common stacks, one package each, public entry points only.exploratory

Candidate work — not yet committed

These areas have no committed milestone or priority. They are listed so their absence is explicit, not accidental:

Honest gapIf you need physics, cameras, tilemaps, or animation today, mature all-in-one frameworks already ship them built in. g2w's advantage is a strict, small core with explicit ownership — not breadth of built-in systems.

Risks and open questions

Proposing changes

Open an issue describing the proposed milestone with objective, scope, dependencies, and acceptance criteria. Roadmap changes are made by the maintainers after discussion — see CONTRIBUTING.md.

Next steps

Compare g2w with other frameworks in Framework Comparison, or read the full ROADMAP.mdwith per-milestone evidence.