Get Started

Hob2D's dependencies are fetched and linked automatically through vcpkg and CMake. Set up the toolchain for your platform, then configure, build, and run.

Requirements

  • vcpkg and CMake (used to fetch and link dependencies).
  • A C/C++ compiler with C++20 support — MSVC, GCC, or Clang.

Windows

vcpkg

Clone vcpkg and run its bootstrap script:

git clone https://github.com/microsoft/vcpkg.git $HOME\.vcpkg
cd $HOME\.vcpkg
.\bootstrap-vcpkg.bat

Set the VCPKG_ROOT environment variable and add it to PATH:

$env:VCPKG_ROOT = "$HOME\.vcpkg"
$env:PATH = "$env:VCPKG_ROOT;$env:PATH"
Setting environment variables this way only affects the current terminal session. To make them permanent, set them through the Windows System Environment Variables panel.

Open a new terminal and verify:

vcpkg --version

CMake

Download the x86-x64 Windows installer from cmake.org. The CMake environment variable is configured automatically.

Linux

Install the prerequisites:

sudo apt update
sudo apt install build-essential cmake ninja-build pkgconf curl zip unzip tar

SDL3 is built from source and needs additional desktop-stack dependencies:

sudo apt install python3 python3-venv python3-pip
sudo apt install autoconf autoconf-archive automake libtool
sudo apt install libibus-1.0-dev
sudo apt install libx11-dev libxext-dev libxrandr-dev libxinerama-dev libxcursor-dev \
    libxi-dev libxfixes-dev libxrender-dev libxss-dev libxxf86vm-dev libxtst-dev
sudo apt install libwayland-dev wayland-protocols libxkbcommon-dev libegl1-mesa-dev libdecor-0-dev
sudo apt install libasound2-dev libpulse-dev libpipewire-0.3-dev libjack-jackd2-dev

Clone and bootstrap vcpkg, then set VCPKG_ROOT:

git clone https://github.com/microsoft/vcpkg.git ~/.vcpkg
cd ~/.vcpkg
./bootstrap-vcpkg.sh

echo 'export VCPKG_ROOT="$HOME/.vcpkg"' >> ~/.bashrc
echo 'export PATH="$VCPKG_ROOT:$PATH"' >> ~/.bashrc
source ~/.bashrc
vcpkg --version

macOS

Install the prerequisites:

xcode-select --install
brew install cmake ninja pkgconf

Clone and bootstrap vcpkg, then set VCPKG_ROOT:

git clone https://github.com/microsoft/vcpkg.git ~/.vcpkg
cd ~/.vcpkg
./bootstrap-vcpkg.sh

echo 'export VCPKG_ROOT="$HOME/.vcpkg"' >> ~/.zshrc
echo 'export PATH="$VCPKG_ROOT:$PATH"' >> ~/.zshrc
source ~/.zshrc
vcpkg --version

Build & Run

Configure with the preset for your toolchain, build, then run the executable.

Editor

The *-editor presets build the in-process editor and boot into it by default, in their own build folder:

# Configure (pick one preset)
cmake --preset debug-msvc-editor      # Windows / MSVC
cmake --preset debug-gcc-editor       # Linux / GCC
cmake --preset debug-clang-editor     # macOS / Clang

# Build
cmake --build --preset debug-msvc-editor-x64

# Run (boots into the editor)
./build/debug/windows-msvc-editor/Debug/hob2d.exe

# Edit a specific game project (bare name, or a path relative to the repo root)
./build/debug/windows-msvc-editor/Debug/hob2d.exe --project sandbox

Game

The plain presets build the runtime only, which launches straight into the game:

# Configure (pick one preset)
cmake --preset debug-msvc      # Windows / MSVC
cmake --preset debug-gcc       # Linux / GCC
cmake --preset debug-clang     # macOS / Clang

# Build
cmake --build --preset debug-msvc-x64

# Run (no arg loads the default project, 'sandbox')
./build/debug/windows-msvc/Debug/hob2d.exe

# Run a specific game project (bare name, or a path relative to the repo root)
./build/debug/windows-msvc/Debug/hob2d.exe --project sandbox

The editor can also be enabled per run on any build with the --editor flag.

Project selection

The engine loads one game project from content/projects/<name>/ at launch. The bundled sample is content/projects/sandbox/. Set the build's default game at configure time with -DHOB_PROJECT=<name>, or select it at runtime with --project <name> (a bare name resolves under content/projects/).