Этот документ описывает процесс сборки, тестирования и запуска проекта ProjectV в операционной системе Linux, которая является основной целевой платформой для разработки.
Для сборки проекта на Linux требуются следующие инструменты:
- Компилятор: Clang 22+ (поддерживающий C++26 стандарты).
- Линковщик: LLD (
ld.lld). - Сборочная система: CMake 3.30+ и Ninja.
- Vulkan SDK: Версия 1.4.350+ с установленными компиляторами шейдеров
glslcилиglslangValidatorв вашей переменной средыPATH. - Библиотека кэширования компиляции:
sccache(активно используется в пресетах по умолчанию для ускорения повторной сборки). - Аудио-сервер: PipeWire / PulseAudio.
Перед первой сборкой обязательно загрузите все вложенные зависимости:
git submodule update --init --recursiveПроект собирает статические версии SDL3, volk, VMA (Vulkan Memory Allocator), fmt, flecs, JoltPhysics,
tracy и других библиотек из исходных кодов.
В CMakePresets.json настроены три основных пресета конфигурации для Linux:
linux-clang-debug— Локальная сборка для разработки (включены тесты, бенчмарки, отладка Vulkan Validation, кэширование sccache).linux-clang-debug-ci— Контур непрерывной интеграции (CI) без привязки к локальным launcher-инструментам.linux-clang-release— Высокооптимизированная релизная сборка (-O3,-flto=thin, отключены валидация и Tracy).
Конфигурирование выполняется командой:
cmake --preset linux-clang-debugДля repeatable-сборки используйте соответствующие сборочные пресеты:
# Сборка Debug-версии (ProjectV + тесты)
cmake --build --preset linux-clang-debug-build
# Сборка Release-версии
cmake --build --preset linux-clang-release-buildЗапуск unit-тестов и интеграционных тестов физики Jolt и рендеринга:
ctest --preset linux-clang-debug-testsВсе тесты должны завершаться успешно (Green Build) перед фиксацией изменений.
Для запуска движка используйте скомпилированный исполняемый файл:
./build/linux-clang-debug/bin/ProjectV1— Shader Hot-Reload: Пересборка всех шейдеров на лету без перезапуска приложения (через системный вызов сборки таргетаShaders).3— Cycle Vsync: Переключение режимов презентации Vulkan (FIFO->IMMEDIATE->MAILBOX).F5— Перезагрузка и циклическое переключение встроенных пресетов сцен (VoxelLab,FlatBenchmark,TransparencyStressи т.д.).F1— Включение / отключение всего HUD и отладочных сеток.G— Переключение уровня детализации HUD (Normal / Detailed).Tab— Захват / освобождение курсора мыши.
Для проверки работоспособности Vulkan-конвейера, создания окна и корректной работы барьеров при изменении размера экрана, сворачивании и разворачивании используется скрипт:
./tools/linux/Invoke-ProjectVRuntimeSmoke.shЭтот скрипт проверяет:
- Инициализацию Logical Device с поддержкой BDA и RTX.
- Отсутствие ошибок от Vulkan Validation Layers.
- Корректное завершение работы приложения с кодом возврата
0.
Для автоматического тестирования качества освещения и теней скрипт запускает движок, позиционирует камеру, переключает
отладочные режимы рендеринга и сохраняет скриншоты в BMP с JSON-файлами метаданных в директорию runtime/captures/.
- Documentation Index — карта всех руководств
- ArchitectureGuide — общая архитектура движка
- RTX Renderer Architecture — архитектура RTX-рендеринга
- Physics & Movement Guide
- BuildAndRun (Windows)
- Debugging
- Profiling