Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ENG2 Phase Index

The GoudEngine v2 rebuild is 10 phases + a continuous lane. Full per-issue specs (with file:line evidence) are in phase-specs.md; the perf-hardening + testing/infra delta is in phase-specs-expansion.md. Live issue numbers are tracked in the pinned master issue (ENG2 master #810).

PhaseMilestoneFocusDepends onRunbook
0eng2-p0-truthInstrumentation, Truth & Test Foundationphase-0
1eng2-p1-sdk-truthSDK Single Source of TruthP0 gatephase-1
2eng2-p2-render-coreRender Core v2 (O(visible))P0 gate · ‖P1phase-2
3eng2-p3-data-coreData Core v2 (ECS + store)P1 gatephase-3
4eng2-p4-ffi-v2FFI v2 ConvergenceP2 + P3 gatesphase-4
5eng2-p5-parallelParallelism & DeterminismP4 gatephase-5
6eng2-p6-render-2d2D Render v2P4 gate · ‖P5,P7phase-6
7eng2-p7-servicesRuntime ServicesP4 gate · ‖P5,P6phase-7
8eng2-p8-capabilitiesCapability GapsP5+P6+P7 gatesphase-8
9eng2-p9-authoringAuthoring, Platforms, ExamplesP8 gatephase-9
eng2-continuousDependency health (no gate)ongoing

Concurrency

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

Within a phase: batches are sequential; groups within a batch run in parallel (/gh-issue <n> --worktree, one per group). All groups in a batch merge before the next batch.

Gate summaries (super-high-FPS ambition — full checklists in each phase doc and perf-dod.md)

  • P0 — GPU + CPU phase counters non-zero; bench-gate.py required in CI; scene harness S1–S5; story gallery; alloc-budget gate; E2E/spec/determinism/fuzz fixtures; Docker CI parity; RFC-0005 + OpenGL-removal ADR merged.
  • P1 — clean-room codegen green; compiled JNI symbols == manifest (167-method drift closed); per-SDK parity gate for all 10 SDKs; wasm coverage gated; C#/TS/Python integration tier in CI.
  • P2 — S1 BeginFrame+EndFrame ≤2 ms & ≥120 FPS; S2 (100k objects / 30k visible / shadows ON) ≥120 FPS avg, p99 ≤12 ms; 40k CreatePlane tiles ≤64 draws; cull_scaling ≤10%; #677/#678/#679 closed with captures.
  • P3 — zero global component statics; single lock per component op (bench-asserted); 100k-entity dirty propagation ≤0.5 ms; flat-RSS churn soak; pointer-escape fixed + fuzz green.
  • P4 — S3 per-frame op stream ≤2 FFI crossings, ≤1 ms engine-side, 0 steady-state allocs; fn-table entry point live; all 10 SDKs regenerate green. → Sync A (Throne).
  • P5 — H1: 100k tick ≤3 ms, 1M ≤16 ms avg/25 ms max; 3-seed determinism CI; parallel speedup ≥2.5×; frame limiter holds 60±1 FPS. → Sync B.
  • P6 — S4: 100k sprites / 30k visible ≥120 FPS, ≤16 draws, CPU submit ≤1 ms; exactly one sprite renderer remains.
  • P7 — async loads no frame >20 ms; mip chains + trilinear; one audio stack, one 2D physics; UI 1k-widget single-change relayout ≤0.3 ms; two windows.
  • P8 — nav 10k agents repath ≤5 ms; every capability ships FFI + 10-SDK parity + integration test + docs page; save/load round-trips to identical world hash; cgmath gone. → Sync C.
  • P9 — inspector edits + saves scene JSON; Android/iOS CI required; console typecheck lane; ≥2 example games build in CI; migration guide + agents/skills v2.

Named perf scenes

Defined once (ENG2-P0-07), referenced by every perf gate — see perf-dod.md: S1 throne-baseline, S2 throne-target (the prime-directive scene), S3 ffi-churn, S4 sprite-storm, S5 stress (500k objects), H1 headless-scale.