The speed cap conundrum -- Defrag
The potential methods for solving the bunnyhop balance problem are as follows when the player is breaching the cap:
Fixed reduction in speed
When a player breaches the cap, a fixed value is deducted from the player's velocity. E.g. 20 units per jump, regardless of class and velocity.
Pros: Very easy to analyse and predict the outcomes Cons: Probably won't provide a smooth transition from being just over the cap, nor will it quickly slow down players that are moving at speeds well in excess of the cap. Inflexible.
Proportional speed reduction
When a player breaches the cap, a variable value is removed that is proportional to the player's speed in relation to the cap. E.g. if a player is breaching the cap, remove 10% of their velocity. For a medic doing 600 units per second when jumping, this would remove 60 units. The next jump would be at ~540 units, so remove 54 units. Repeat until the player is under the cap. Under this system, the faster you're going, the more speed you lose. Breaching the cap slightly would result in a smaller penalty, whereas being miles over the cap would quickly retard the player's velocity.
Pros: Can be designed to deal with many scenarios. Players *just* breaching the cap can be slowed down by a fraction, whereas players well in excess of the cap can have their speed checked quickly.
A combination of many models. We could have several cases and algorithms for each potential event. E.g. one algorithm to run if the player's speed is over the cap, but under 200%. A second algorithm for speed being > 200 and < 300. A third algorithm to run if speed is > 300 and so on.
Pros: Flexible. We could tailor make it to handle every eventuality in a balanced and smooth fashion. Cons: Not very transparent to the player. Perhaps a little unpredictable if we do not fully understand the ramifications of doing something. More scope for bugs.