I'm sorry, I'm not an expert about coding. Waiting for better answers (e.g. by Sago007, main
gamecode programmer)...
I can tell you that the game sources are mainly divided into "engine" and "gamecode" -plus the "assets" (textures, models, maps, etc) of course-.
The engine is contained into the "executables" (binaries), and is derived from "ioquake3". Gamecode is the "game logic", and is the part about game rules and GUI, and is contained in "QVM" (Quake Virtual Machine), which is then packaged in .pk3 files. Gamecode is the part usually modified by mods. You may search for tutorials about creating MODs for
Quake III Arena or
ioquake3. Latest "beta" OpenArena gamecode is contained in "OAX" (OpenArena eXpanded), while you can download latest "official" gamecode -OA 0.8.8-
from here).
Here's a few links to start:
(
DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/Mod
(
DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/Coding_resources_%26_tutorials
(
DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/OAX
(
DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/Main_Page#Development