I've been trying very hard to perfect the movement mechanics today, which meant finding a good balance between player drag, dynamic friction, static friction, move speed, max speed, player mass and angular drag. As you can imagine, tweaking each variable will have an effect on the behaviour of others, so it's been very difficult to pinpoint the best balance. My optimal solution is one where the player does not slide much once they let go of a key, but one that doesn't require too much force to move the player, as this results in unresponsive and laggy movement. After much trial and error, I think I've found such a solution.
- Player Mass: 1
- Player Drag: 1.2
- Angular Drag: 0.2
- Dynamic Friction: 0.3
- Static Friction: 0
- Move Speed: 20
- Max Velocity: 5 (magnitude of velocity vectors, not actual speed)
This has also meant I've had to change the behaviour of some power-ups:
- Slow-motion power-up:
Max Velocity: 8
Time Scale: 0.4
- Fast power up:
Max Speed: 6.5
This has also meant changing how the ice affects the player:
- Player Drag: 0.01
- Player Mass: 0.3
- Dynamic Friction: 0.1
- Pressing the 'R' key will now restart the level, in the same way the restart button in the options menu does (bear in mind that this does increment the player death count).
- Removed camera lock option; it forced the player X & Z coordinates to be locked, which ruined core gameplay mechanics.
- Replaced camera lock with a 'High-Friction' toggle, which means the player will instead tumble and roll, instead of sliding. This is harder to control, but rather good fun.
- Tweaked the environment on 5 maps to improve gameplay.
- Increased the brightness in the 4th dimension.
- Cylinders in the 4th dimension will now work when the player is stationary.
- Tweaking the movement values has fixed 2 issues where moving in fast/slow mode caused the player to move in a choppy way, with jumps and leaps.
- Fixed sound glitch when timer runs out.
- Fixed menu glitch where the game complete menu could be removed if the game was paused when inspecting the options, after completing a level.
Thanks for reading!