Skip to content

Installing

For now the engine is built from source. Prebuilt downloads of the editor and its tools come with the first release.

  • CMake 3.28 or newer, and Ninja.

  • A GPU that runs Vulkan 1.3, or Direct3D 12 on Windows, to run anything that draws.

  • On Linux (x64): Clang 21 or GCC 15, the Vulkan development libraries, and SDL3’s build dependencies. On Ubuntu or Debian:

    Terminal window
    sudo apt install cmake ninja-build clang pkg-config \
    libvulkan-dev vulkan-tools vulkan-validationlayers mesa-vulkan-drivers \
    libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxss-dev \
    libxtst-dev libwayland-dev wayland-protocols libxkbcommon-dev libasound2-dev

    The clang this installs may be too old. The engine is written in C++23 with modules and is built with Clang 21. Ubuntu 24.04’s default Clang 18 does not build it, and Clang 19 and 20 are untested, so install Clang 21 beside your distribution’s own if it is older.

    For GCC, the version that works is Ubuntu’s packaged GCC 15 (g++-15, in the 24.04 backports or in 26.04). The upstream 15.2.0 release does not build the engine’s modules.

  • On Windows (x64): Clang 21 (LLVM) or MSVC, and the Windows SDK. Run the MSVC presets from a Developer Command Prompt (vcvars64), so the compiler and the SDK are on the path.

  • For web builds: the Emscripten SDK, version 6.0.5, with a small patch to its emcc.py applied. The engine’s Documentation/Guides/emscripten-windows.md has the patch and how to apply it.

Get the source:

Terminal window
git clone https://github.com/AssiduousEngine/AssiduousEngine.git
cd AssiduousEngine

On Linux, the simplest way to build is the script for your compiler. It finds the newest Clang (or GCC) installed, checks that it is new enough, and configures and builds with it:

Terminal window
./build-clang.sh # everything, Debug
./build-clang.sh --preset clang-reldbg # another Clang preset
./build-gcc.sh # Debug, with GCC

On Windows, build-clang.cmd and build-msvc.cmd do the same.

You can also configure and build through a CMake preset yourself. A preset runs plain clang++ or g++, so that command must be Clang 21 or GCC 15:

Terminal window
cmake --preset clang # once, to configure
cmake --build --preset clang # build everything

The presets name a compiler and a configuration:

Preset What it builds
clang, gcc, msvc Debug, the development configuration
clang-shared, msvc-shared Debug, with the engine’s libraries built as shared libraries
clang-reldbg, msvc-reldbg Optimized, with debug information
clang-release, gcc-release, msvc-release Release
clang-shipping, gcc-shipping, msvc-shipping Shipping: no asserts, stripped
wasm, wasm-release, wasm-shipping The web player (Emscripten): Debug, Release with the profiler, and Shipping

For a web build, load the Emscripten SDK’s environment into the shell first.

A first build takes a while. If it runs out of memory, build with fewer jobs: cmake --build --preset clang -j4, or ./build-clang.sh -- -j4.

Everything a build makes lands in Bin/<configuration>/<platform>-<compiler>/, for example Bin/Debug/Linux64-Clang/.

Terminal window
Bin/Debug/Linux64-Clang/Tools.Editor # the project manager
Bin/Debug/Linux64-Clang/Tools.Editor path/to/project # open a project

On Windows the editor is Tools.Editor.exe, in Bin\Debug\Win64-MSVC\ (or Win64-Clang).

Next: your first project.