Add comprehensive Phase 6 documentation and testing artifacts: a high-level PHASES-1-6 summary, a Phase 6 quick-start checklist, and a detailed Phase 6 testing & iteration guide. Also append a Phase 6 entry to docs/dev-log.md describing the testing framework, test cases (including the critical velocity→animation test), success criteria, and next steps for in-game validation. These docs prepare the repo for Phase 6 in-game testing and outline debugging, performance benchmarks, and iteration procedures.
5.0 KiB
5.0 KiB
Phase 6 Quick Start Checklist
Before You Start
- All Phases 1-5 code committed to git
- F4T plugin builds without errors
- F4SE installed in Fallout 4
- Server relay running (
python server/server.py) - Ready to launch Fallout 4 with F4SE
Test Execution Order
Critical Path (30 minutes)
-
[5 min] Test 1: Proxy Spawning
- Start game, load F4TTestCell01
- Connect fake client
- Proxy appears near player
- No crashes
- Result: PASS / FAIL
-
[5 min] Test 2: Movement
- Move fake client position
- Proxy smoothly moves to new position
- No jittering/snapping
- Result: PASS / FAIL
-
[10 min] TEST 3 - CRITICAL: Animations
- Fake client: stand still → should see idle
- Fake client: walk speed → should see walk animation
- Fake client: run speed → should see run animation
- Fake client: sprint speed → should see sprint animation
- At least idle/walk/run animations visible
- Result: PASS / FAIL / PARTIAL
- If FAIL: Debug with console logs
-
[5 min] Test 4: Sneak
- Fake client: activate sneak
- Proxy crouches
- Result: PASS / FAIL / PARTIAL
-
[5 min] Test 5: Multiple Proxies
- Connect 3 fake clients (3 proxies total)
- All moving simultaneously
- All animate correctly
- No crashes
- Result: PASS / FAIL
If Test 3 FAILS (Animations not playing)
Debug Checklist (10 minutes):
-
Check console logs for velocity being set
- Search:
ApplyRuntimeProxyTransform - Should show character controller access
- Search:
-
Check animation graph manager available
- Search:
animation graph manager - Should NOT show "unavailable" messages
- Search:
-
Check actor state flags
- Search:
flags1= - Should show valid hex values
- Search:
-
Check Speed variable is changing
- Search:
graphSpeed= - Should see values > 0 when moving
- Search:
-
Manual test: Set Speed directly in console
- If manual setting works → indices correct, velocity issue
- If manual setting doesn't work → index problem
If still failing: Document issue and proceed to Phase 6.3 iteration
Key Logging Commands
View Real-Time Logs
# In separate terminal, tail latest logs
Get-Content "Documents\My Games\Fallout4\Logs\*.log" -Wait
Search Logs for Specific Info
# Proxy spawn
Select-String "SpawnDynamicProxyActor" (Get-ChildItem "Documents\My Games\Fallout4\Logs\*")
# Animations
Select-String "animation sync" (Get-ChildItem "Documents\My Games\Fallout4\Logs\*")
# Errors
Select-String "WARNING\|ERROR" (Get-ChildItem "Documents\My Games\Fallout4\Logs\*")
Expected Console Log Patterns
Good (Animations Working)
[Local Player ID: 0] SpawnDynamicProxyActor: Spawned proxy actor 0xABCD1234 for remote player 1
[Local Player ID: 0] Assigned dynamically spawned proxy 0xABCD1234 to remote player 1
[Local Player ID: 0] First smoothed runtime proxy movement for remote player 1: actor=0xABCD1234, alpha=0.15
[Local Player ID: 0] ApplyRuntimeProxyTransform: Proxy 0xABCD1234 has AIProcess: true
[Local Player ID: 0] Runtime proxy animation sync initial for remote player 1: moving=true, sprinting=false, graphSpeed=55.0
Bad (Animations NOT Working)
[Local Player ID: 0] animation graph manager unavailable
[Local Player ID: 0] Failed to load animation variables for remote player 1
[Local Player ID: 0] Proxy 0xABCD1234 has NO AIProcess
Performance Expectations
| Metric | Expected | Alert If |
|---|---|---|
| Proxy spawn time | < 500ms | > 1 second |
| Per-proxy update | < 1ms | > 5ms |
| Frame rate | 60+ fps | < 30 fps with 1 proxy |
| Animation smooth | No stutter | Visible jitter |
Results Template
Copy this after testing:
## Phase 6 Test Results - [DATE]
### Tests
- Test 1 (Spawning): PASS / FAIL
- Test 2 (Movement): PASS / FAIL
- Test 3 (Animations): PASS / FAIL / PARTIAL
- Test 4 (Sneak): PASS / FAIL / PARTIAL
- Test 5 (Multiple): PASS / FAIL
### Issues Found
1. <Issue>
- Severity: Critical / Major / Minor
- Fix: <action needed>
### Next Action
- [ ] PASS ALL → Proceed to Phase 7
- [ ] PARTIAL → Iterate Phase 6.3 (tune)
- [ ] FAIL → Debug and retest
Common Fixes
Animations not playing
- Try: Increase velocity scale (multiply by 1.2x)
- Try: Check animation variable indices in F4AnimationDescriptor
- Try: Enable debug logging for Speed variable
Proxy doesn't move smoothly
- Try: Reduce lerp alpha (currently 0.15)
- Try: Increase update frequency (more network packets)
- Try: Check for network lag
Multiple proxies crash
- Try: Reduce from 4 to 2 proxies
- Try: Check for memory leaks in action queue
- Try: Verify proxy pool cleanup on disconnect
Success = All PASS
When you see:
- ✅ Proxy spawns
- ✅ Proxy moves smoothly
- ✅ Proxy animates (idle/walk/run/sprint)
- ✅ Multiple proxies work
- ✅ No crashes
Then Phase 6 is COMPLETE and Phase 7 ready!