- can someone with expertise shed some light on how do you go about figuring out how a game like quake 3 works
- now i know someone would say "just read the source code bro" but i am not a 3d game dev
- as a beginner, how do you wrap your head around a codebase as complicated as quake or something?
It really does boil down to 'just read the source code bro' but with more of a sense of direction to it.
Don't worry about understanding the entire codebase just yet. Instead, try to understand some specific parts of it to begin with. As you work with different bits of the code you'll gradually form a mental 'map' of how the whole thing fits together.
Start by trying making small changes, e.g. make the guns faster, or make the player jump higher. Look for where that code is that does that thing.
You might be taken on a bit of a journey, finding the definition of a function, then the function calls within that function and the variables passed to them, etc. - all the way along you'll be discovering how various other things are done within the game engine, and the general layout/structure of the codebase overall, as well as plenty of general programming concepts that will be useful anywhere.
Do this enough times and you'll gradually build a familiarity with the engine, and programming in general. Then if there's something you want to do that's in a part of the codebase you're not familiar with, you'll be more able to 'dive in' and find where it is in the code, and you'll be more confident that you can read code you're not familiar with it and be able to figure out what it does.
I can only speak from my experience from when I was just starting out learning to code (17 years ago!), adding and tweaking various features in Cube Engine and its sequel Sauerbraten, eventually moving onto Stepmania. Stepmania was a MUCH bigger codebase than Cube/Sauer (probably still not as big as Quake 3 though!) and the stuff I picked up modding those two was invaluable for working with Stepmania.
Download the source code, open it in Visual Studio Code (free), use AI tools like claude code and copilot to learn about it.