Add Movement library integration with comprehensive test environment: include Movement.csproj reference, create LibraryTest scene with player controller, multiple test areas (bunny hop platforms, surf ramps, vertical tower, speed corridor), advanced lighting setup, input mappings for WASD/gamepad movement controls, and DebugHUD integration
This commit is contained in:
255
Scenes/Testing/TEST_MAP_GUIDE.md
Normal file
255
Scenes/Testing/TEST_MAP_GUIDE.md
Normal file
@@ -0,0 +1,255 @@
|
||||
# Library Test Map Guide
|
||||
|
||||
This test map is designed to comprehensively test all movement mechanics from the EinSoftworks.Movement library.
|
||||
|
||||
## Map Layout
|
||||
|
||||
### Spawn Area (Center)
|
||||
- **Location**: (0, 2, 0)
|
||||
- **Purpose**: Starting point with clear view of all test areas
|
||||
- **Features**: Large open floor for basic movement testing
|
||||
|
||||
### Test Areas
|
||||
|
||||
#### 1. Stairs (Right Side - Position: 10, 0, -10)
|
||||
- **Purpose**: Test vertical movement and step climbing
|
||||
- **Features**: 4 steps, each 0.5m high
|
||||
- **Tests**:
|
||||
- Walking up stairs smoothly
|
||||
- Step height handling
|
||||
- Momentum preservation on steps
|
||||
- Crouch movement on stairs
|
||||
|
||||
#### 2. Jump Gap (Left Side - Position: -20, 0, 0)
|
||||
- **Purpose**: Test jump distance and height
|
||||
- **Features**: Two platforms with 12m gap between them
|
||||
- **Tests**:
|
||||
- Basic jump distance (should NOT be able to cross without sprint)
|
||||
- Sprint + jump distance (should be able to cross)
|
||||
- Landing mechanics
|
||||
- Edge detection
|
||||
|
||||
#### 3. Speed Test Corridor (Right Side - Position: 20, 0, 0)
|
||||
- **Purpose**: Test acceleration and max speed
|
||||
- **Features**: 20m long corridor with walls
|
||||
- **Tests**:
|
||||
- Acceleration from standstill
|
||||
- Time to reach max speed
|
||||
- Sprint speed comparison
|
||||
- Friction/deceleration when stopping
|
||||
|
||||
#### 4. Gentle Ramp (Right Front - Position: 15, 2, 0)
|
||||
- **Purpose**: Test slope movement
|
||||
- **Features**: ~30° incline ramp
|
||||
- **Tests**:
|
||||
- Walking up slopes
|
||||
- Sliding down slopes
|
||||
- Speed preservation on slopes
|
||||
- Basic surfing mechanics
|
||||
|
||||
#### 5. Steep Ramp (Left Back - Position: -15, 3, 10)
|
||||
- **Purpose**: Test steep slope handling and surfing
|
||||
- **Features**: 45° incline ramp
|
||||
- **Tests**:
|
||||
- Steep slope climbing
|
||||
- Advanced surfing
|
||||
- Speed gain on steep surfaces
|
||||
- Slope angle limits
|
||||
|
||||
#### 6. Original Platforms (Left Back - Positions: -10, 2, -10 and -10, 4, -20)
|
||||
- **Purpose**: Test vertical jumping and platforming
|
||||
- **Features**: Two platforms at different heights
|
||||
- **Tests**:
|
||||
- Single jump height (2m)
|
||||
- Double platform jumping
|
||||
- Precision landing
|
||||
- Air control
|
||||
|
||||
## Movement Testing Checklist
|
||||
|
||||
### Basic Movement
|
||||
- [ ] Walk forward/back/left/right smoothly
|
||||
- [ ] Diagonal movement works correctly
|
||||
- [ ] Stopping is responsive (friction works)
|
||||
- [ ] Movement speed feels appropriate
|
||||
|
||||
### Sprint
|
||||
- [ ] Sprint increases speed noticeably
|
||||
- [ ] Sprint + jump covers more distance
|
||||
- [ ] Can sprint in all directions
|
||||
- [ ] Sprint speed cap is working
|
||||
|
||||
### Jumping
|
||||
- [ ] Jump height is consistent (~1.5-2m)
|
||||
- [ ] Can jump while moving
|
||||
- [ ] Landing doesn't cause stutter
|
||||
- [ ] Jump cooldown works (if enabled)
|
||||
|
||||
### Crouching
|
||||
- [ ] Crouch reduces height
|
||||
- [ ] Crouch reduces speed
|
||||
- [ ] Can move while crouched
|
||||
- [ ] Can't stand up when blocked
|
||||
|
||||
### Air Control
|
||||
- [ ] Can change direction slightly in air
|
||||
- [ ] Air strafing works
|
||||
- [ ] Momentum is preserved
|
||||
- [ ] Gravity feels natural
|
||||
|
||||
### Stairs
|
||||
- [ ] Can walk up stairs smoothly
|
||||
- [ ] No stuttering on steps
|
||||
- [ ] Can jump up stairs
|
||||
- [ ] Can crouch on stairs
|
||||
|
||||
### Slopes
|
||||
- [ ] Can walk up gentle slopes
|
||||
- [ ] Slides down steep slopes appropriately
|
||||
- [ ] Surfing mechanics work
|
||||
- [ ] Speed changes on slopes feel right
|
||||
|
||||
### Bunny Hopping (if enabled)
|
||||
- [ ] Can chain jumps
|
||||
- [ ] Speed increases with successful hops
|
||||
- [ ] Direction control while hopping
|
||||
- [ ] Speed cap is enforced
|
||||
|
||||
## Recommended Movement Values
|
||||
|
||||
Based on testing, here are suggested value ranges:
|
||||
|
||||
### Speed Settings (m/s)
|
||||
```csharp
|
||||
MaxSpeed = 5f; // Base walking speed
|
||||
MaxSprintSpeed = 8f; // Sprint speed (1.6x walk)
|
||||
MaxWalkSpeed = 3f; // Slow walk
|
||||
MaxCrouchSpeed = 2f; // Crouch speed (0.4x walk)
|
||||
```
|
||||
|
||||
### Acceleration & Friction
|
||||
```csharp
|
||||
Acceleration = 8f; // How fast you reach max speed
|
||||
AirAcceleration = 2f; // Air control strength
|
||||
Friction = 6f; // How fast you stop
|
||||
StopSpeed = 1f; // Speed threshold for friction
|
||||
```
|
||||
|
||||
### Jump & Gravity
|
||||
```csharp
|
||||
JumpVelocity = 5f; // Initial jump speed (gives ~1.5m height)
|
||||
Gravity = 15f; // Downward acceleration
|
||||
```
|
||||
|
||||
## Testing Procedures
|
||||
|
||||
### 1. Basic Movement Test (2 minutes)
|
||||
1. Spawn in center
|
||||
2. Walk in all 8 directions
|
||||
3. Test stopping from full speed
|
||||
4. Try diagonal movement
|
||||
5. **Expected**: Smooth, responsive movement
|
||||
|
||||
### 2. Sprint Test (1 minute)
|
||||
1. Sprint forward in Speed Test Corridor
|
||||
2. Time how long to reach max speed
|
||||
3. Try sprint jumping
|
||||
4. **Expected**: Noticeable speed increase, ~1-2 seconds to max speed
|
||||
|
||||
### 3. Jump Test (3 minutes)
|
||||
1. Jump in place 5 times
|
||||
2. Jump while moving forward
|
||||
3. Try to cross Jump Gap without sprint (should fail)
|
||||
4. Sprint + jump across Jump Gap (should succeed)
|
||||
5. **Expected**: Consistent jump height, gap requires sprint
|
||||
|
||||
### 4. Stairs Test (2 minutes)
|
||||
1. Walk up stairs normally
|
||||
2. Sprint up stairs
|
||||
3. Jump up stairs
|
||||
4. Crouch on stairs
|
||||
5. **Expected**: Smooth climbing, no stuttering
|
||||
|
||||
### 5. Slope Test (3 minutes)
|
||||
1. Walk up Gentle Ramp
|
||||
2. Run down Gentle Ramp
|
||||
3. Try to walk up Steep Ramp
|
||||
4. Surf down Steep Ramp
|
||||
5. **Expected**: Can climb gentle, slides on steep, surfing works
|
||||
|
||||
### 6. Advanced Test (5 minutes)
|
||||
1. Try bunny hopping across main floor
|
||||
2. Test air strafing while jumping
|
||||
3. Try crouch jumping for extra height
|
||||
4. Test edge cases (corners, tight spaces)
|
||||
5. **Expected**: Advanced mechanics work as designed
|
||||
|
||||
## Tuning Guide
|
||||
|
||||
### Movement Feels Too Slow
|
||||
- Increase `MaxSpeed` and `MaxSprintSpeed`
|
||||
- Increase `Acceleration`
|
||||
- Decrease `Friction`
|
||||
|
||||
### Movement Feels Too Fast
|
||||
- Decrease `MaxSpeed` and `MaxSprintSpeed`
|
||||
- Decrease `Acceleration`
|
||||
- Increase `Friction`
|
||||
|
||||
### Can't Climb Stairs
|
||||
- Decrease `StepHeight` in config
|
||||
- Increase `Acceleration`
|
||||
- Check collision shape height
|
||||
|
||||
### Jumps Too High/Low
|
||||
- Adjust `JumpVelocity` (higher = higher jumps)
|
||||
- Adjust `Gravity` (higher = falls faster)
|
||||
- Test with: height = (JumpVelocity²) / (2 * Gravity)
|
||||
|
||||
### Slides Too Much
|
||||
- Increase `Friction`
|
||||
- Decrease `StopSpeed`
|
||||
- Check surface friction values
|
||||
|
||||
### Air Control Issues
|
||||
- Adjust `AirAcceleration` (higher = more control)
|
||||
- Adjust `AirSpeedCap` (limits air speed gain)
|
||||
- Check `AirControl` value
|
||||
|
||||
## Debug Commands
|
||||
|
||||
While testing, these debug outputs are helpful:
|
||||
|
||||
```csharp
|
||||
EnableDebugOutput = true; // Shows speed and state in console
|
||||
```
|
||||
|
||||
Watch for:
|
||||
- Speed values (should match expected ranges)
|
||||
- State transitions (idle → walking → airborne)
|
||||
- OnFloor status (true when grounded)
|
||||
|
||||
## Known Issues to Test For
|
||||
|
||||
1. **Stuck on edges**: Can player get stuck on platform edges?
|
||||
2. **Stair stuttering**: Does movement stutter when climbing stairs?
|
||||
3. **Slope sliding**: Does player slide uncontrollably on slopes?
|
||||
4. **Air control**: Can player change direction reasonably in air?
|
||||
5. **Speed capping**: Does bunny hopping break speed limits?
|
||||
6. **Crouch stuck**: Can player get stuck in crouch state?
|
||||
|
||||
## Performance Targets
|
||||
|
||||
- **FPS**: Maintain 60 FPS with debug output enabled
|
||||
- **Input Latency**: Movement should feel instant (<1 frame delay)
|
||||
- **State Transitions**: Should be smooth and immediate
|
||||
- **Physics**: No jittering or stuttering during normal movement
|
||||
|
||||
## Next Steps
|
||||
|
||||
After testing this map:
|
||||
1. Document any issues found
|
||||
2. Adjust movement values in `TestPlayer.cs`
|
||||
3. Test specific mechanics that felt off
|
||||
4. Create additional test scenarios if needed
|
||||
5. Consider adding visual markers (distance indicators, height markers)
|
||||
Reference in New Issue
Block a user