|
Home |
|
DefragMaps.com |
|
Chatroom |
|
FPS
Calculator |
|
|
 |
This article will attempt to explain why certain angles have to be used when
strafe jumping, and why strafe jumping is necessary in the first place.
Firstly, you should know that there is only one main difference
between standing and being airborne, and that is the friction of the
surface. Therefore if you are in contact with a surface and you stop
providing movement (i.e. release all keys) then the frictional force
will decelerate your movement to zero. In the air there is no friction,
and so as long as you are not in contact with another object, when you
release all keys your speed will remain constant.
I have made these cool diagrams to further patronise you:
Blue arrow line = direction of player
Red arrow line = resultant acceleration vector
Black arrow outline = direction key pressed
Dashed black line = direction of (existing) travel
Now if you are holding two keys simultaneously, the acceleration vectors will add together and produce a resultant like so:
However, the quake 3 engine limits your 'speed' to 320ups by the
server variable g_speed. Therefore holding two movement keys
simultaneously will not result in an increased speed, you will still
get 320ups but in the resultant direction.
So what happens if you are travelling through the air at 320ups (or
greater) and you hold the Forwards key (while facing the direction of
travel)? Nothing. Absolutely nothing. Why? Because the engine limits
the speed you can gain in each direction from using the movement keys
to 320ups, whether you are running or flying. So you have to use strafe
jumping to accelerate past 320ups.
Before I go any further, I will remind you of the following definitions to avoid confusion:
Vector = A quantity which has both a size and direction.
Velocity = A vector consisting of speed and direction of speed.
Acceleration = Rate of change of velocity with time. Therefore is a vector also.
OK, let's look at what happens when you are strafe jumping.
The first example is of standard single-beat strafing.
There are two air "modes" involved in single-beat strafing, one
being a mirror image of the other. In the left mode, the player is
orientated at an angle to the left of the direction of travel. We shall
call this angle theta (θ). At the same time, the player is holding Forwards and Left Strafe movement keys. This results in the following situation:
(in case you weren't paying attention earlier, the dashed black line is
the direction of travel, the blue arrow is the orientation of the
player, and the red arrow is the acceleration vector)
And similarly, the right mode is just the same, but the player faces to the right at angle theta and holds Forwards and Right Strafe movement keys. Notice the positions of the two acceleration vectors (red arrows).
To perform the strafe, the player quickly switches between modes
(called an "airchange") and continues alternating in this fashion by
airchanging at (usually) regular intervals, usually in time with a jump
(called a "bunnyhop").
Now keeping this in mind, let's look at the other distinctive
strafing technique: half-beat strafing. You will see that half-beat
strafing is actually the same thing as single-beat strafing, it's just
another way to perform it.
Like single-beat, there are two air modes in half-beat. For lack of
better terms, I shall name them "first mode" and "second mode".
The first mode is exactly the same as the "left mode" from single-beat:
The player is orientated at angle theta to the left of the direction of travel and is holding Forwards and Left Strafe keys.
The second mode appears a little strange at first. In this mode,
the player is orientated to the left of the direction of travel, but
only by a very small angle, which I have named angle lambda (λ). At the
same time, the player is holding Right Strafe only.
Now look back at the single-beat diagrams and compare them with these
half-beat diagrams. Look at the acceleration vectors (red arrows). What
do you notice? They are exactly the same! There is a red arrow to the
left in both the strafing techniques followed by one to the right.
Plus, these acceleration vectors are all at the same angle to the
direction of travel (use your imagination if necessary), almost at 90º,
but not quite.
Now lets look at why this angle of "almost 90º" is significant for our acceleration vector.
We already know that the engine won't allow a player to gain speed
in the direction of travel using the movement keys. However, we CAN
gain speed in another direction.
Let's break this acceleration into its components (using the "left
mode" as an example). There is a forward component in the same
direction as travel, plus one at 90º to the direction of travel:
Green arrow line = component of acceleration vector
We already know that the forward component is of no use to the
player, as it will be ignored, just as holding the Forwards key (while
facing the direction of travel) achieves nothing. The rest of the
acceleration is in the direction of the second component. As the
current speed in the direction of the second component is exactly 0ups,
the engine will allow the player to accelerate in that direction, until
the speed in that direction equals 320ups. The amount of acceleration
is dependent on the angle between the direction of travel and the
acceleration vector, which I have dubbed angle delta (δ).
The acceleration "a0" is defined by the engine (in the same way
that jump velocity and friction (etc.) are defined) and so is a
constant. As the value of the second component is given by (a0 * sin
δ), the larger the angle delta, the greater the acceleration, up until
90º.
This acceleration causes the current velocity to change and
produces a resultant velocity. Pythagoras' Theorem will show that the
resultant velocity is greater in magnitude than the current velocity,
and as speed is the magnitude of velocity, this means an increase in
speed. The change in direction also illustrates why strafe jumping can
cause the player to 'drift' to one side if the strafing is not
consistent.
Therefore for theoretical maximum acceleration, angle delta should
equal 90º. Therefore to achieve this, angle theta should equal 45º and
angle lambda should equal 0º.
Realistically angle delta should be very close to 90º, but not
quite 90º. This will help to avoid accidentally going over 90º. So the
angle theta should be close to, but less than, 45º, and angle lambda
should be small, but greater than 0º.
If angle delta exceeds 90º then the player will start to decelerate
as there will be acceleration in the direction opposite the direction
of travel.
But this can be a little misleading, and I'll explain why.
When strafing, your 'direction of travel' is constantly changing.
Each implementation of an air mode causes a change in direction, as
shown above. The path change looks something like this:
And so by combining several strafe jumps, the overall situation looks like this, with the player following the dashed lines:
Orange arrow = direction of overall motion
The angle phi (φ) is the overall change in direction between two
successive air modes. The orange arrow represents the overall direction
that the player will move in, over a longer-term consisting of several
bunnyhops.
As you can see, the angle phi is dependent on the current velocity. Angle phi is accurately given by the equation:
φ = arctan (320/v)
where v is the current velocity
We can graph this angle to illustrate how it changes with velocity.
As you can see, at lower velocities, there is a greater change in direction than at higher velocities.
Now when strafing, the player is often not aware of the zig-zag
path of alternating direcion of travel lines, and so it is difficult to
implement angles theta and lambda. It is more useful to a player to
know the angle they must use relative to the direction of overall
motion.
Therefore I have introduced two new angles. These are similar to
the angles theta and lambda, but have been corrected so they are
relative to the direction of overall motion.
The first angle I shall call angle epsilon (ε). This is the angle that the player must use in order to implement angle theta:
ε = θ - φ/2
If the optimal value of theta is 45º then the optimal value of epsilon is 45 - φ/2
For example, at 800ups, the value of angle epsilon is 34.1º
The second angle I shall call kappa (κ). This is the angle that the player must use in order to implement angle lambda:
κ = λ + φ/2
If the optimal value of lambda is 0º then the optimal value of kappa is φ/2
For example, at 800ups, the value of angle kappa is 10.9º
All this means that when you are strafing, as your speed increases,
angle epsilon should increase and angle kappa should decrease on
successive jumps.
In short, for single-beat strafing you should use an angle of about
29º initially, and increase this angle as you gain speed. The angle is
about 36º at 1000ups.
For half-beat, you should use the same angle as single-beat for the
first mode. For the second mode, use an angle of 16º initially,
decreasing with speed. It is about 9º at 1000ups.
FAQs
Q. What about circle jumps?
A. Same concept, only while in contact with the floor, rather than in
the air. You will get the highest running speed by moving in a perfect
circle. To achieve circular motion, at every point in time you must
have acceleration at 90º to the direction of travel. This requires a
smooth movement of the mouse to continually adjust to the changing
direction of travel.
Q. These Greek letters scare me.
A. Greek letters own you.
|
|