tryengine — небольшой 3D ECS-движок на C++20.
- Core: EnTT (ECS).
- Graphics: SDL GPU (низкоуровневая абстракция над Vulkan/D3D12/Metal).
- UI: ImGUI (Docking branch).
- Format Loading: tinygltf (GLB/GLTF) и stb (Image loading/writing).
- Decoupled Logic: Архитектура разделена на game_client и game_server. Ядро движка не имеет жесткой привязки к графическому контексту, что позволяет билдить headless-сервер.
- Artifact-based Asset Pipeline: Ресурсы не грузятся «как есть». Вместо этого реализован пре-процессинг: из GLB вытягиваются меши и текстуры, которые конвертируются в кастомные бинарные форматы (артефакты). Это минимизирует время загрузки в рантайме.
- Tooling: Редактор интегрирован в общую систему через ImGui Dockspaces, включая Inspector, Hierarchy и Viewports.
├── editor/ # Редактор и инструменты импорта (tinygltf, stb)
├── engine_source/ # Ядро (Core, Graphics, Resources)
├── engine_content/ # Базовые ресурсы движка
├── game/ # Ресурсы и игровая логика
├── game_client/ # Клиентская часть
└── game_server/ # Серверная часть (headless)
Important
Убедитесь, что в системе установлен glslangValidator (входит в Vulkan SDK). Без него компиляция шейдеров невозможна.
# Сборка и запуск из корня проетка (рекомендуется Ninja)
cmake -B build -G Ninja
cmake --build build
# Запуск редактора
./build/editor/editorРазработка ведется на Fedora Linux. Кроссплатформенность: заложена через SDL3, требует тестов на других OS.
- Расширение пайплайна SDL GPU (PBR, тени).
- Многопоточность
- Физическая система на XPBD(Extended Position Based Dynamics)
- Сетевой код (Client-side prediction).