Frequently Asked Questions¶
What is Doriax Engine?¶
Doriax is a free, open-source 2D/3D game engine with an integrated desktop editor. You author scenes visually, script in Lua or C++, and export buildable native projects for desktop, mobile, and web. It is the continuation of Supernova Engine under a new identity, keeping its ECS-based, data-oriented runtime.
How much does it cost? Can I sell my game?¶
Doriax is released under the MIT License — free for personal and commercial use, with no royalties, revenue share, or seat licenses. Bundled third-party libraries keep their own (compatible) open-source licenses. See License & Credits.
Which platforms are supported?¶
| Area | Platforms |
|---|---|
| Editor | Windows, Linux, macOS |
| Exported projects | Windows, Linux, macOS, Android, iOS, HTML5 (WebAssembly) |
| Graphics backends | OpenGL, OpenGL ES 3, Vulkan, Metal, Direct3D 11, WebGPU |
Why can't I choose Vulkan when exporting on macOS?¶
macOS has no native Vulkan driver. Vulkan runs there through MoltenVK, a translation
layer on top of Metal, and MoltenVK does not yet implement VK_EXT_descriptor_buffer —
the feature the renderer uses to bind textures, buffers and samplers. A macOS Vulkan
build compiles and links, but exits at startup on every Mac tested so far.
Rather than offer a build that cannot run, the export dialog lists Metal (the default and recommended choice) and OpenGL. The Vulkan backend itself is in the engine and can be built from the command line; see Vulkan backend. Windows and Linux are unaffected — Vulkan is available on both.
Lua or C++ — which should I use?¶
Both target the same runtime API. Lua gives the fastest iteration (no compile step) and is the best starting point; C++ gives native performance for hot paths. Most projects mix them — see Scripting.
Does exporting produce a finished executable?¶
Exporting produces a self-contained, buildable native project (CMake, Gradle, or Xcode depending on the target) with your scenes, assets, scripts, and compiled shaders. You then build it with the platform's standard toolchain — see Exporting a Project and Command-Line Tools for automating this in CI.
Is Doriax production-ready?¶
Doriax is under active development. The downloadable editor builds track the main
branch and are not stable releases — expect breaking changes while the engine and
documentation are refreshed under the Doriax name. Pin a commit for serious projects and
follow the repository for release tags.
How does Doriax differ from Godot, Unity, or Unreal?¶
Doriax aims to be lightweight and code-transparent: a small MIT-licensed C++ runtime with an ECS core, where exporting gives you a native project you fully own and can read, modify, and build yourself. It does not try to match the breadth of larger engines' tooling; it focuses on a compact feature set — 2D, 3D, UI, physics (Box2D / Jolt), audio (SoLoud), particles, terrain, and skeletal animation — with both Lua and C++ as first-class languages.
Does Doriax use engine-specific asset formats?¶
No. Doriax has no equivalent of Godot's .scn/.res or Unity's imported assets, and no
import step that rewrites your files. The runtime opens standard formats directly —
.glb/.gltf/.obj for models, PNG/JPG/TGA/BMP/HDR/PSD/SVG for textures,
OGG/WAV/MP3/FLAC for audio, and TTF/OTF/TTC for fonts. The file your content tool produces
is the file the game loads.
Scenes, bundles, and materials are the exception. They are authored as YAML for the editor and converted at export into C++ that is compiled into your game, rather than shipped as data the runtime parses. See Resources & Assets.
Can I load assets at runtime?¶
Yes, for media. Models, textures, sounds, and fonts can be loaded or swapped from any path
at any point during gameplay, with Engine.asyncLoading = true moving the work to worker
threads and ResourceProgress reporting how
far along it is. Lua scripts also load from disk at runtime through the lua:// root.
Entity hierarchies work differently, because scenes and bundles are compiled rather than
parsed. Spawning them on demand is fully supported through
BundleManager.createBundle for any
bundle that existed at build time, but a scene or hierarchy contained in a file the
executable was not built with cannot be loaded. That is a deliberate trade: it keeps entity
setup statically typed, leaves reflection and deserialization out of the runtime, and keeps
startup cost and binary size low on the web and mobile targets. If you need player-supplied
or downloaded content, drive it with runtime media loading plus bundles composed in script.
Where do my old Supernova projects stand?¶
Supernova 0.5.5 was the last release of the legacy engine. The runtime API carried
over largely intact (with renames such as SPROPERTY → DPROPERTY and the doriax
namespace), but projects should migrate to the Doriax editor workflow. Some internal
folders may still mention the previous name during the transition.
Where can I find the editor crash log?¶
The desktop editor writes timestamped Output-panel messages to editor.log. If the
editor exits because of a fatal signal or an unhandled exception, it also appends the
editor version, executable path, reason, and a backtrace. Include this file when
reporting a crash.
The log is beside the active settings.yaml. An editor started from an installed
desktop launcher normally uses:
| Platform | Log path |
|---|---|
| Windows | %APPDATA%\Doriax\editor.log |
| macOS | ~/Library/Application Support/Doriax/editor.log |
| Linux | $XDG_CONFIG_HOME/doriax/editor.log, or ~/.config/doriax/editor.log when XDG_CONFIG_HOME is unset |
When you run the editor from source or another writable working directory, it may keep
both settings.yaml and editor.log in that directory instead. The definitive rule is
that the two files are together.
The editor appends several sessions to the log. At startup, a log larger than 2 MiB is
moved to editor.log.1 before a new editor.log is created. If both files exist after
a crash, include both so the earlier session is not lost.
Where can I get help or report bugs?¶
- Discord — discord.gg/yXXDyJf3gT for questions and discussion.
- GitHub — github.com/doriaxengine/doriax
for issues and contributions. For editor crashes, attach the
editor.logdescribed above.
How can I contribute?¶
Code contributions go through pull requests on GitHub. Documentation lives in its own repository and accepts fixes through the Edit this page links — see the Documentation Guide.