110 lines
5.6 KiB
Markdown
110 lines
5.6 KiB
Markdown
# EDT — Godot Editor and Content Authoring
|
||
|
||
## Цель
|
||
|
||
Превратить Godot Editor в единую среду расширения мира, gameplay, UI, audio и graphics с безопасным build/deploy/playtest workflow.
|
||
|
||
## EDT-1. Plugin platform
|
||
|
||
- `addons/openwc_editor` регистрирует workspace, docks, inspector/import/gizmo/debugger plugins.
|
||
- `_enter_tree/_exit_tree` симметричны: все controls/plugins/signals/jobs снимаются без leaks.
|
||
- UI вызывает authoring application services; не пишет SQL/files/scene tree напрямую.
|
||
- Editor selection отделена от runtime preview nodes.
|
||
- Shared services получают context через dependency injection, не global editor singleton.
|
||
|
||
## EDT-2. Workspace and UX
|
||
|
||
- World viewport, Content Browser, Outliner, Inspector, Validation, History, Build, Database, Test Center.
|
||
- Search/filter/favorites/recent items и stable links между сущностями.
|
||
- Multi-selection и bulk edits показывают scope/diff.
|
||
- Diagnostics имеют severity/code/location/fix; double-click открывает field/node/world position.
|
||
- Layout/workspace preferences сохраняются отдельно от Content Project.
|
||
|
||
## EDT-3. Commands, undo and recovery
|
||
|
||
- Любая mutation — command с execute/undo/description/affected IDs.
|
||
- Terrain strokes агрегируются в bounded deltas; большие операции используют snapshots/chunks.
|
||
- Autosave recovery journal атомарный и имеет schema version.
|
||
- External changes обнаруживаются через hashes; merge/overwrite требует решения пользователя.
|
||
- Quick Fix всегда previewable и undoable.
|
||
|
||
## EDT-4. Import and asset browser
|
||
|
||
- MPQ/archive browser, locale/patch source provenance и extraction jobs.
|
||
- Preview BLP, DBC rows, M2 animations/materials, WMO groups/portals, ADT layers и audio.
|
||
- Godot import plugins применяются только к authoring source formats, где lifecycle `.import` полезен.
|
||
- Raw extracted corpus не должен вызывать неконтролируемый массовый Godot reimport.
|
||
- Batch conversion использует staging, cancellation, cache hash и report.
|
||
|
||
## EDT-5. World editing
|
||
|
||
- Map/tile/chunk navigation и coordinate overlays.
|
||
- Terrain sculpt/smooth/flatten/noise/stamps/holes.
|
||
- Texture layers, alpha painting, shading и liquids.
|
||
- M2/WMO placement, snapping, transforms, doodad sets и unique ID allocation.
|
||
- Creature/gameobject spawns, groups, formations, patrol/escort paths.
|
||
- Areas, triggers, graveyards, teleports, taxi/transport points, sound/weather volumes.
|
||
- Collision/navmesh/streaming/render-cost visualization.
|
||
|
||
## EDT-6. Data editors
|
||
|
||
- Creature/gameobject templates, models, equipment, movement and text.
|
||
- Item/loot/vendor/trainer/profession editors.
|
||
- Quest form + dependency/progression graph + localization.
|
||
- Gossip/conditions/SmartAI graph with raw representation inspector.
|
||
- Spawn/pool/game event/phase editor.
|
||
- Dungeon package, encounter state graph, doors/triggers/lockouts/loot.
|
||
- UI/addon manifest, CVar/keybinding и audio zone configuration.
|
||
|
||
## EDT-7. Navigation
|
||
|
||
- `recast-rs` optional offline backend behind navigation build interface.
|
||
- Bake profiles: agent size/climb/slope/cell/region/tile parameters.
|
||
- Walkability, disconnected islands, path cost, off-mesh links и dynamic door states.
|
||
- Quest giver/objective/turn-in reachability; patrol/escort validation.
|
||
- OpenWC cache отделён от server mmap until compatibility proven.
|
||
|
||
## EDT-8. Graphics extension tools
|
||
|
||
- Material/shader profile editor с Blizzlike/Enhanced comparison.
|
||
- Texture replacement/upscale overlays и mip/alpha/color-space validation.
|
||
- Water/sky/weather/light preview with fixed time and reference capture.
|
||
- Character/equipment/animation/attachment preview.
|
||
- Spell visual/particle/ribbon authoring where formats permit.
|
||
- Quality preset cost preview и automatic render checkpoint generation.
|
||
|
||
## EDT-9. Content Project
|
||
|
||
- Git-friendly files, schema version, symbolic IDs, dependencies и capability requirements.
|
||
- Original data referenced, never copied silently.
|
||
- Overlay priority/conflict report и semantic merges.
|
||
- Deterministic numeric ID allocation per server profile.
|
||
- Localization bundles, scripts, client assets, tests и package manifests.
|
||
- Schema migrations with backup, fixture and loss policy.
|
||
|
||
## EDT-10. Build, deploy and playtest
|
||
|
||
```text
|
||
Validate → Compile → Bake → Diff → Package → Dry-run
|
||
→ Apply dev DB/module/assets → Start/reload core → Launch client at context
|
||
→ Collect logs/results → Roll back disposable environment
|
||
```
|
||
|
||
- Jobs cancellable, progress-aware and identical to headless CI services.
|
||
- Production target physically/logically separated and disabled by default.
|
||
- Server reload used only for tables known to support it; otherwise restart.
|
||
- Playtest bundle records content/core/client revisions and profile.
|
||
- One-click convenience never hides SQL/module/client artifact diff.
|
||
|
||
## EDT-11. Extensibility
|
||
|
||
- `ContentTypeDescriptor`: schema, icon, inspector, validator, compiler, presenter.
|
||
- `EditorTool`: selection contract, command factory, gizmo/overlay.
|
||
- `BuildStep`: inputs/outputs/cache key/cancellation/diagnostics.
|
||
- Plugin declares API version, dependencies, permissions and migrations.
|
||
- User plugins cannot mutate production DB or original assets outside approved services.
|
||
|
||
## Best-practice gate
|
||
|
||
Plugin reload clean; undo/save/reload deterministic; long jobs do not block Editor; preview nodes disposable; every deployment reproducible headless; common scenarios require no manual SQL.
|