Faset Engine
Faset — проект независимого движка для десктопных 2D- и 3D-игр под Linux и Windows. В центре — удобный собственный редактор, его управление через MCP, работа с Blender и развитие современных графических технологий.
Текущий статус: базовая архитектура согласована; реализация движка ещё не начата. Здесь находятся принятые решения, план, исследования других движков и работающая браузерная карта документации. Наличие технологии в плане не означает, что она реализована или измерена.
Начать здесь
- PLAN.md — этапы до MVP, критерии готовности и развитие после него.
- Архитектура — принятые решения и границы подсистем.
- Документация — навигация и правила актуализации.
- Исследования — Unreal Engine, Godot, Unity, Blender, ECS, графика, импорт и сборка.
- Зависимости и независимость — библиотеки, инструменты и происхождение материалов.
Принятый фундамент
- C++ для ядра и первой версии gameplay. Lua добавляется после C++ отдельным модулем и необязателен для конкретной игры.
- Объекты, компоненты и вложенные сцены для авторинга; EnTT для runtime ECS. JSON, устойчивые ID и подготовленные бинарные данные для экспорта.
- Собственные Vulkan 1.3 backend, Render Graph и renderer; Slang для SPIR-V и совместимого HLSL-кода. RT не требуется базовому режиму.
- SDL3 за платформенным интерфейсом Faset; Box2D и Box3D для физики.
- Собственный retained-mode UI редактора: C++-поведение, декларативная компоновка, отдельные стили, основная тёмная тема. Dear ImGui — для отладки.
- CMake + Ninja + Clang; Windows использует clang-cl, Windows SDK и библиотеки MSVC. Первые сборки проверяются на целевой ОС.
- Отдельный Player, статически связанный с gameplay. Рабочий цикл C++ — остановка, инкрементальная сборка, повторный запуск.
- MCP только в редакторе: авторинг, ресурсы, импорт, сборка, экспорт, Play/Stop и диагностика редактора. В Player и экспортируемой игре MCP отсутствует.
- Обычный Blender без изменения исходников, glTF/GLB-импорт и дополнительный плагин для экспорта и устойчивых ID.
MVP заканчивается двумя небольшими 2D/3D-проектами, которые можно создать, сохранить, запустить и экспортировать под обе ОС. GPU-driven rendering, HZB, расширенные тени, temporal reconstruction и динамическая GI развиваются после базового результата.
Открыть карту исследований
Нужен Node.js с npm. Из корня репозитория:
cd docs/studies/map
npm ci
npm test
npm run build
npm start
Карта доступна на localhost:4178. Это просмотрщик документации, а не веб-редактор Faset. Подробности — в README карты.
Публичное содержимое
Документация, исследования, манифест источников и код карты хранятся в Git. Сторонние движки, установленные зависимости, результаты сборки и кэши в репозиторий не включены. Ссылки на изученный код закреплены на research commits; Unreal может требовать доступа Epic.
Состав публикации и статус лицензии собственного содержимого описаны в публикационных заметках. У сторонних проектов сохраняются их собственные условия.