Skip to content

ENG2: GoudEngine v2 Rebuild — Master Tracking #810

Description

@aram-devdocs

ENG2: GoudEngine v2 Rebuild — Master Tracking

This program rebuilds the performance-critical cores of GoudEngine so the engine can run tens of thousands of visible entities at 120+ FPS on Apple M-series and 100k+ simulation entities, with per-frame cost O(visible), not O(total). It replaces the stale ALPHA_ROADMAP and the zombie alpha-v2 milestone, and is grounded in a 12-subsystem, file:line-verified code audit.

Prime directive / definition of done for perf: an issue closes only when the named scripted scene (S1–S5, see docs/src/runbook/perf-dod.md) hits its numeric target AND a phase counter attributes the cost. A counter that reads zero means broken instrumentation, never "free".

Binding decisions: refactor cores with no legacy code kept (breaking the API is allowed; Throne adopts afterward); keep full 10-SDK parity (made cheap + CI-gated, not pruned); keep all platform targets (made CI-real).

Runbook: docs/src/runbook/phase-index.md (committed with the roadmap). 109 issues total: 102 engine across 10 phases + 7 Throne adoption issues.

Execution model

  • Phases sequential (gate must pass first) — except Phase 1‖Phase 2 run concurrently, and Phases 5‖6‖7 run concurrently (file-disjoint).
  • Batches within a phase sequential; groups within a batch parallel (one /gh-issue <n> --worktree per group).
  • Every breaking-change issue names its Throne adoption follow-up before it closes.
  • Issues are disposable: if one drifts from its phase doc, close it and regenerate from the runbook.

Concurrency map

P0  →  (P1 ‖ P2)  →  P3  →  P4 [SYNC A]  →  (P5 ‖ P6 ‖ P7) [SYNC B]  →  P8 [SYNC C]  →  P9

Phase 0: Instrumentation, Truth & Test Foundation

Milestone eng2-p0-truth · GPU timestamps + real phase counters, bench-gate in CI, scene harness S1-S5, story gallery, alloc budgets, E2E/spec/determinism/fuzz fixtures, Docker CI, RFC-0005, OpenGL-removal ADR, docs+issue hygiene.

ENG2 ID Issue Status
ENG2-P0-01 (ENG2-P0-01?)
ENG2-P0-02 (ENG2-P0-02?)
ENG2-P0-03 (ENG2-P0-03?)
ENG2-P0-04 (ENG2-P0-04?)
ENG2-P0-05 (ENG2-P0-05?)
ENG2-P0-06 (ENG2-P0-06?)
ENG2-P0-07 (ENG2-P0-07?)
ENG2-P0-08 (ENG2-P0-08?)
ENG2-P0-09 (ENG2-P0-09?)
ENG2-P0-10 (ENG2-P0-10?)
ENG2-P0-11 (ENG2-P0-11?)
ENG2-P0-12 (ENG2-P0-12?)
ENG2-P0-13 (ENG2-P0-13?)
ENG2-P0-14 (ENG2-P0-14?)
ENG2-P0-15 (ENG2-P0-15?)
ENG2-P0-16 (ENG2-P0-16?)
ENG2-P0-17 (ENG2-P0-17?)
ENG2-P0-18 (ENG2-P0-18?)
ENG2-P0-19 (ENG2-P0-19?)

Phase 1: SDK Single Source of Truth

Milestone eng2-p1-sdk-truth · Fix JNI dual-file bug, manifest->mapping single source, per-SDK parity CI gates, wasm under codegen, integration tier, decouple publish, real Rust SDK, deps health. CONCURRENT with Phase 2.

ENG2 ID Issue Status
ENG2-P1-01 (ENG2-P1-01?)
ENG2-P1-02 (ENG2-P1-02?)
ENG2-P1-03 (ENG2-P1-03?)
ENG2-P1-04 (ENG2-P1-04?)
ENG2-P1-05 (ENG2-P1-05?)
ENG2-P1-06 (ENG2-P1-06?)
ENG2-P1-07 (ENG2-P1-07?)
ENG2-P1-08 (ENG2-P1-08?)
ENG2-P1-09 (ENG2-P1-09?)
ENG2-P1-10 (ENG2-P1-10?)

