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 Project... 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 its resources to your destination folder. Resources ship as
assets/andlua/by default, or as oneresources.pakwhen the experimental project option is enabled. 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.
- Project Settings → Directories → Native Resource Pack is configured for the target: leave it off for loose files, or enable it for Desktop/Android after checking its runtime limitations.
- 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, as loose files or an optional native resources.pak |
| 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. The export includes a build script that runs both steps for you:
or run CMake yourself:
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 |
| Assets disappear only when packing is enabled | Code that constructs File directly; packed read-only resources must use Data or an engine loader |
Export rejects resources.pak |
Rename the top-level asset; resources.pak and resources.pak.tmp are reserved export names |
| 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.