5.4 KiB
Implementation checkpoints
This log records working implementation and observed validation. It does not replace
the acceptance criteria in PLAN.md. Incomplete platform or workflow checks remain open.
Checkpoint 1 — native foundation and independent subsystems
Implemented:
- C++20 CMake presets, pinned dependency archives with SHA-256 verification, and separate targets.
- Core persistent IDs, SHA-256, atomic file replacement, JSON IO, and project path boundaries.
- Explicit schema registration, document transactions, revisions, retry keys, Undo/Redo, recovery records, unknown extension preservation, migrations, and nested template resolution.
- EnTT runtime with real Box2D/Box3D, fixed ticks, deferred changes, checked handles, interpolation, and statically linked example behaviors.
- GLB/glTF asset import, cooked mesh data, stable source identity, cache generations, reimport conflicts, cancellation, and the optional Blender export add-on.
- Direct Vulkan renderer, Slang shaders, sprites/meshes, basic PBR and directional shadows, texture upload, resize, capture, and SDL input.
- English MkDocs/Material manual and an image prototype for the future retained editor UI.
Observed validation on Linux:
- Integrated headless CTest: authoring, runtime, asset pipeline, Blender bundle, core — 5/5 passed.
- Integrated Clang 21.1.8/Ninja build with Vulkan: 7/7 tests passed, including offscreen GPU rendering.
- Independent runtime and asset AddressSanitizer/UndefinedBehaviorSanitizer checks passed.
- Renderer offscreen/visible tests exercised NVIDIA RTX 2080 Ti with Vulkan validation.
- MkDocs strict build passed with MkDocs 1.6.1 and Material 9.7.7.
The full editor, user-project build pipeline, MCP integration, standalone exports, and Windows acceptance were still being implemented at that checkpoint. Later progress is recorded below.
Known intermediate constraints include box-only physics colliders, root-level physics objects, static glTF triangles/UV0, a conservative serial renderer, and then-unfinished world-preserving authoring reparent operations (completed in checkpoint 2). These remain implementation work or explicit profile limits to review during final acceptance.
Checkpoint 2 — integrated Editor, gameplay iteration and export
Implemented and integrated:
- Separate Player and SchemaExporter executables; statically linked project gameplay, configurable simulation settings, real contact-based grounded queries, and four compiled scripting tutorials embedded directly into the English MkDocs manual.
- Shared authoring commands and a real stdio MCP server, optimistic revisions, transactional retries, jobs/cancellation, recovery of unsaved documents, and viewport capture in graphical sessions only.
- Cancellable native subprocess execution, incremental project builds, schema export, binary scene/resource packaging, distinct Debug development and Release export directories, immutable published generations and retained last-good builds.
- A native retained UI with pinned FreeType/HarfBuzz and bundled Noto Sans: scene tree, schema Inspector, viewport camera/picking/gizmos, assets, diagnostics, build/play controls, commands, recovery and startup-loaded extension action panels.
- Exact-build native Editor SDK, dependency validation, owner-bound registrations, example Beacon runtime component/editor command/panel, and unknown-data preservation.
- Full world-preserving TRS reparent with explicit rejection of unsupported shear.
- Read-only cooked asset target for Player. Import/build/editor/MCP services remain outside the shipping runtime dependency graph.
Observed validation:
- Integrated Linux Clang 21 build: 19 CTests pass, including GPU rendering, retained widgets, Editor authoring interaction, actual plugin loading, real MCP stdio, process/cook contracts, and all four compiled gameplay tutorials.
- Real 2D and imported-glTF 3D standalone exports render with zero Vulkan validation errors on NVIDIA RTX 2080 Ti. Changing gameplay rebuilds metadata; failed C++ compilation preserves the last successful published build.
- Runtime/tutorial checks also pass with Clang 18; runtime ASan/UBSan checks pass.
- Unmodified Blender 4.5.3 exports through the optional add-on. Real Editor imports
preserve output IDs after rename/geometry edits, report deleted-output conflicts,
retain the last generation on failure, and preserve separate scene placement/color.
Reproduce with
tools/verify_blender_roundtrip.py --blender PATH --editor PATH. - Strict MkDocs build passes. Tutorial source snippets are compiled by CTest.
- Previous checkpoint headless Linux and Windows GitHub CI passed after portability fixes. New checkpoint and full Windows graphical/export checks are separate work; Linux validation does not imply Windows validation.
This is an implementation checkpoint, not an MVP release. Finished playable sample projects, complete Windows graphical/export acceptance, fresh-install checks, performance measurements, and final UX review remain. Standalone image import is integrated but its dedicated PNG/JPEG edge-case checks are the next asset task.
The baseline profile currently uses box colliders, root-level rigid bodies, static triangle glTF meshes/UV0, basic PBR/directional shadows and a conservative serial Vulkan renderer. Advanced rendering and broader content profiles remain later work. The generated UI reference determines visual direction only; architecture, behavior and acceptance criteria remain authoritative.