Phase 2: Render Core v2

Milestone eng2-p2-render-core · Dense scene storage + spatial index (O(visible)), SoA transform store, uniform v2, auto-instancing incl. primitives, persistent shadow target. Closes #677/#678/#679. Highest-impact phase. CONCURRENT with Phase 1.

ENG2 ID Issue Status
ENG2-P2-01 (ENG2-P2-01?)
ENG2-P2-02 (ENG2-P2-02?)
ENG2-P2-03 (ENG2-P2-03?)
ENG2-P2-04 (ENG2-P2-04?)
ENG2-P2-05 (ENG2-P2-05?)
ENG2-P2-06 (ENG2-P2-06?)
ENG2-P2-07 (ENG2-P2-07?)
ENG2-P2-08 (ENG2-P2-08?)
ENG2-P2-09 (ENG2-P2-09?)
ENG2-P2-10 (ENG2-P2-10?)
ENG2-P2-11 (ENG2-P2-11?)
ENG2-P2-12 (ENG2-P2-12?)
ENG2-P2-13 (ENG2-P2-13?)
ENG2-P2-14 (ENG2-P2-14?)

Phase 3: Data Core v2 (ECS + store unification)

Milestone eng2-p3-data-core · One World-owned contiguous component store, single-lock ops, fix pointer-escape soundness, dirty transforms, physics out of ecs/, fuzz+leak canary. Needs Phase 1 gate.

ENG2 ID Issue Status
ENG2-P3-01 (ENG2-P3-01?)
ENG2-P3-02 (ENG2-P3-02?)
ENG2-P3-03 (ENG2-P3-03?)
ENG2-P3-04 (ENG2-P3-04?)
ENG2-P3-05 (ENG2-P3-05?)
ENG2-P3-06 (ENG2-P3-06?)
ENG2-P3-07 (ENG2-P3-07?)
ENG2-P3-08 (ENG2-P3-08?)
ENG2-P3-09 (ENG2-P3-09?)

Phase 4: FFI v2 Convergence

Milestone eng2-p4-ffi-v2 · Command-buffer FFI (O(1) crossings), versioned fn-table, bulk transform upload, batch-first surface, propagate to all 10 SDKs. Needs P2+P3 gates. >> SYNC A: Throne adoption.

ENG2 ID Issue Status
ENG2-P4-01 (ENG2-P4-01?)
ENG2-P4-02 (ENG2-P4-02?)
ENG2-P4-03 (ENG2-P4-03?)
ENG2-P4-04 (ENG2-P4-04?)
ENG2-P4-05 (ENG2-P4-05?)
ENG2-P4-06 (ENG2-P4-06?)
ENG2-P4-07 (ENG2-P4-07?)
ENG2-P4-08 (ENG2-P4-08?)

Phase 5: Parallelism & Determinism

Milestone eng2-p5-parallel · World Send, wire ParallelSystemStage, job system, determinism + world-hash hook, frame-arena allocator, frame pacing, 1M headless. CONCURRENT with 6,7. >> SYNC B.

ENG2 ID Issue Status
ENG2-P5-01 (ENG2-P5-01?)
ENG2-P5-02 (ENG2-P5-02?)
ENG2-P5-03 (ENG2-P5-03?)
ENG2-P5-04 (ENG2-P5-04?)
ENG2-P5-05 (ENG2-P5-05?)
ENG2-P5-06 (ENG2-P5-06?)
ENG2-P5-07 (ENG2-P5-07?)

Phase 6: 2D Render v2

Milestone eng2-p6-render-2d · One instanced sprite core replacing four renderers, first-class 2D camera + engine culling, chunked tilemap, auto-atlas, text run cache. CONCURRENT with 5,7.

