Document Faset architecture and roadmap through MVP

This commit is contained in:
Emil
2026-09-18 02:21:40 +03:00
commit 8f9d5c2969
40 changed files with 5791 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# Исследования для Faset Engine
Обновлено 18.09.2026. Исходники и официальная документация исследовались прежде всего 17.09.2026; затем результаты согласованы с принятой архитектурой.
**Актуальные решения — в [ARCHITECTURE.md](../ARCHITECTURE.md), порядок реализации — в [PLAN.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 — Архитектура](01-architecture.md): данные, владение, сцены, компоненты, фазы и принятые правила шаблонов.
- [02 — UX редактора](02-editor-ux.md): повседневный workflow, Inspector, Undo, поиск и диагностика.
- [03 — Сравнение подходов](03-comparison.md): Godot, Unity, Unreal, дополнительные примеры O3DE/Bevy.
- [04 — Рекомендации](04-engine-recommendations.md): сводка принятых решений и отличия от ранних вариантов.
- [05 — Навигация по дорожной карте](05-roadmap.md): обзор, полный план находится в корне.
- [06 — Источники](06-sources.md): библиография и официальные документы выбранного стека.
## Разборы исходников
- [07 — Unreal Engine: передовая графика](07-unreal-graphics-source-study.md).
- [08 — Godot: сцены, ресурсы, Inspector, Undo и Play](08-godot-ux-source-study.md).
- [09 — Unity: UX и расширяемость](09-unity-ux-extensibility-study.md).
- [10 — Blender: команды и инструменты](10-blender-editor-patterns.md).
- [11 — ECS и удобство API](11-ecs-and-ergonomics.md).
- [12 — MCP редактора и интеграция с Blender](12-mcp-and-blender-integration.md).
- [13 — Компиляция, cook, экспорт и сравнение стеков](13-build-pipeline-and-stack.md).
- [14 — Общая архитектура и проверочные сценарии](14-engine-blueprint.md).
## Углублённые технические материалы
- [15 — GPU-driven renderer](15-renderer-implementation-notes.md): visibility, HZB, синхронизация и управление историей; этап после MVP.
- [16 — C++ gameplay и метаданные](16-native-gameplay-and-metadata.md): схемы, ABI, сериализация и будущий Lua.
- [17 — Asset pipeline и Blender](17-asset-pipeline-and-blender-roundtrip.md): IDs, зависимости, reimport, overrides и физическая геометрия.
- [18 — Сборка и доставка](18-build-cook-and-delivery.md): инкрементальность, cache, состав Player и единый BuildService.
## Происхождение и воспроизводимость
[Манифест источников](source-manifest.json) фиксирует изученные версии и commits. Основные source-ссылки ведут на upstream-файлы конкретного commit с указанием строки; доступ к Unreal требует соответствующих прав Epic. Исходники сторонних движков не включены в этот репозиторий.
Исследование статическое и выборочное: читались отдельные реализации и официальные документы. Движки не собирались, пользовательские UX-тесты и GPU-бенчмарки не выполнялись. UnityCsReference содержит C# reference source и bindings, а не весь native движок. Blender изучался через sparse checkout и выбранные удалённые файлы.
[Карта](map/README.md) запускается на обычном clone Faset. Соседние checkout из manifest необязательны и нужны только для дополнительного локального просмотра исходников. Пути manifest считаются от корня проекта, а относительные Markdown-ссылки — от документа.
Первоначальные сравнения Python/C#/Flecs, готовых UI toolkits и других вариантов сохранены там, где объясняют решение, и отмечены как история. Они не являются нерешённым выбором стека. Графика — одно из основных направлений развития Faset; передовые техники вводятся после проверенного сквозного MVP.