~/openengine
$ cat docs/getting-started/installation.md
# get up and running

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 vcpkg shaderc with the built-in CMake/vcpkg setup, or from the Vulkan SDK

Linux-specific requirements

On Linux, Vulkan and GLFW rely on system windowing libraries:

bash
sudo apt install libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev pkg-config

A working Vulkan driver is also required (e.g. mesa-vulkan-drivers, vulkan-tools, vulkan-validationlayers on Ubuntu).

info

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_SDK is unset, CMake auto-detects under ~/VulkanSDK/<version>/macOS
warning

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:

bash
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=1

Then configure OpenEngine with the PR build outputs:

bash
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:

  1. Place C# files in Assets/
  2. Configure and build the C++ project as described in the next guide
  3. The ScriptAssemblies pipeline emits OpenEngine.Scripts.dll automatically
info

Older docs may mention a Scripts/ folder and setup-scripts.ps1/.sh. Those are fully removed โ€” treat as historical only.

Prerequisites Verification

bash
dotnet --version    # Should show 9.0.x
cmake --version     # Should show 3.20 or later

Next Steps

Head over to the Build & Run guide to compile and launch the engine.

enesfrar