Quake
3 Arena tweak guide
Posted
by Thomas McGuire on
March 20, 2000
Troubleshooting
Begin
by downloading the latest patch for Quake 3; you can find the latest Quake 3
patch from Fileplanet
for Linux, Mac & Windows. These contain many fixes/optimizations over the
initial retail version. This guide is based on the 1.16n point release patch.
It
is highly recommended that after installing the latest patch you start with a clean
q3config.cfg. You can do this by simply deleting your current one, next
time you load Quake 3 a new config will be built with default settings.
Next
download the latest drivers for your video card & soundcard. This may solve
(some) display or audio problems you might encounter. This is particularly
important for 3dfx card owners. If you own a 3dfx card you might also want to
consider downloading WickedGL
for better performance. There are links to various manufacturers on the Drivers
page.
If
you are using an Intellimouse you’ll also need to install the latest drivers.
You can get them from Microsoft.
If
you experience any lockups & such they might
be caused by overclocking, if so try reducing the clock speed of the overclocked
device. Quake 3 can be quite sensitive to overclocking.
Mods
Quake
3 mods will generally have their own sub directory & their own config
file. You may need to make changes in these other config files if you want to
use them when playing the Mod.
System
setup
This
guide contains some modified settings
from, The Engineering Room. You
should check out this site for a complete
listing of all console commands & cvars.
First
load up Quake 3 & set your Graphics,
Display, Sound & Network
preferences. NOTE – The tweaks below can be either changed in your q3config.cfg
or you can use them in your own autoexec.cfg
(it doesn’t have to be named autoexec, but it must end in .cfg). To load your custom autoexec.cfg
load up Quake 3, bring down the console & type /exec autoexec.cfg & press enter.

GL
Extensions,
set this to On to improve
performance.
Video
mode,
select a lower resolution (800*600 or 640*480) when playing online. Graphics may
be slightly less appealing, but it will run better, which is more important.
Color
depth,
set this to 16bit when playing online
to improve performance. In single player you can set it to 32bit for improved visual quality (only if your card supports 32 bit
color).
Fullscreen,
set this to On.
Lighting,
set this to Lightmap for better lighting effects. Set it to Vertex
to improve performance at the cost of image quality. GeForce cards reportedly
perform better when set to Lightmap.
Geometry
detail,
the higher the detail the lower the performance. The higher the setting the more
curved arches appear in maps.
Texture
detail,
as above - the higher the detail the lower the performance, the better the image
quality, but slower performance.
Texture
quality,
set this to 32 bit for best image
quality & 16 bit for improved
performance. Again, your video card must support 32-bit rendering. With Voodoo3
you can enable 32 bit textures for
better image quality. Color depth must still be set to 16 bit though.
Texture
filter,
Trilinear will give the best image
quality but take up a few MB’s of your graphics card memory. Quake 3 uses a lot
of textures; as such I’d recommend you set this to Bilinear.
This will free up some video memory for all these textures. If you are using a
32MB+ plus graphics card you might be able to set this to Trilinear &
enjoy the better image quality. Although even then some maps use over 32MB of
texture memory.
Now
go into the Game options section.