ENG2 ID Issue Status
ENG2-P6-01 (ENG2-P6-01?)
ENG2-P6-02 (ENG2-P6-02?)
ENG2-P6-03 (ENG2-P6-03?)
ENG2-P6-04 (ENG2-P6-04?)
ENG2-P6-05 (ENG2-P6-05?)
ENG2-P6-06 (ENG2-P6-06?)
ENG2-P6-07 (ENG2-P6-07?)
ENG2-P6-08 (ENG2-P6-08?)

Phase 7: Runtime Services

Milestone eng2-p7-services · Wire async assets, mipmaps, one audio stack, rapier2d-only, retained UI, multi-window. CONCURRENT with 5,6.

ENG2 ID Issue Status
ENG2-P7-01 (ENG2-P7-01?)
ENG2-P7-02 (ENG2-P7-02?)
ENG2-P7-03 (ENG2-P7-03?)
ENG2-P7-04 (ENG2-P7-04?)
ENG2-P7-05 (ENG2-P7-05?)
ENG2-P7-06 (ENG2-P7-06?)

Phase 8: Capability Gaps

Milestone eng2-p8-capabilities · Navigation (A*/flow/navmesh), particles FFI + 2D, save/load snapshot, RNG+noise, event bus, isometric, blend trees+IK, cgmath migration, terrain + streaming. Needs 5+6+7. >> SYNC C.

ENG2 ID Issue Status
ENG2-P8-01 (ENG2-P8-01?)
ENG2-P8-02 (ENG2-P8-02?)
ENG2-P8-03 (ENG2-P8-03?)
ENG2-P8-04 (ENG2-P8-04?)
ENG2-P8-05 (ENG2-P8-05?)
ENG2-P8-06 (ENG2-P8-06?)
ENG2-P8-07 (ENG2-P8-07?)
ENG2-P8-08 (ENG2-P8-08?)
ENG2-P8-09 (ENG2-P8-09?)
ENG2-P8-10 (ENG2-P8-10?)
ENG2-P8-11 (ENG2-P8-11?)

Phase 9: Authoring, Platforms, Examples & Polish

Milestone eng2-p9-authoring · Scene inspector over MCP relay, Android/iOS CI real, console experimental-gated, networking honesty, compiled examples, self-hosted perf runner, agents/skills v2, migration guide.

ENG2 ID Issue Status
ENG2-P9-01 (ENG2-P9-01?)
ENG2-P9-02 (ENG2-P9-02?)
ENG2-P9-03 (ENG2-P9-03?)
ENG2-P9-04 (ENG2-P9-04?)
ENG2-P9-05 (ENG2-P9-05?)
ENG2-P9-06 (ENG2-P9-06?)
ENG2-P9-07 (ENG2-P9-07?)
ENG2-P9-08 (ENG2-P9-08?)
ENG2-P9-09 (ENG2-P9-09?)
ENG2-P9-10 (ENG2-P9-10?)

Throne adoption (aram-devdocs/throne_ge · milestone goudengine-v2-adoption)

ID Issue Sync point
THR-S0-01 aram-devdocs/throne_ge#1062 after P0
THR-A-01 aram-devdocs/throne_ge#1063 Sync A (P4)
THR-A-02 aram-devdocs/throne_ge#1064 Sync A
THR-A-03 aram-devdocs/throne_ge#1065 Sync A
THR-A-04 aram-devdocs/throne_ge#1066 Sync A
THR-B-01 aram-devdocs/throne_ge#1067 Sync B (P5)
THR-C-01 aram-devdocs/throne_ge#1068 Sync C (P8)

Phase gates (summary — full checklists in each docs/src/runbook/phases/phase-N.md)


This roadmap supersedes #475 (ALPHA-002) and #114 (ALPHA-001). Generated from a full-engine audit; see docs/src/runbook/.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions