I am doing a bit of research for a project about air acceleration in the quake engine. I have a question about the names of the variables and their definitions. The code that I am looking at is

https://github.com/id-Software/Quake-III-Arena/blob/dbe4ddb10315479fc00086f08e25d968b4b43c49/code/game/bg_pmove.c starting on line 235, PM_Accelerate and flafla2's writeup http://flafla2.github.io/2015/02/14/bunnyhop.html , specifically the part where he shows his code. Section "Putting it All Together"

What I currently (think I) understand is this.

wishdir is the direction that the player will move, this is found by a combination of the movement keys and player's mouse movement.

I am not sure what wishspeed is

accel is the user defined acceleration value

addspeed is the difference between the untruncuated future velocity value and the current speed

accelspeed is the acceleration that will be added to the current velocity

currentspeed is obviously the player's current speed at the time of the check.

Is quake engine's wishdir flafla2's acceldir? The max velocity value limits the projection of velocity unto acceleration plus acceleration?


I'm beginning to understand the engine more and more after more concentrated studying of the engine. But I have two major problems/questions, that if answered, will make me extremely happy.

How exactly is wishdir calculated, and what is wishspeed/wishvel (and how is it calculated as well). I've looked around but haven't had much succesess with finding any useful information. Thanks in advance.


It appears that I have finally found wishdir, it was under my nose the whole time.

wishdir is created when you do the function VectorCopy (wishvel, wishdir);

FORCEINLINE void VectorCopy( const Vector& src, Vector& dst )

    dst.x = src.x;
    dst.y = src.y;
    dst.z = src.z;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.