Simple
items,
sets whether or not items will be 3dmodels or 2dsprites. Turning it off will
improve performance slightly.
Marks
on walls,
see the seta cg_marks "x"
setting.
Eject
brass,
see the seta cg_brassTime "x"
setting for more detailed information.
Dynamic
lights,
see the seta r_dynamiclight "x"
setting for more detailed information.
Identify
target,
set this to On it will help when
playing online.
High
quality sky,
see the seta r_fastsky "x”
setting for more detailed information.
Sync
every frame,
see the seta r_swapInterval "x"
setting for more detailed information.
Force
player models, see
the seta cg_forceModel "x"
setting for more detailed information.
Draw
team overlay,
use this to allow the display of the location of team members if team-based
games, which is fairly useful in those type of games.
Automatic
downloading,
see the seta cl_allowDownload
"x" setting for more detailed information.
General
config tweaks
Once
you’ve all your basic settings chosen open your q3config.cfg (located in C:\QuakeIII Arena\baseq3\q3config.cfg)
using
Notepad & add/edit the
following lines.
seta
com_hunkMegs "x",
you can use this to set the amount of memory available to Quake 3. A general
guideline to setting this value would be 2/3 RAM. Keep in mind Windows needs
about 16MB RAM to run. You should also have closed
all other programs before running Quake 3.
seta
m_filter “x”,
set this to 1 to enable mouse
filtering. This will average out mouse movements resulting in much smoother
scrolling. A setting of 0 disables
the filter. I’d high recommend enabling this.
seta
in_joystick "x",
you won’t be using a joystick to play Quake 3 so set this to 0.
If you are, set it to 1. Mouse &
keyboard is by far the better way to play though.
seta
r_finish “x”,
setting x to 1 may eliminate lag from input devices (such as keyboard/mouse) at
the cost of a few FPS. The default is 0
so only change it to 1 if you experience any controller lag. This ensures proper
timing.
seta cg_autoswitch
"x", set this to 0
to disable auto switching of collected weapons. This setting won’t affect
performance, but I’m sure no-one wants to switch from the Rocket launcher to a
shotgun just because they walked over it.
seta
cg_drawRewards "x",
a value of 1 enables the Announcer
awards to be played during the game, e.g. “Impressive”. A setting of 0
will disable these during the game (they are announced at the end of the map
still though). I’d recommend setting this to 1,
that way you won’t feel too bad when eventually get gibed.
bot_fastchat
“x”,
a value of 0 turns off the pre-recorded phrases that the bots use. E.g.
"Awww yeah!" is used by Anarki.
bot_nochat
“x”,
a value of 1 disables the frequent chatting that bots partake in during a
game. Performance improvements may be negligible, but you don’t really read
what they have to say do you?
Graphics
Open
your q3config.cfg. This is where most
changes will need to be made.
Search
for the following lines & edit the x value
as appropriate;
seta
cg_drawfps “x”,
a value of 1 will display a small counter on the screen showing your
current frame rate. This may help you in tweaking your game for the best
performance/image quality trade off.
seta
cg_gibs "x",
set this to 1 to enable the drawing
of gibs when you, errrrr, gib someone. Set it to 0 if you want to improve performance a little (only will take effect
when someone in your view is gibbed).
seta
com_blood "x",
much like the above setting 1 enables
blood splatter to be drawn. 0 will
disable blood being shown in the game.
seta
cg_marks "x",
set this to 1 to enable marks on the
ground/walls being displayed. A setting of 0
may improve performance a little. Although this is somewhat dependant on how bad
your aim is. I’d recommend setting this to 0 for online play.
seta
r_smp “x”,
use a value of 1 to enable support
for multiple processors, Quake 3 Arena
does have support for multiprocessors (SMP). In order to get the benefits from
SMP, you must be running Windows NT 4.0 (or Linux/Windows 2000 I assume) &
have a compatible video card and driver combination. Right now, The Detonator
drivers for the TNT and GeForce generation of cards are the only ones that are
working properly. Leave it at 0
otherwise.
seta
r_texturemode "x",
valid entries are GL_NEAREST_MIPMAP_NEAREST
(worst),
GL_LINEAR_MIPMAP_NEAREST
(default),
GL_NEAREST_MIPMAP_LINEAR
(second best),
GL_LINEAR_MIPMAP_LINEAR
(best).
Setting
it to GL_LINEAR_MIPMAP_LINEAR will
give best visual quality. Setting it to the other settings will improve
performance, but give increasingly worse image quality.
seta
r_fastsky "x",
a setting of 1 will remove the sky
texture & portals won’t be seen through. I’d recommend leaving this set
to 0 unless you’re on a really slow
system.
seta
r_drawSun "x",
a setting of 1 enables the sun to be
drawn. It won’t improve performance much if set to 0 although it will add a little to lighting calculations in areas
where the sun shines. I suggest leaving it set to 1 as most maps will be played “in-doors” or have few areas with
sunlight.
seta
r_dynamiclight "x",
a setting of 1 will enable the
dynamic lighting of maps, e.g. the light surrounding an explosion. Improve
performance by setting this to 0.
seta
r_detailtextures "x",
set this to 1 to will improve texture
quality when up close. Setting it to 0 will improve performance.
seta
r_swapInterval "x",
this is the Quake3 equivalent of vsync. Set it to 1 to enable vsync (recommended). Only set it to 0
when you are benchmarking game performance.
seta
r_ext_compress_textures "x",
set this to 0 to disable texture
compression support. This is only for S3TC textures so if you have an S3 card
(Savage 3, 4 & 2000) or the 5.08 nVidia drivers for your TNT1\2\GeForce you
should set this to 1.
seta
r_picmip "x",
a setting of 0 gives best image
quality. Setting it higher (up to 2) may improve performance but reduce image
quality. I’d recommend leaving this at either 0 or 1.
seta
cg_brassTime "x",
this sets the amount of time that ammo casings stay visible, the default is
1250. A setting of 0 disables this
& will improve performance a little. I’d
recommend doing this for online play, unless you like to see spent ammo on the
ground for no useful reason.
seta
cg_shadows "x",
a setting of 0 disables shadows
(recommended). 1 enables simple
circular shadows. 2 will enable
volumetric shadows. Enabling shadows will reduce performance.
|
|
seta
r_stencilbits "x",
if you enabled Volumetric shadows above then you’ll want to set this to 8.
NOTE – Your graphics card must have a stencil buffer to do this, e.g. TNT2 or
GeForce. Voodoo3 does not.
seta
cg_forceModel "x",
setting this to 1 forces all players
to use the same model. This will improve performance, although there’ll be no
way to distinguish between players. I’d recommend leaving this at 0
unless you are desperate for a performance boost.
seta
cg_draw3dIcons "x",
set this to 1.
seta
r_ext_multitexture "x",
set it to 1 to enable
multi-texturing, this can improve performance. 0 will disable it.
seta
cg_thirdperson "x",
give it a value of 1 to enable the
behind view. This is only recommended if you just want to play around/experiment
with it. Stick with first person view mode when you’re playing for real.
seta
cg_noplayeranims "x",
a value of 1 will disable the
animation of player models. This will of course improve performance but look extremely
weird. I recommend leaving this at 0
unless you want to see stiff models sliding along the ground.
seta
cg_draw2D "x",
give this a value of 1 to enable 2d
items to be drawn. Items such as the HUD would fall into this category so leave
this enabled.
seta
cg_drawCrosshair "x",
a value of 0 will remove the crosshair, which will make making more difficult.
Leave this setting alone.
seta
cg_drawCrosshairNames "x",
set this to 1 to allow the name of
the targeted person to appear. 0 will
disable this.
seta
r_colorbits "x",
use this to set the color depth. Leave it at 16 unless you have a card that supports 32-bit color output. Performance is slower in 32bit than 16bit
however. So when you play online be sure to drop this back to 16.
seta
r_depthbits "x",
this is similar to the setting below.
seta
r_texturebits "x",
sets the bits per texture. A value of 8
being 256color, 16 for 16bit color
& 32 for 32bit color. Set this to
8 if you need a big performance boost. 32
will give best texture quality.
seta
r_gamma "x",
default is 1. Increase this to make
the game brighter. The brighter the visuals the more washed out the textures
will look. Adjust this to suit your own needs, performance isn’t affected
either way.
seta
r_overBrightBits "x",
default is 1. Increase this to make
the game brighter. The brighter the visuals the more washed out the textures
will look. Adjust this to suit your own needs, performance isn’t affected
either way.
seta
cg_drawGun "x",
set this to 1 to enable weapons to be
shown on your screen. A setting of 1
will improve FPS but no weapon will be drawn. Visibility will improve a little
with this but you’ll want to know what weapon you have. I’d recommend
leaving this set to 1.
seta
r_vertexLight "x",
set this to 0 if you’ve enabled
Lightmap lighting. Setting it to 1
will enable Vertex lighting, which is faster but uglier.
seta
r_nocurves "x",
set this to 1 to disable curves &
vastly improve performance. You may notice visual faults in maps though as a
result. I’d recommend setting it to 0.
seta
r_lodbias "x",
this controls the detail level in maps. Increase the value to improve
performance but reduce detail. Lower the value to increase but lower
performance. 0 is the lowest it may
be set. I’d recommend leaving it at
the default of 1. 2
is the least detailed but also the fastest.
seta
r_subdivisions "x",
use this to set how complex (rounded) the curves will be in maps. A setting of 1
gives the most detailed (smooth) curves. A setting of 999
gives the least smooth curves but improved performance. You should play around
with this value for yourself until you find a good balance between performance
& detail.
seta
cg_zoomfov "x",
use this to set how much you can zoom in. The default is 22.5. You should play
with this setting until you find a suitable level of zoom.
seta
com_introplayed "x",
a value of 1 means that the Intro
(with Sarge) is played everytime you load up Quake3. Give it a value of 0
to disable it being played.
seta
cg_bobup "0.00x",
this setting determines how much you bob up while moving. Leave it at the
default value or 0 to remove the
movement.
seta
cg_bobpitch "0.00x",
this setting determines your pitch up while moving. Leave it at the default
value or 0 to remove the movement.
seta
cg_bobroll "0.00x",
this setting determines how much you roll back & forth while moving. Leave
it at the default value or 0 to remove the movement.
seta
cg_runpitch "0.00x",
this setting determines your pitch while running. Leave it at the default value
or 0 to remove the movement.
seta
cg_runroll "0.00x",
this setting determines how much you roll back & forth while running. Leave
it at the default value or 0 to remove the movement.
The
above 5 settings may help those of you that get motion sick (like myself). It
will also make aiming/shooting a target while you are moving a little bit
easier.
Make
sure to take a look at the TNT\GeForce
tweaking guide or Voodoo3
tweaking guide for information on how to optimize the performance of those
cards. That may help you improve image quality/performance even further than the
q3config.cfg tweaks.

