Export Window¶
The Export Window prepares a Doriax project for a target platform. It collects scene data, resources, scripts, generated C++ glue, engine runtime files, and compiled shaders into a self-contained buildable project directory.

Opening the Export Window¶
Choose File → Export from the menu bar, or press the Export button in the toolbar.
Export inputs¶
| Input | Source |
|---|---|
| Scenes | Saved project scene YAML files |
| Bundles | Reusable entity hierarchy files |
| Resources | Asset folders (textures, models, audio, fonts) |
| Lua scripts | Project Lua script files |
| C++ scripts | Project source files and editor-generated glue code |
| Shaders | Shader builder output and platform backend settings |
| Platform settings | Target platform, output directory, build options |
Export steps¶
- Open the Export Window and select a target platform.
- Review the included asset folders and script paths.
- Choose a build output directory (outside the source project).
- Click Export.
The exporter runs through the following phases:
| Phase | Output |
|---|---|
| Scene serialization | Converts scene YAML to runtime-loadable data |
| Bundle factory generation | Generates C++ factory functions for each bundle |
| Shader compilation | Translates shaders for the selected graphics backend |
| Asset packaging | Copies and organizes resource files |
| Startup code generation | Generates main.cpp / entry point with scene registration |
| Engine template copy | Copies the runtime engine library and CMake/build files |
Generated output structure¶
output/
├── assets/ ← copied and processed resources
├── shaders/ ← compiled shader data for the target backend
├── src/
│ ├── main.cpp ← generated startup entry point
│ ├── scenes/ ← generated scene factory C++ files
│ └── bundles/ ← generated bundle factory C++ files
├── CMakeLists.txt ← build system entry point
└── ... ← platform-specific files
Shader compilation¶
The shader builder translates shader source for the selected graphics backend. Supported backends:
| Backend | Platforms |
|---|---|
| OpenGL / GLSL | Windows, Linux, macOS |
| OpenGL ES 3 / ESSL | Android, web |
| Metal / MSL | iOS, macOS |
| Direct3D 11 / HLSL | Windows |
| WebGL / GLSL ES | HTML5 / Emscripten |
If shader compilation fails, the Output panel reports the shader name, stage, backend, and the compiler error. Fix the shader source and re-export.
Platform toolchains¶
After export, build the generated project with the appropriate native toolchain:
| Target platform | Toolchain | Notes |
|---|---|---|
| Windows | CMake + MSVC or MinGW | Requires CMake 3.16+, Windows SDK |
| Linux | CMake + GCC or Clang | Requires X11 or Wayland dev libraries |
| macOS | CMake + Xcode or CLang | Requires Xcode command-line tools |
| Android | Gradle + Android NDK | Requires Android Studio or SDK command-line tools |
| iOS | Xcode workspace | Requires a Mac with Xcode |
| HTML5 / Web | Emscripten | Requires emcmake cmake |
Build options¶
See Build Options for a full list of CMake flags and compile-time defines you can set to control engine features in the export.
Tips¶
- Keep the export output directory separate from your source project so version control does not track generated files.
- Export a clean build before submitting to an app store or sharing a release build.
- Use the Development export mode while iterating; switch to Release for final builds (enables optimizations, strips debug symbols).
- Test exported builds on actual devices — some graphics, input, and memory behaviors differ between the editor's desktop preview and the target platform.