51 lines
6.5 KiB
Markdown
51 lines
6.5 KiB
Markdown
# Исследования для 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.
|