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/.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions