First-Person Controller with Box3D Physics, cgltf, SDL3, GLM, and OpenGL 3.3 First-Person контроллер с физикой Box3D, cgltf, SDL3, GLM и OpenGL 3.3

A step-by-step guide to downloading and running the starter project featuring a First-Person (FPS) capsule controller, Box3D rigid body physics, a textured falling cube loaded via cgltf, a repeating grid ground plane, and toggleable physics wireframe debug rendering on Windows and Ubuntu. Пошаговое руководство по скачиванию и запуску стартового проекта с капсульным First-Person (FPS) контроллером, физикой твердых тел Box3D, текстурированным падающим кубом через cgltf, тайловой сеткой земли и переключаемой каркасной отрисовкой физики под Windows и Ubuntu.

Before proceeding, make sure you have installed all required libraries on your system using the appropriate guides: Перед продолжением убедитесь, что вы установили все необходимые библиотеки в вашей системе, следуя соответствующим инструкциям:

Step 1: Download Project Archive (.zip) Шаг 1: Скачивание zip-архива проекта

Download the source code archive directly from the GitHub repository: Скачайте архив исходного кода напрямую из репозитория GitHub:

Download Repository (.zip) Скачать репозиторий (.zip) View on GitHub Открыть на GitHub

Option A: Windows Вариант A: Windows

Extract the downloaded sdl3-cgltf-opengl-box3d-fps-starter-main.zip archive so that its files reside in: Распакуйте скачанный архив sdl3-cgltf-opengl-box3d-fps-starter-main.zip так, чтобы его содержимое находилось в:

C:\projects\sdl3-cgltf-opengl-box3d-fps-starter

Option B: Ubuntu (Terminal) Вариант B: Ubuntu (Терминал)

On Ubuntu, you can download and extract the repository in your terminal using wget and unzip: В Ubuntu вы можете скачать и распаковать репозиторий в терминале с помощью wget и unzip:

sudo apt update && sudo apt install -y wget unzip

mkdir -p ~/projects
cd ~/projects

wget https://github.com/ivan-enzhaev/sdl3-cgltf-opengl-box3d-fps-starter/archive/refs/heads/main.zip -O sdl3-cgltf-opengl-box3d-fps-starter-main.zip
unzip -o sdl3-cgltf-opengl-box3d-fps-starter-main.zip
mv sdl3-cgltf-opengl-box3d-fps-starter-main sdl3-cgltf-opengl-box3d-fps-starter
rm -f sdl3-cgltf-opengl-box3d-fps-starter-main.zip

cd ~/projects/sdl3-cgltf-opengl-box3d-fps-starter

Step 2: Project Structure Overview Шаг 2: Обзор структуры проекта

The extracted directory contains the complete source code, assets, and ready-to-use build scripts: Распакованная директория содержит полный исходный код, ассеты и готовые скрипты сборки:

sdl3-cgltf-opengl-box3d-fps-starter/
├── assets/
│   └── models/
│       └── cube/
│           ├── check-grid-cube.glb
│           └── check-grid-512.jpg
├── src/
│   ├── app.h               # Core state struct & variables
│   ├── fps_controller.h    # WASD movement, jumping & mouse look
│   ├── fps_controller.cpp
│   ├── model_utils.h       # cgltf loader & ground plane generator
│   ├── model_utils.cpp
│   ├── physics_debug.h     # Box3D debug shape drawing callbacks
│   ├── physics_debug.cpp
│   ├── shader_utils.h      # Shader programs for textured mesh & lines
│   ├── shader_utils.cpp
│   ├── texture_utils.h     # SDL3 texture loader (GL_REPEAT tiling)
│   ├── texture_utils.cpp
│   └── main.cpp            # SDL3 callbacks (Init, Event, Iterate, Quit)
├── build-bin.sh            # Ubuntu build script
├── build-exe.bat           # Windows build script
├── CMakeLists.txt          # CMake configuration
├── config-bin.sh           # Ubuntu configure script
├── config-exe.bat          # Windows configure script
├── run-bin.sh              # Ubuntu execution script
└── run-exe.bat             # Windows execution script

Step 3: Build & Run the Application Шаг 3: Сборка и запуск приложения

The repository already includes pre-configured scripts to configure, build, and run the project. Репозиторий уже содержит готовые скрипты для конфигурации, сборки и запуска проекта.

Windows (Command Prompt / PowerShell)

Run the batch scripts sequentially from the project root folder: Последовательно запустите командные файлы из корневой папки проекта:

config-exe.bat
build-exe.bat
run-exe.bat

Ubuntu (Terminal)

Grant execution permissions to the shell scripts first, then run them sequentially: Сначала предоставьте права на исполнение shell-скриптам, затем последовательно запустите их:

chmod +x config-bin.sh build-bin.sh run-bin.sh

./config-bin.sh
./build-bin.sh
./run-bin.sh

Step 4: Controls & Expected Output Шаг 4: Управление и ожидаемый результат

When launched, the application opens a window with a first-person perspective on a textured checker grid floor, facing a falling textured cube with Box3D physical collisions: При запуске приложение открывает окно с видом от первого лица на текстурированном полу с клетчатой сеткой, перед которым падает текстурированный куб с физическими столкновениями Box3D:

ControlУправление ActionДействие
W A S D Walk forward, backward, strafe left and rightДвижение вперед, назад, стрейф влево и вправо
Mouse MovementДвижение мыши First-Person camera look (yaw & pitch)Обзор камерой от первого лица (рыскание и тангаж)
Space JumpПрыжок
P / F1 Toggle Box3D physics wireframe debug rendering ON/OFFВключить/выключить каркасную отладочную отрисовку физики Box3D
Esc Release mouse cursor (click window to recapture)Освободить курсор мыши (кликните в окно для захвата)

Support My Work Поддержать проект

If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.

Sberbank (Russia only) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp