Files
Faset_Engine/docs/studies/README.md
T

53 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Исследования для Faset Engine
Обновлено 23.09.2026. Исходники и официальная документация исследовались прежде всего 17.09.2026; затем результаты согласованы с принятой архитектурой. P2 implementation/acceptance добавлены позже и отделены от исходного статического исследования.
**Актуальные решения — в [ARCHITECTURE.md](../ARCHITECTURE.md), порядок реализации — в [PLAN.md](../../PLAN.md).** Реализация MVP и проверки идут отдельно: [журнал реализации](../IMPLEMENTATION.md), [результаты проверок](../validation/README.md), [пользовательский Manual](../manual/index.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, синхронизации и управления историей для P2.
- [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.
- [19 — P2 GPU visibility: протокол приёмки](19-p2-gpu-visibility-acceptance.md): GPU-сценарии, допуски сравнения и методика измерений; отделяет проверку реализации от предложений исследования 15.
- [20 — P2 GPU visibility: первый benchmark](20-p2-gpu-visibility-benchmark-2026-09-23.md): три запуска, raw CSV, p50/p95 и границы интерпретации на Linux reference GPU.
## Происхождение и воспроизводимость
[Манифест источников](source-manifest.json) фиксирует изученные версии и commits. Основные source-ссылки ведут на upstream-файлы конкретного commit с указанием строки; доступ к Unreal требует соответствующих прав Epic. Исходники сторонних движков не включены в этот репозиторий.
Исходное сравнительное исследование статическое и выборочное: читались отдельные реализации и официальные документы. Сторонние движки не собирались, пользовательские UX-тесты и их GPU-бенчмарки не выполнялись. Позднейшие GPU-тесты и измерения **Faset P2** находятся отдельно в [протоколе 19](19-p2-gpu-visibility-acceptance.md) и [отчёте 20](20-p2-gpu-visibility-benchmark-2026-09-23.md); они не являются benchmark Unreal/Godot/Unity. 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.