6.5 KiB
Исследования для Faset Engine
Обновлено 18.09.2026. Исходники и официальная документация исследовались прежде всего 17.09.2026; затем результаты согласованы с принятой архитектурой.
Актуальные решения — в ARCHITECTURE.md, порядок реализации — в PLAN.md. Движок ещё не реализован. Исследования дают обоснования и проверочные сценарии, а не доказанные показатели будущего Faset.
Принято по результатам обсуждения
Linux/Windows, десктопные 2D/3D, C++ сначала и Lua следующим языковым этапом, EnTT, Box2D/Box3D, SDL3, собственные Vulkan 1.3 renderer/Render Graph, Slang, CMake/Ninja/Clang. Собственный retained C++ UI редактора использует декларативную компоновку и стили с основной тёмной темой; ImGui остаётся диагностическим.
Авторинг использует JSON, постоянные ID, вложенные сцены и sparse overrides. Игра работает в отдельном Player со статически связанным gameplay; C++-цикл — stop/build/restart. Метаданные экспортируются отдельным процессом. Официальный Blender остаётся внешним инструментом, с glTF/GLB и необязательным дополнением для ID/экспорта.
MCP работает только с редактором, его авторскими документами, импортом, сборкой, Play/Stop и диагностикой. API управления runtime world и MCP в игре не планируются.
Обзор и сравнительная база
- 01 — Архитектура: данные, владение, сцены, компоненты, фазы и принятые правила шаблонов.
- 02 — UX редактора: повседневный workflow, Inspector, Undo, поиск и диагностика.
- 03 — Сравнение подходов: Godot, Unity, Unreal, дополнительные примеры O3DE/Bevy.
- 04 — Рекомендации: сводка принятых решений и отличия от ранних вариантов.
- 05 — Навигация по дорожной карте: обзор, полный план находится в корне.
- 06 — Источники: библиография и официальные документы выбранного стека.
Разборы исходников
- 07 — Unreal Engine: передовая графика.
- 08 — Godot: сцены, ресурсы, Inspector, Undo и Play.
- 09 — Unity: UX и расширяемость.
- 10 — Blender: команды и инструменты.
- 11 — ECS и удобство API.
- 12 — MCP редактора и интеграция с Blender.
- 13 — Компиляция, cook, экспорт и сравнение стеков.
- 14 — Общая архитектура и проверочные сценарии.
Углублённые технические материалы
- 15 — GPU-driven renderer: visibility, HZB, синхронизация и управление историей; этап после MVP.
- 16 — C++ gameplay и метаданные: схемы, ABI, сериализация и будущий Lua.
- 17 — Asset pipeline и Blender: IDs, зависимости, reimport, overrides и физическая геометрия.
- 18 — Сборка и доставка: инкрементальность, cache, состав Player и единый BuildService.
Происхождение и воспроизводимость
Манифест источников фиксирует изученные версии и commits. Основные source-ссылки ведут на upstream-файлы конкретного commit с указанием строки; доступ к Unreal требует соответствующих прав Epic. Исходники сторонних движков не включены в этот репозиторий.
Исследование статическое и выборочное: читались отдельные реализации и официальные документы. Движки не собирались, пользовательские UX-тесты и GPU-бенчмарки не выполнялись. UnityCsReference содержит C# reference source и bindings, а не весь native движок. Blender изучался через sparse checkout и выбранные удалённые файлы.
Карта запускается на обычном clone Faset. Соседние checkout из manifest необязательны и нужны только для дополнительного локального просмотра исходников. Пути manifest считаются от корня проекта, а относительные Markdown-ссылки — от документа.
Первоначальные сравнения Python/C#/Flecs, готовых UI toolkits и других вариантов сохранены там, где объясняют решение, и отмечены как история. Они не являются нерешённым выбором стека. Графика — одно из основных направлений развития Faset; передовые техники вводятся после проверенного сквозного MVP.