Модульный игровой движок на C++26 с опорой на статическую рефлексию (P2996). Цель — собрать лучшие идеи из современных движков (Hazel, Godot, Unreal, O3DE, bgfx/Diligent) и построить чистую, модульную, data-driven архитектуру с несколькими RHI-бэкендами и редактором, управляемым рефлексией.
| # | Документ | О чём |
|---|---|---|
| 00 | Vision & Principles | Зачем, за счёт чего, ключевые принципы, нефункциональные требования |
| 01 | Modularity | Слои, модули, границы, зависимости, plugin-система |
| 02 | Reflection (C++26) | P2996, что даёт, фасад рефлексии, кодоген как fallback |
| 03 | RHI | Абстракция GPU: Vulkan / D3D12 / Metal, bindless, уровень абстракции |
| 04 | Render Graph | Frame graph, авто-барьеры, планирование пассов |
| 05 | Editor & Node Editor | Редактор поверх runtime, reflection-inspector, node-графы |
| 06 | Open Decisions | Развилки: статусы, варианты, рекомендации |
| 07 | Application & Sandbox | Каркас приложения, Sandbox/Editor/Player, layer stack (по мотивам Hazel) |
| 08 | Module System & ABI | Заменяемые DLL-подсистемы (Audio/Render/…), ABI-границы, общий core, ModuleManager |
osiris::core— базовые примитивы, аллокаторы, лог, job-systemosiris::rhi— Render Hardware Interfaceosiris::render— высокоуровневый рендерер + render graphosiris::scene— сцена, ECS, компонентыosiris::assets— импорт/кук/загрузка ассетовosiris::reflect— фасад рефлексииosiris::editor— редактор (не линкуется в шиппинг-билд)