What is stable, experimental, or planned — and the compatibility policy.
Capabilities
DemiEngine is alpha/beta. This page is the honest support matrix — do not infer production support from an example alone.
Stable
- Versioned JSON projects, scenes, prefabs, HUD trees, assets, data, and saves
- Lua lifecycle scripts, explicit service imports, editor property annotations, events, timers, hot reload, modular LuaLS stubs
- Contextual input actions for keyboard, mouse, gamepads, touch, gestures, and virtual controls; deterministic input replay
- 2D rendering: sprites, cameras, animation, tilemaps, materials, startup-loaded game shaders, particles, masks, nine-slice, debug overlays
- Box2D physics: multiple collider shapes, contacts, queries, joints, CCD, kinematic movement, matching debug drawing
- 2D navigation and reusable controllers
- Retained tree UI: anchors, layout containers, focus/navigation, themes, localization, UI prefabs, text editing, virtualization, accessibility snapshots
- Schema-backed immutable game data
- Audio mixing, buses, snapshots, scheduling, streaming, spatial voices, entity-attached sources
- Deterministic asset importing, dependency validation, portable
.demipackarchives, locked.demipkgpackages, cooking - Linux cooking/packaging and runtime bundles
- Profiling, CSV reports, deterministic replay, headless smoke tests, capability gates
- Shared component metadata driving serialization and Inspector
Experimental
- Lightweight 3D: glTF models and skeletal clips, Vulkan GPU skinning with CPU fallback, instancing, culling, model/visual animation LOD, crowd probes
- Jolt rigid bodies, compound colliders, spatial queries, character movement, collider assets, collider generation from models
- Component-based fracture authoring and native Blast/Jolt impacts, masonry, proximity activation, debris cleanup, destruction checkpoints
- Mesh denting, height-map surface relief, textured materials, local and directional lights, tone-mapped panorama skies, mipmaps, particles, post effects
- Native editor with scene/HUD/prefab stages, hierarchy, Inspector, Undo/Redo, embedded Play, asset folders, diagnostics, profiling
- Host-authoritative networking with contracts, ownership, late-join state, reconnect primitives, dedicated server
- Async HTTP/HTTPS with verified TLS
- Android APK/AAB build and signing (feature and device qualification stays scoped)
- Video and cutscene playback on media-enabled builds
- Production text/dynamic UI and the 3D animation adapter
Not delivered yet
HDR, metallic/roughness PBR, environment reflections, and local reflection probes are roadmap work, not current rendering features.
Planned
- Android cooking integration
- Professional desktop 3D expansion (HDR/PBR/reflections, large-world workflows, structural stress)
- Broader production qualification across devices
Platform notes
| Area | Linux desktop | Android |
|---|---|---|
| Rendering | bgfx Vulkan-first (GL available) | Vulkan / GLES, surface lifecycle safe |
| Physics | Box2D + Jolt | Box2D + Jolt |
| Audio | miniaudio | miniaudio, suspend/resume aware |
| Networking | ENet optional, HTTP/TLS | Requires INTERNET permission |
| Media | FFmpeg optional | FFmpeg optional, scoped |
| Editor | Native ImGui workspace | — (author on desktop) |
| Shipping | build linux | build apk / build aab |
Compatibility policy
- During alpha/beta, breaking changes are allowed without deprecation. Examples, templates, packages, schemas, stubs, tests, and docs migrate in the same change.
- Breaking changes keep one current way to do each job; examples, templates, packages, schemas, stubs, tests, and docs migrate with the change.
- Every durable document keeps
format_version. Unsupported versions are rejected with clear diagnostics. - Unknown components are errors unless registered extensions own them.
- Saves are never silently deleted; incompatible saves keep clear diagnostics and migrations where possible.
- Compatibility guarantees begin with the first explicitly designated production release.
Measure, do not assume
Benchmark reports record specific runs (hardware, resolution, build configuration, workload). They do not establish a general capacity guarantee for every scene or device. Use demi run --profiler and the qualification examples for comparable numbers.