The repository contains the engine, editor, templates and vendored dependencies. Build output goes under build/; do not copy someone else’s CMake cache into a checkout. The checkout may live anywhere, including a path with spaces. Use an x64 compiler/toolchain. The first CMake configure fetches the pinned Jolt Physics source, so it needs Git and an internet connection.
Linux x64
Install Python 3.11+, CMake 3.20+, Ninja, a C/C++20 compiler, the Beef compiler and development libraries for X11/OpenGL and audio. On Ubuntu 24.04:
sudo apt-get update
sudo apt-get install build-essential cmake ninja-build python3 git libx11-dev libxext-dev libxi-dev libxfixes-dev libxcursor-dev libxrandr-dev libxss-dev libxrender-dev libgl-dev libegl-dev libasound2-dev libpulse-dev libwayland-dev libxkbcommon-devUbuntu 22.04 also works, but its default Python is 3.10: install Python 3.11+ separately and set PYTHON to that executable. Other distributions need equivalent packages. Install the Linux Beef toolchain from Beef or build the compiler revision in tools/toolchain.txt; its shared-library dependencies must also be installed. Put BeefBuild on PATH, or set BEEFBUILD to the compiler executable/wrapper. LLVM 22 tools enable LLVM/ThinLTO; Beef can fall back to GNU linking when they are absent.
For a prebuilt Linux compiler, The project’s toolchain release provides the same compiler bundle used by Hub. This installs it in your user folder:
mkdir -p "$HOME/.local/share/TallowBuildTools"
curl -fL https://github.com/LazyAlgorithm/Tallow/releases/download/toolchain-2/beef-linux-x64.tar.gz -o /tmp/tallow-beef.tar.gz
tar -xzf /tmp/tallow-beef.tar.gz -C "$HOME/.local/share/TallowBuildTools"
export BEEFBUILD="$HOME/.local/share/TallowBuildTools/beef/IDE/dist/BeefBuild.sh"git clone --branch main https://github.com/LazyAlgorithm/Tallow.git Tallow
cd Tallow
# The repository URL retains its original name until the GitHub repository is renamed.
./build.sh --config Debug --jobs 8
./build/Debug_Linux64/TallowLauncher/TallowLauncherbuild.sh uses Python 3 by default; PYTHON=/path/to/python3.12 ./build.sh selects another interpreter. You can call python3 tools/build.py directly. The build patches the vendored text editor, compiles the native libraries/tools, compiles the shipped shader backends, collects licenses and builds the launcher. A Vulkan-capable graphics driver is required to run the editor; headless project creation/compilation does not need a display.
Windows x64 (build on Windows)
Install:
- Git, Python 3.11+, CMake 3.20+ and Ninja, available on
PATH. - The Windows Beef toolchain from Beef, with
BeefBuild.exeonPATHorBEEFBUILDset to its full path. - Visual Studio 2022 Build Tools, Desktop development with C++, including the x64 MSVC libraries and Windows SDK. Beef must be configured to find these libraries (its installer normally handles this).
- LLVM with
clang-cl.exeonPATH(the Visual Studio C++ Clang tools component or the official LLVM installation).
Open an x64 Native Tools Command Prompt for VS 2022 so the MSVC/SDK include and library environment is set, then:
git clone --branch main https://github.com/LazyAlgorithm/Tallow.git Tallow
cd Tallow
python tools/build.py --config Debug --jobs 8
build\Debug_Win64\TallowLauncher\TallowLauncher.exeFrom a Visual Studio developer PowerShell you can instead run ./build.ps1 --config Debug --jobs 8. No Bash, Wine, Linux checkout or developer-specific folders are needed on Windows. The native C runtime is static (MultiThreaded) to match Beef. Windows uses Vulkan; Direct3D is not a supported default backend.
For Windows cross-builds on Linux, the separate tools/windows/setup.sh --accept-license prepares Wine, xwin and the native Windows archives. See Windows. This is optional and is not the native Windows source-build procedure above.
Create, open and package a project
Run the launcher to create a project, or use its display-free commands. Replace LAUNCHER with the path printed by the build:
LAUNCHER --create /path/to/MyGallery --showcase
LAUNCHER --build-project /path/to/MyGallery
LAUNCHER --open /path/to/MyGallery
Use quoted Windows paths such as "C:\Projects With Spaces\MyGallery". The bundled Sandbox is also available via LAUNCHER --open Samples/Sandbox; its engine reference is resolved relative to the sample folder.
To make Release engine packages:
python tools/build.py --config Release
python tools/package_engine.py --platform windows --folder dist/Tallow-Windows
On Linux select --platform linux, and use python3 if that is your Python 3.11+ command. Packaging rebuilds the launcher and includes source, templates, shaderc and native archives. Building a game uses tools/build_player.py PROJECT --output OUTPUT; first open/build that project in the launcher to generate its Beef build files.
Tests and repeated builds
Fixtures resolve native archives from their own workspace relative to the repository root. Linux/macOS archive paths and Windows archive paths are quoted for spaces; Windows fixture workspaces select LLVM. Some tests need graphics, audio devices, a network connection or platform-specific integrations; building the engine is not a claim that every integration has been exercised on all hardware.
--skip-native and --skip-shaders are explicit options for already-built checkouts. Leave them off for the first build. A failed launcher rebuild restores the previous executable. Delete/reconfigure a build directory when changing native toolchains rather than moving a CMake cache between machines.
This guide is docs/building-from-source.md in the engine’s repository. Spotted a mistake? Open an issue.