You have four choices for help: documentation, You can try asking on th the mailing list, the IRC channel, and Bugzilla. There is some great documentation for Linux users at the Linux Gamers' FAQ, and also at id's original page (though you should no-longer contact them for support). Windows users and Mac users should just Google their errors to check for preexisting solutions. You can try asking on the mailing list and IRC channel.. To file a bug report with Bugzilla, check out our Bugzilla website. Make sure that you check documentation, and read the Linux Gamers' FAQ before asking for help! Most questions people have are not unique!
Icculus.org/quake3 has introduced a number of new cvars and commands, mostly because of new features.
Cvar | Type | Description |
---|---|---|
cl_autoRecordDemo | Boolean | Record a new demo on each map change. |
cl_aviFrameRate | Integer | The framerate to use when capturing video. |
cl_aviMotionJpeg | Boolean | Use the mjpeg codec when capturing video. |
s_useOpenAL | Boolean | Use the OpenAL sound backend if it's available. |
s_alPrecache | Boolean | Cache OpenAL sounds before use. |
s_alGain | Float | The value of AL_GAIN for each source. |
s_alSources | Integer | The total number of sources (memory) to allocate. |
s_alDopplerFactor | Float | The value passed to alDopplerFactor(). |
s_alDopplerSpeed | Float | The value passed to alDopplerVelocity(). |
s_alMinDistance | Float | The value of AL_REFERENCE_DISTANCE for each source. |
s_alRolloff | Float | The value of AL_ROLLOFF_FACTOR for each source. |
s_alMaxSpeakerDistance | Float | ET_SPEAKERS beyond this distance are culled. |
s_alDriver | String | Which OpenAL library to use. |
s_sdlBits | Integer | SDL bit resolution. |
s_sdlSpeed | Integer | SDL sample rate. |
s_sdlChannels | Integer | SDL number of channels. |
s_sdlDevSamps | Integer | SDL DMA buffer size override. |
s_sdlMixSamps | Integer | SDL mix buffer size override. |
ttycon_ansicolor | Boolean | Enable the addition of ANSI escape codes for colors in the tty. |
r_GLlibCoolDownMsec | Integer | Wait for a number of milliseconds to close GL library. |
com_altivec | Boolean | Enable the use of Altivec on PowerPC systems. |
s_backend | RO String | Indicates the current sound backend. |
cl_consoleHistory | RO String | Stores the console history. |
cl_platformSensitivity | RO Float | Indicates the mouse input scaling. |
Command | Description |
---|---|
video <filename> | Start video capture (use with demo command). Outputs to filename. |
stopvidep | Stop the video capture. |
To force Q3 to use shared libraries instead of
QVMs run it with the following parameters:
+set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0
Copy demoq3/pak0.pk3 from the demo installer to your baseq3 directory. The QVM files in this pak0.pk3 will not work, so you have to use the native shared libraries or QVMs from this project. To use the new QVMs, they must be put into a .pk3 file. A pk3 file is just a zip file, so any compression tool that can create such files will work. The shared libraries should already be in the correct place.
Please bear in mind that you will not be able to play online using the demo data, nor is it something that we like to spend much time maintaining or supporting.
If you wish to compile external mods as shared libraries on a 64bit platform, and the mod source is derived from the id Q3 SDK, you will need to modify the interface code a little. Open the files ending in _syscalls.c and change every instance of int to intptr_t in the declaration of the syscall function pointer and the dllEntry function. Also find the vmMain function for each module (usually in cg_main.c, g_main.c, etc.) and similarly replace the return value in the prototype with intptr_t (arg0, arg1, ...stay int).
Add the following code snippet to q_shared.h:
#ifdef Q3_VM typedef int intptr_t; #else #include <stdint.h> #endifNote: if you simply wish to run mods on a 64bit platform you do not need to recompile anything since by default Q3 uses a virtual machine system.
If you're using this package to create mods for the last official release of Quake III, it is necessary to pass the command-line option -vq3 to your invocation of q3asm. This is because by default q3asm outputs an updated QVM format that is necessary to fix a bug involving the optimizing pass of the x86 vm JIT compiler. Read the web-forum post about this issue for more details.
If you've come up with an improvement or fixed something, we'd love to hear about it! Firstly, try to make sure that the patch breaks less than it fixes. We don't require everyone to be decorated Geniuses, but do attempt to produce a patch that you've tested and at list sort-of understand what you're doing.
The preferred way to get the ball rolling on a patch is to file a Bugzilla bug for your request with the patch attached to it and then send a notice to the mailing list about it. If you're really so lazy that you can't do this, we would prefer you at least mail it to zakk@icculus.org rather than not do anything at all.
Please make it clear if the patch you're submitting for inclusion isn't yours. Point
out where you found it and who authored it. This is so we know who to attribute
blame credit to.
If you know how to code, but never made a patch before, that's okay. Here's the 10ยข survival guide to generating patches.
If you checked the source code out with SVN, the client makes it rather easy to generate patches. In fact it's a function of the client itself. Once you've made a change in your checkout that is not upstream, here is how you use it:
If you didn't get the source code via SVN, or for some reason that doesn't work for your situations, here's how to generate them using the tried-and-trusted diff tool between two files:
For more information on diff, patch, and svn, read their respective man and info pages. For a more in-depth guide on Subversion take a look at the SVN Book.
This is literally the only frequenty asked question we get, and it's starting to wear on us. No, we will not be removing the CD-key check. The Quake III: Arena data is not free, and you must purchase a CD to play it! Don't let this confuse you, the engine is open source, and is absolutely 100% free. If someone makes a new game based on the source code that does not use the pay-for game data, they of course don't need to and should not require a CD key in their game.