# 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)