|
| 1 | +# PR_26152_267 Engine V2 / V1 Capability Inventory |
| 2 | + |
| 3 | +## Scope |
| 4 | + |
| 5 | +- Inventory existing `src/` and `src/engine/` capability families. |
| 6 | +- Inventory Engine V2 manifest-driven runtime capabilities already present under `src/engine/runtime`. |
| 7 | +- Map V1 capability families to V2 equivalents. |
| 8 | +- Identify reused, replaced, missing, and obsolete surfaces. |
| 9 | + |
| 10 | +## Capability Map |
| 11 | + |
| 12 | +| V1 / existing capability family | Representative existing surfaces | Engine V2 equivalent | Status | |
| 13 | +|---|---|---|---| |
| 14 | +| Core timing and engine loop | `src/engine/core/FixedTicker.js`, `FrameClock.js`, `Engine.js` | `runtimeTickLoop.js`, `runtimePlayableLoop.js`, `engineV2ConfigDrivenProofScene.js` | Replaced for V2 manifest runtime | |
| 15 | +| Object/entity model | `entity/`, `components/`, `ecs/World.js` | `objectDefinitionReader.js`, `runtimeObjectRecordFactory.js`, `runtimeObjectInstantiation.js` | Replaced by manifest object records | |
| 16 | +| Movement and physics | `systems/MovementSystem.js`, `physics/`, `systems/PhysicsSystem.js` | `runtimeMovementProcessing.js`, `runtimeTerrainEffects.js`, `runtimeEnvironmentEffects.js`, `engineV2ModifierStack.js` | Replaced/partitioned | |
| 17 | +| Collision | `collision/`, `systems/CollisionSystem.js`, `CollisionResolutionSystem.js` | `runtimeCollisionProcessing.js`, `runtimeTriggerProcessing.js` | Replaced for manifest flow | |
| 18 | +| Terrain/tilemap | `tilemap/`, tile collision helpers | `runtimeTerrainMaterialInstantiation.js`, `runtimeTerrainEffects.js` | Replaced conceptually; map authoring integration remains future | |
| 19 | +| Rendering | `rendering/CanvasRenderer.js`, `LayeredRenderSystem.js`, `SpriteRenderSystem.js`, `VectorDrawing.js` | `runtimeRenderingBootstrap.js`, `runtimeRenderPipeline.js`, `engineV2UiRuntime.js`, `engineV2EffectRuntime.js` | Partially replaced; reusable renderer helpers remain candidates | |
| 20 | +| Input | `input/`, `systems/InputControlSystem.js`, `InputMappingManifest.js` | `runtimeInputPipeline.js` | Adapted conceptually | |
| 21 | +| Camera | `camera/CameraSystem.js`, `Camera2D.js`, `ZoneCameraSystem.js` | `engineV2CameraRuntime.js` | Replaced/adapted | |
| 22 | +| Audio | `audio/AudioService.js`, media/synth/MIDI helpers | `engineV2AudioRuntime.js` | Adapted; low-level audio helpers remain reusable candidates | |
| 23 | +| Animation/effects | `animation/AnimationController.js`, `fx/ParticleSystem.js` | `engineV2AnimationRuntime.js`, `engineV2EffectRuntime.js` | Replaced/adapted | |
| 24 | +| AI/pathfinding | `ai/PatrolSystem.js`, `SteeringBehaviors.js`, `GridPathfinding.js` | `engineV2PatrolBehavior.js`, `engineV2ChaseFleeBehavior.js`, `engineV2PathfindingBaseline.js` | Adapted | |
| 25 | +| Combat | `combat/Combat.js`, projectile and collision systems | `engineV2AbilitySystem.js`, `engineV2ProjectileSystem.js`, `engineV2StatusEffectSystem.js`, `engineV2WeaponSystem.js`, runtime health/damage/cooldown/lives/outcomes | Replaced | |
| 26 | +| Possession/economy | Existing item/economy behavior is scattered or tool-owned | `engineV2InventorySystem.js`, `engineV2EquipmentSystem.js`, `engineV2ItemAndLootSystem.js`, `engineV2EconomyAndCurrency.js` | Added in V2 | |
| 27 | +| Interaction/quests/dialogue | `interaction/InteractionSystem.js`, `world/QuestSystem.js`, `world/SpawnSystem.js`, `world/EventScriptSystem.js` | `engineV2InteractionSystem.js`, `engineV2ContainerSystem.js`, `engineV2VendorSystem.js`, `engineV2CraftingFoundation.js`, `engineV2ObjectiveSystem.js`, `engineV2QuestSystem.js`, `engineV2DialogueSystem.js` | Replaced | |
| 28 | +| Persistence/save state | `persistence/`, `WorldSerializer.js`, browser storage services | `engineV2SaveStateModel.js`, `engineV2PersistenceRuntime.js`, `engineV2CheckpointSystem.js`, `engineV2ProfileStateSystem.js`, new shared Project Data Store contract | Partially replaced; browser storage is not authoritative | |
| 29 | +| Custom code/extensions | Earlier user-facing Code Studio concept | `engineV2CustomExtensionsHookRuntime.js` with Custom Extensions lifecycle/boundary | Replaced user-facing concept | |
| 30 | +| Networking/multiplayer | `network/` server/client/transport/debug surfaces | Engine V2 multiplayer boundary only | Future, not missing for initial Toolbox rebuild | |
| 31 | +| Debug/automation/replay/security/release | `debug/`, `automation/`, `replay/`, `security/`, `release/` | No direct V2 gameplay equivalent yet | Future/optional depending lane | |
| 32 | +| Theme/UI shell | `src/engine/theme`, `src/engine/ui` | Not Engine V2 gameplay runtime; remains separate surface | Reused/unchanged | |
| 33 | + |
| 34 | +## Inventory Result |
| 35 | + |
| 36 | +- Reused/adapted: input mapping concepts, audio helpers, camera concepts, AI/pathfinding concepts, render helper candidates. |
| 37 | +- Replaced: hard-coded object, movement, collision, rule, interaction, combat, objective, quest, dialogue, save/load, and proof-scene behavior now has manifest-driven V2 slices. |
| 38 | +- Missing/future: full networking, debug tooling integration, real database adapter, auth/admin/publish UI integration, deeper asset loading/binding integration. |
| 39 | +- Obsolete for V2 readiness: browser storage as authoritative project state, sample-dependent runtime validation, hard-coded game behavior, and user-facing Code Studio naming. |
| 40 | + |
| 41 | +## Validation |
| 42 | + |
| 43 | +- PASS: static capability inventory completed from existing `src/`, `src/engine/`, and Engine V2 runtime surfaces. |
| 44 | +- PASS: `git diff --check` |
| 45 | + |
| 46 | +## Scope Exclusions |
| 47 | + |
| 48 | +- No Toolbox rebuild. |
| 49 | +- No samples. |
| 50 | +- No runtime implementation changes for missing V1 capabilities. |
0 commit comments