Also, having so much air time (more than 2 seconds) easily attainable complicates a lot the level design, as:
- Boost jumping with highspeed will make the player skip big parts of the level.
- Not Boost jumping at highspeed will make have to go through a lot of stuff avoidable by jumping.
- Level design becomes very complicate as we have to deal with really high values.
- Refocus the game from tricks to platforming: Tricks are a nice gimmick, but they force too many sacrifices in level design.
- Choose a standard distance and balance all movement magnitudes around it.
- Give the player more movement options, specially in the x-axis. This way more obstacles can be successfully included.
Turbo charge
We will include an energy charge button. When pressing it, the player´s speed will decrease until it reaches a minimum while accumulating energy. When releasing the button, the accumulated energy will be used to unleash a turbo. A minimum threshold is necessary, so players must charge for some time before the turbo is ready. If the player doesn´t charge enough energy for a turbo, this energy is lost as the player accelerates back to max speed, so consecutive short activations of the brake can add up to a turbo. Also, after releasing a turbo it can easily be cancelled by a single tap of the charge button
This system will allow the player to wait when some obstacles appear and choose for the right moment to unleash the turbo to pass them. The maxTurbo speed will be a bit greater than the speed the player had before braking, so if the player unleashes the turbo the exact moment it charges the overall will be slightly better than not using a turbo. This also allows for a high level tactic.
if (Input.GetKey("")){
charge = [charge + chargeSp, 0, maxCharge];
} else{
if (charge > chargeThreshold){
unleashTurbo(charge);
charge = 0;
}else{
charge = (charge-ChargeDec, 0, charge);
}
}
Speed Level system overhaul
The Speed Level system will change slightly: now using the trick button successfully in any situation will add points the level gauge. Examples:
- Boost Jumping
- Grabbing a speed line
- Disarming a trap
However, filling up the bar won´t give a free turbo. Instead, these points will also be added to the new turbo gauge. Once it´s filled to the top the player can do an instant turbo by taping the charge button.
Standard distances
The standard unit will be 1 unit.
The standard jumping distances will be:
| Speed Level | Normal Jump | Boost Jump |
| 0 | X<1 | 1<X<2 |
| 1 | 1<X<2 | 2<X<3 |
| 2 | 1<X<2 | 3<X<4 |
| 3 | 2<X<3 | 3<X<4 |
The standard jumping heights will be:
| Speed Level | Normal Jump | Boost Jump |
| 0 | X<1 | 1<X<2 |
| 1 | X<1 | 1<X<2 |
| 2 | X<1 | 2<X<3 |
| 3 | X<1 | 2<X<3 |
When Boost Jumping the player will also get a small temporary boost in xSpeed:
if (turboBoostJumpOn){
if (currentSpeed + boosJumptTurboIncr < currentSpeed + boostJumpTurbo)
currentSpeed += boostJumpTurboIncr;
else{
currentSpeed = currentSpeed + boostJumpTurbo;
turboBoostJumpOn = false;
}
}else{
if (currentSpeed - boostJumpTurboDec > maxSpeed[currentSpeedLevel]){
currentSpeed -= boostJumpTurboDec;
}else currentSpeed = maxSpeed[currentSpeedLevel];
}
boostJumpTurboIncr > boostJumpTurboDec, so it accelerates faster than it deccelerates.
This must be taking into account when adjusting the values of the movement parameters.
y = y0+v0*t-0.5*g*t^2
t = (-v0+/-sqrt(v0^2-4*y0*(-0.5*g))/(2*-0.5*g)
D = t*xSp
Ramp Height = y0
Ramp Length = 2*Ramp Height
Standard ramp:
RH = 0.5
RL = 1
A realistic system with gravity doesn´t seem to be able to allow the jumps we want to make, so we´ll use a different system instead inspired by SMW. ump divided in 3 phases with constant speeds:
- Rising: ySp>0.
- Hanging: ySp=0 (3-4 frames? Maybe 6-8 in 60fps?).
- Falling: ySp<0.
This way we can manually control the speed height and better adjust the horizontal speed.
No hay comentarios:
Publicar un comentario