Build the engine
Installing prerequisites and getting the build going
What you'll need
On every platform:
- CMake 3.27 or newer.
- .NET SDK, with
dotneton your PATH. The editor UI is built with Avalonia on .NET 10, so the editor needs it.
Per platform:
| Platform | You'll also need |
|---|---|
| Windows | Visual Studio 2026 (MSVC, or the Clang that ships with it), and vcpkg with the VCPKG_ROOT environment variable pointing at it. |
| macOS | The Vulkan SDK, plus brew install molten-vk (or run Tools/Scripts/InstallDependenciesMac.sh). MoltenVK translates Vulkan to Metal for us. |
| Linux | GCC or Clang, the Vulkan SDK with VULKAN_SDK set, and the X11, OpenAL and Vulkan loader dev packages. On Ubuntu/Debian: sudo apt install libx11-dev libopenal-dev libvulkan-dev. Ninja is optional. |
| Android | The Android NDK (we test with NDK 29), and Ninja on your PATH. See Android. |
| Web | emsdk with the EMSDK environment variable pointing at it, and Ninja on your PATH. |
Build it
From the root of the repo:
Windows
build.bat Release
To build with Clang instead of MSVC: build.bat Release Clang
On Windows the default rendering backend is DirectX 12. To build with Vulkan instead, add Vulkan (build.bat Release Vulkan); that needs the Vulkan SDK installed, with VULKAN_SDK set.
macOS
./build.sh Release
To generate an Xcode project: ./build.sh Xcode Release
Linux
./build.sh Release
CMake uses your system's default compiler, usually GCC. To use Clang, set CC=clang CXX=clang++ first. Add ninja (./build.sh Release ninja) to build with Ninja instead of Makefiles.
The script asks if you want to regenerate the CMake project first, and moves on without it after 3 seconds. Answer yes if you've added or removed source files. Pass Regenerate to always regenerate, or NoWait to skip the question.
Use Release (or RelWithDebInfo) on Windows. Debug builds work, but run very slowly.
Other options
| Argument | What it does |
|---|---|
Shipping |
An optimized build without the editor, tests or commandlets. See packaging. |
Runtime |
The engine without the editor (.NET stays on, for C# games). Goes to Binaries/<Platform>-Runtime/. |
Android |
Builds for Android. |
Web |
Builds for the browser (WebAssembly and WebGPU). |
ARM64 |
Builds for Windows on ARM. Needs the C++ Clang tools for Windows Visual Studio component. |
Ninja |
Uses Ninja and clang-cl instead of a Visual Studio solution. |
CodeGen
CodeGen is a build tool that reads the engine's headers and generates the reflection, serialization and scripting bindings. It runs automatically when CMake configures, so you don't normally run it yourself.
Its output goes into Source/Generated/. Don't edit those files by hand; they're overwritten on every run.
Run it
Build output goes to Binaries/<Platform>/<Config>/, for example Binaries/Windows/Release/, Binaries/Mac/Release/ or Binaries/Linux/Release/. The main executables are:
Hyperion.Editor(.exeon Windows), the editor.hyperion-sample(.exeon Windows), the C++ sample game.CSharpGame(.exeon Windows), the C# sample game.
Commandlets like PrecompileShaders land in the same folder. See Console & CVars.
Troubleshooting
- "VCPKG_ROOT not set": Windows builds need it. Point it at your vcpkg install, then open a new terminal.
- CMake fails with CodeGen errors: run
Tools/Scripts/BuildCodeGen.bat(or.sh) on its own to see what actually went wrong. - Metal API validation errors on macOS: the generated Xcode project turns Metal API Validation off for you. If you've made your own scheme, turn it off under the Options tab. Rendering goes through MoltenVK, which the validator reports false errors for.
The full Compiling the Engine guide in the repo covers Android, optional dependencies and IDE setup.
