Docs

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. Pick this for Android/iOS, 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/ and lua/, to your destination folder. Needs CMake and a C++ compiler installed.
  • Web — compiles an HTML + JavaScript + WebAssembly build with Emscripten. Needs the Emscripten SDK installed (auto-detected, or point the window at your emsdk folder once).

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 Cross-platform shader data for the selected 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:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release

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:

doriax-editor export --project ./MyGame --out ./build/MyGame --platform "linux,web"

See Command-Line Tools for all options.

Continue with Export Window and Build Options.