I have created maps for Quake 3 in the past (look for MJDM2, DmeatSP01 and DmeatSP02 on Lvl) and now, after finishing my studies in graphic design / video game art, I'm really interrested in making my own games.
I allready did some programming in the past, in Flash and PHP, and I've studied some C++ by myself this summer. I'd like to use the Quake 3 engine in my projects, because it's quite solid technology, it's open source, it's free, and if someday I want to sell something I've done with it, I guess I can !
So yesterday, I've set up a "workspace", using the tutorial on the ioQuake3 wiki (I plan on using ioQ3). Good news, it compiled without any errors ! I even did a few first modifications, the basic rocket speed modification and deleting the rotation and bobbing of the portal camera.
My final objective in this self challenge to learn how to make different stuff with the engine is to make a Luftrauser clone with 3D gameplay. For that, I made a list of the first big challenges :
- 6 DoF player movement
- Looping environment
- Enemy planes !
I'll focus on the first point for the moment. I'll update the title later if needed

Here is a snapshot of the behaviour I'd like to achieve : https://www.youtube.com/watch?v=vWb9_5N91OE
Basicly, the trick is to have the X, Y and Z rotations for the player view, not only Y and Z. Moving the mouse up and down would make the player camera loog up and down FROM THE CURRENT ORIENTATION, and same with the left / right movement.
So, I have located some interresting functions in cl_input.c :
- CL_AdjustAngles // This functions seems to actually modify the values of the view angles with the input commands (&in_left, &in_right, &in_lookup, &in_lookdown)
- CL_MouseEvent // Seems to store the input coming from the mouse
- CL_MouseMove // At the end of the function, the YAW and the PITCH get modified
- CL_CreateCmd // Lines 594 to 599 at first looked like the PITCH limitations, but after thinking, I think it's just a security to prevent the rotation axis to overlay ... ?
Concerning the Client - Server relation, I think that data should be used server side, to manage, in the future, the orentation of the collision boxes.
But I'm afraid this won't be the only things to modify, and I might have to create new ones from scratch.
Has anyone worked on that subject ? Am I looking at the right things ? Will I have to re-write the definition of a player game entity ?
I have dozens of other questions in my mind about the rest of my "little" project, but I'll add them as I make some progress

Thanks for reading !