Feature Roadmap
Status of every engine subsystem as of the latest audit (April 2026). Recently added (Tier 1 editor prep, late April): audio pause/resume, component default-init callbacks + construct-by-name (enables "+ Add Component" in the Inspector), SafiEngineOwned tag + SafiActiveCamera singleton enforcement (fixes double-tag bugs across snapshot restore), 128-bit SafiStableId GUID auto-attached to every named entity and used as the scene-save / snapshot-restore key (renames stay correct, prefabs become cheap), project-root-relative asset paths (scenes are now portable across machines), SafiPrimitive.texture → SafiTextureHandle with RAII hooks so primitive textures dedup, hot-reload, and never leak, file-watcher → hot-reload that polls mtimes under the project root, hierarchy helpers (safi_entity_set_parent with cycle rejection, _detach_from_parent, _children), change bus observing every serializable component for M6 undo, and entity presets (safi_preset_*) for the M5 Create menu.
Before that (mid April): Play/Pause/Stop toolbar with auto-snapshot on Play and restore on Stop, translate/rotate/scale gizmo driven by the toolbar's tool picker, editor fly-cam that arbitrates the active-camera tag on Edit ↔ Play, editor-mode singleton (SafiEditorState) with a dedicated SafiGamePhase gate so gameplay pauses in Edit mode, in-memory scene snapshot/restore for non-destructive Play→Stop, JSON scene serialization (save/load/clear with a component registry), asset handles (refcounted, path-cached), procedural primitives (plane/box/sphere/capsule), and miniaudio audio with 2D/3D playback.
ECS & Core
Transform & Spatial
Camera & Visibility
Rendering
Lighting
Assets
Input
Time
Debug UI
Editor
The SafiEngine editor is a debug-UI–based scene authoring tool that runs in the same process as the game. See the Editor plan for the full milestone breakdown.
Audio
Physics & Collision
Next milestone
Editor MVP — grow the debug UI into a real scene authoring tool so games can be built without writing C bootstrap code. See the Editor plan for milestone details.
Play / Pause / Stop toolbar✅ (Editor Toolbar)Scene serialization / load from file✅ (Scene)Editor fly-camera✅ (Editor Camera)Viewport gizmos (translate / rotate / scale)✅ (Editor Gizmo)Tier 1 editor-prep engine work✅ (stable entity IDs, project-root asset paths, texture handles on primitives, hot-reload, hierarchy helpers, change bus, entity presets, component default-init, audio pause/resume)- Asset browser panel UI (handle system + hot-reload shipped — see Assets)
- Entity creation menu + component add/remove UI (presets + default-init shipped — see Scene, Registry)
- Undo/redo over Inspector + gizmo edits (change bus shipped — see Registry)
- Debug physics wireframe rendering
- PBR material pipeline (enables richer material previews in the editor)