|
|
Audio
Open
your q3config.cfg. Search for the
following lines & add/edit the x values as appropriate:
seta
s_khz "x",
set to 22 for best sound quality. Set
it to 11 for better performance, you
should only change it to this if you have an old soundcard (ISA).
s_loadas8bit
“x”,
set this to 0 to improve audio quality. A setting of 1 may improve performance a little but reduce audio quality.
seta
s_musicvolume "x",
set to 0 to disable playing music in
Quake3. This will of course improve performance & I’d highly recommend
doing that. Especially when you’re going to play online.
seta
s_volume "x",
use values from 0 to 1
to increase/decrease in-game volume. Use your own discretion for this of course.
1 is the maximum, 0 will
mute the game.
seta
s_doppler "x",
leave this at the default setting, which is 1.
seta
s_occfactor "x",
leave this setting at the default setting, which is 0.5.
If
you have a SoundBlaster
Live Platinum card (as I do) or other non-A3D2+ capable card then you
in order to get A3D support you’ll need to download the A2D
drivers from Aureal. You can now enable
A3D support in Quake 3’s audio menu. NOTE
– I don’t recommend doing this as it is currently very erratic in how it
works & most soundcards will be best off not trying this. Enabling A3D
sound (even with an A3D card) will result in a performance drop, so disable it
when you play online.
You
can further improve your audio experience in Quake 3 by taking a look at the Soundcard/speaker
tweaking guide to setup your soundcard/speakers properly.
Netplay
You can choose your type of connection in the Quake3 multiplayer menu, e.g. 33.6K, 56K, etc. You will most likely have to play around to find the right settings for you. So do some testing with them. Open your q3config.cfg & edit the following settings as appropriate.
seta
cg_lagometer "x",
give x a value of 1.
This will enable the Lagometer, which will aid you in diagnosing & improving
your online gameplay. The lagometer is displayed in the bottom right of your
screen & looks like this.

