DEMIENGINEDOCUMENTATION Everything is free
Ship

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 .demipack archives, locked .demipkg packages, 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

AreaLinux desktopAndroid
Renderingbgfx Vulkan-first (GL available)Vulkan / GLES, surface lifecycle safe
PhysicsBox2D + JoltBox2D + Jolt
Audiominiaudiominiaudio, suspend/resume aware
NetworkingENet optional, HTTP/TLSRequires INTERNET permission
MediaFFmpeg optionalFFmpeg optional, scoped
EditorNative ImGui workspace— (author on desktop)
Shippingbuild linuxbuild 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.