Prerequisites
Before building OpenEngine, ensure you have the following installed:
- Windows 10/11 โ Visual Studio 2019/2022 with C++ development tools
- Linux/macOS โ Recent Clang or GCC (Linux) / Xcode or Clang (macOS), CMake 3.20+
- .NET 9.0 SDK โ Required for C# scripting on Windows (optional on Linux/macOS for C++-only builds)
- Git
- Vulkan shader compiler (
glslc) โ Automatically provided via vcpkgshadercwith the built-in CMake/vcpkg setup, or from the Vulkan SDK
Linux-specific requirements
On Linux, Vulkan and GLFW rely on system windowing libraries:
sudo apt install libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev pkg-configA working Vulkan driver is also required (e.g. mesa-vulkan-drivers, vulkan-tools, vulkan-validationlayers on Ubuntu).
Our vcpkg.json enables vulkan-loader[wayland,xcb,xlib] so the Vulkan loader exports the surface extensions needed by glfwCreateWindowSurface. This is installed automatically via manifest mode when you configure with CMake โ no separate vcpkg install needed.
macOS MoltenVK notes
vcpkg's vulkan port installs headers and the cross-platform loader but does not provide MoltenVK. To enable the Vulkan backend:
- Install the official Vulkan SDK for macOS (bundles MoltenVK and a loader)
- If
VULKAN_SDKis unset, CMake auto-detects under~/VulkanSDK/<version>/macOS
If the SDK is missing, CMake logs Vulkan not found โ Vulkan backend disabled. This is acceptable for initial C++ engine/Editor bring-up; Vulkan-backed rendering paths will be skipped.
Temporary MoltenVK PR for `VK_KHR_draw_indirect_count`
Until official MoltenVK releases include KhronosGroup/MoltenVK#2740, macOS users who need GPU-driven counted indirect draws should build that PR locally:
export MOLTENVK_PR_DIR="$HOME/src/MoltenVK-pr2740"
git clone --recursive https://github.com/KhronosGroup/MoltenVK.git "$MOLTENVK_PR_DIR"
cd "$MOLTENVK_PR_DIR"
git fetch origin pull/2740/head:pr-2740
git switch pr-2740
./fetchDependencies --macos
make macos MVK_CONFIG_LOG_LEVEL=1Then configure OpenEngine with the PR build outputs:
cmake -S . -B build-macos \
-DGE_MOLTENVK_SOURCE_LIB="$MOLTENVK_PR_DIR/Package/Release/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib" \
-DGE_MOLTENVK_SOURCE_ICD="$MOLTENVK_PR_DIR/Package/Release/MoltenVK/dynamic/dylib/macOS/MoltenVK_icd.json"Scripts Setup (Assets + ScriptAssemblies)
C# scripts live under Assets/ (e.g. Assets/Scripts/*.cs). The engine automatically generates OpenEngine.Scripts.csproj into build/bin/<Config>/ScriptAssemblies/ and builds OpenEngine.Scripts.dll into the same directory.
There is no manual setup step:
- Place C# files in
Assets/ - Configure and build the C++ project as described in the next guide
- The ScriptAssemblies pipeline emits
OpenEngine.Scripts.dllautomatically
Older docs may mention a Scripts/ folder and setup-scripts.ps1/.sh. Those are fully removed โ treat as historical only.
Prerequisites Verification
dotnet --version # Should show 9.0.x
cmake --version # Should show 3.20 or laterNext Steps
Head over to the Build & Run guide to compile and launch the engine.