The
lagometer is effectively split into 2 sections, top & bottom. I’ll deal
with the top section first. The top section shows world updates. Yellow
is bad indicating dropped frames; blue
is good & indicates no frames are being dropped. Information on this line
should be used to tweak your snaps
setting.
The
bottom indicates packets received. The green
indicates packets received, which is good. Red
indicates lost packets, which is bad. Yellow
indicates incomplete packets. Information on this line should be used to tweak
your rate setting.
Pictured below is that of a bad connection to a server.

As
you can see there are a lot of dropped frames & that indicates my snaps
setting is not right for the server I’m on. The ping is also very high with
some damaged/lost packets; this is a server to get off.
Pictured
below is a good connection to a server.

As
you can see the top line consists of almost entirely blue & the bottom is
all green. If you find a server like this, stay on it.
The
settings below will help you tweak your settings to improve connections to Quake
3 servers.
seta
com_maxfps "x",
use x to set your maximum frame rate.
In Quake 2 this was used to stabilize online connection. This is no longer the
case; instead the seta cl_maxpackets
"x" & seta snaps “x”
is used. I’d recommend setting this to 30 when playing online.
This
will help keep the frame rate constant (no dropping from 60FPS to 30FPS) &
will aid in distinguishing between graphics card “lag” & lag in your
connection to a server.
seta
snaps "x",
use this to increase/decrease the amount of “snaps” (world updates) sent to
the client. You should try setting this close to the setting below if possible.
As shown earlier you’ll want to change this according to the how your
lagometer is displaying. Try lowering the amount if there is a lot of yellow. 30
is a good value to begin with for this setting.
|
|
Open
your q3config.cfg file search for seta
snap “xxxx”. The default value for this may not be correct for you.
Depending on your connection, try changing the value depending on your
connection. You can also change this variable during gameplay to suit your
needs. If your world updates are bad (lots of yellow in the top of the graph)
you should lower your snaps. Try
adding/editing the following to your autoexec.cfg
or config.cfg file.
bind
END "seta snaps xx"
bind
KP_PGDN "seta snaps xx"
You
can substitute in your own keys & rate values, I use 26
& 30. Set one low in case your
ping starts to rise, this is a sign you may have set it to high for the current
server, try increasing it for better results whenever possible.
seta
cl_maxpackets "x",
this sets the maximum amount of packets that get sent to the server. The default
setting is 30, which is fine for
V90/56K connections. If you are on a 33.6K modem you should lower this value a
little (say to 25). Those on ISDN or
faster can set this higher than 30.
You may need to experiment a little with it.
seta
cg_deferPlayers "x",
set this to 1 to defer loading of new
models for people that join games until you get killed. Then the new player
model will be loaded. Don’t set this to 0
unless you want to lag a little when new players join & their model gets
loaded.
cl_timenudge
“x”,
similar to push latency in Half-life,
you can use this to set “fake lag” when playing in single player, & more
importantly in online games you can give this a negative value. A general rule
of thumb would be to set this to half your average ping (negative value of
course, or else you’d be adding
lag). E.g. If you normally have a ping of 200 you should set this to –100. This may help smooth your online gameplay out.
seta
cl_packetdup "x",
set this to 1. If you are
experiencing packet loss this will allow retransmission of lost packets. Only
set this to 0 if you are playing on a
LAN (as there will be no packet loss).
seta
cg_predictItems "x",
set this to 0. This controls whether
the Client or Server decides if an item has been collected. When set to 1
you may be incorrectly led to believe you collected an item when you did not.
cl_nodelta
“x”,
a setting of 1 will disable Delta
compression. Don’t do this for any reason.
seta
net_noipx "x",
set this to 1 to enable the use of
the IPX/SPX protocol. You must have IPX/SPX installed to use this so set it to 0
if you don’t. Most Internet servers use UDP
(part of the TCP/IP protocol). I’d recommend setting it to 0.
seta
cl_allowDownload "x",
a setting of 0 disables
auto-downloading of maps/models. Set this to 1 to enable it.
Open
your q3config.cfg file search for seta
rate “xxxx”. The default value for this may not be correct for you.
Depending on your connection, try changing the value depending on your
connection. You can also change this variable during gameplay to suit your
needs. If your ping is high you may want to lower your rate.
Try adding/editing the following to your autoexec.cfg
or config.cfg file.
bind
KP_INS "seta rate xxxx"
bind
KP_PGUP "seta rate xxxx"
You can substitute in your own keys & rate values, I use 2600 & 3000. Set one low in case your ping starts to rise, this is a sign you may have set it to high for the current server, try increasing it for better results whenever possible.
You
should also take a look at the Modem
tweaking guide for tips on optimizing your Internet connection &
reducing ping times in online games. If you play on a LAN then check out the LAN
tweaking guide as well.
Optimized
dll’s
You
can download optimised Win32 dll files from Stomped.
These are Quake 3 1.16n DLLs compiled for Win32 x86 processor machines. These
should offer a speed improvement over using the qvm code with the 1.16n Quake 3
patch. You must have the 1.16n patch already installed. The speed
improvement is about 5-10%, however, before you install them you should make
backup copies of the files that will be overwritten as it may cause problems
with mods & such.
Adding
this line to your q3config.cfg (or other executed config) may fix some
issues with it. seta com_blindlyLoadDLLS
"1".
Conclusion
|
|