Exporting a Project¶
Exporting turns editor-authored scenes, resources, scripts, and shaders into a shippable build — either a buildable source project or a compiled binary, depending on the mode you choose.
Choose an export mode¶
File → Export opens with three modes:
- Source Code — generates a self-contained C++ project (engine included) you build yourself with CMake or the platform toolchain. It supports Android, iOS, Web, Windows, macOS, and Linux. Pick this for mobile targets, CI pipelines, or when you want to customize the build.
- Desktop — compiles a ready-to-run executable for the OS the editor runs on and
copies it, with
assets/andlua/, to your destination folder. Needs CMake and a C++ compiler installed. Choose OpenGL or Vulkan on Linux; Direct3D 11, Vulkan, or OpenGL on Windows; and Metal or OpenGL on macOS. - Web — compiles an HTML + JavaScript + WebAssembly build with Emscripten. Needs the
Emscripten SDK installed (auto-detected, or point the
window at your
emsdkfolder once) and uses WebGL 2.
Desktop and Web reuse the Source Code pipeline internally, building inside
.doriax/export/ in your project — the first export compiles the engine and is slow,
later ones are incremental and fast.
Export checklist¶
Before exporting, verify:
- All scenes are saved.
- The intended startup scene is selected.
- Resource paths are inside the project or otherwise reachable by the exporter.
- Lua and C++ entry points are configured so only the intended startup path creates the main scene.
- Target platform dependencies are installed.
- The output folder is outside the source asset folders you edit by hand.
What the exporter prepares¶
The editor export pipeline can prepare:
| Output | Purpose |
|---|---|
| Scene code/data | Serialized scene hierarchy, components, bundles, and child scene references |
| Resources | Textures, models, fonts, audio, and other project assets |
| Scripts | Lua files and generated C++ glue for script entry points |
| Shaders | Shader data compiled for each selected graphic backend |
| Build files | CMake, Gradle, Xcode, Emscripten, or platform-specific project files |
Shader output¶
The exporter supports shader output formats configured by the editor's shader export settings. Use the default unless you are debugging shader packaging or integrating a custom build step.
Build after export¶
Desktop and Web mode exports are already built — run the executable from the
destination folder, or serve the web files with any local web server
(python3 -m http.server).
Source Code exports are built with CMake:
Android, iOS, macOS, and HTML5 have additional platform requirements. See the Export Window section and the target-specific guide.
Troubleshooting¶
| Symptom | Check |
|---|---|
| Scene does not load | Startup scene, scene ID/name, exported scene list |
| Blank window | Active camera, canvas size, render backend, asset paths |
| Missing textures | Resource folder, texture path case, unsupported source format |
| Script starts twice | NO_CPP_INIT / NO_LUA_INIT configuration |
| Shader errors | Target backend, shader compiler output, generated shader files |
| Slow or unusually large C++ build | Large inline mesh data; prefer a GLTF or OBJ asset |
Exporting without the GUI¶
You can run the same export from a terminal with the doriax-editor CLI — handy for
build servers and automated releases:
See Command-Line Tools for all options.
Continue with Export Window and Build Options.