Welcome to the (yep, you guessed it!) articles section. Our articles attempt
to de-mystify all the things about quake coding that are useful and cool to know.
The articles are quite hefty, and generally require you to do some thinking as well.
We've tried to write them with the assumption that you're new to Quake3 coding.
Each one covers the ground about a part of the code, but doesn't make
any real changes. They should help you get orientated so you
can be more confident about making changes yourself.
The best way to learn about quake3 coding is by browsing the code
The articles are contributions from the staff at PlanetQuake, and people from all over the Quake community.
Check out contributions,
submissions and PLEASE read our
Help!!! page also.
Grab a Jolt, sit back and enjoy. This one goes out to "Da PlanetQuake Massiv".
Article#1: "Entities" by SumFuka
Gets you up to speed on understanding how each item in the gameworld is represented
using an entity. Covers the entity number limit, as well as some do's and don'ts. Gives
an example of how entities "think"; and how clients are permanent entities.
Article#2: "Vectors" by SumFuka
Gives an explanation of vectors as used by Quake3 for position and movement. Starts
with the basics: the origin, the co-ordinate system, and how/why velocity is
"normalized" to the speed. Gives all the vector manipulation functions, and brings it
all together with an example.
Provides a basic orientation on the Quake 3 source files. Covers some of the coding
styles, and the limited C library available (no malloc!). Tries to suggest and encourage
good coding practice when making modifications. References for further reading.
Guides you through setting up and using the header files of a compiler other than MSVC++.
Encourages minimal modification of the source files. By the end of this article you should have
the bytecode for the virtual machine running.
Continues on from the previous article. Helps you build the binaries using the header files of
your compiler. Gives advice on how to package your changes with minimal changes to
the source code, and for distribution based here at Code3Arena.
An introduction to the custom menu system in the User Interface code.
It describes how the menu system works, some of the do's and don'ts of using menus,
and most of the details on how to setup a menu from scratch.
After reading this first part you should be able to look at the menu source
code with understanding.
A complete reference on how all seven controls are initialized and used.
When combined with the first part of this primer you should be able to
write your own menus using the standard controls.
Completes the menu primer series with a look at owner drawn controls, using a status bar,
and how to reduce the number of controls on a page. There's also a few hints and tips on
how to design good menus.
This article covers the diverse (but related) issues of Cvars, configuration strings,
console commands for the server or client, and scripting for the server. It
examines how the user interface, client, server, and executable interact
with each other as they give and handle commands, and pass data amongst themselves.
For those of you that want to develop Q3 projects using Metrowerks CodeWarrior
compiler and IDE, this article is for you!
It includes instructions for getting the source code compiling, an IDE project for
those of you who are lazy, and a plugin for CodeWarrior that assists with the code
With the new source code now out, this article covers the issues that have been found.
Workarounds and fixes are supplied where known.