Urban Terror (or UrT for short, not to be confused with Unreal Tournament) is a great standalone first-person shooter available for Linux too, using the ioQuake3 engine. In this article I'll show several ways to make it a little faster by tweaking several variables in favour of performance over good looking graphics. Experienced players will probably know all of this, so this guide is intended to newbies.
The configuration settings will go inside a text file called autoexec.cfg, which should be created (if it doesn't already exist) inside the Urban Terror directory. That could be something like UrbanTerror or ~/.q3a/q3ut4/ (usually it should be the one which contains the ioUrbanTerror.i386 and ioUrTded.i386 files - or their 64-bit equivalents), depending on how and where you installed Urban Terror. The commands and scripts which are placed in this file are automatically executed when Urban Terror starts. You can set here keyboard binds, customise client variables, write basic scripts and so on.
Alternately, you can spread these settings all over more files, for example key binds in binds.cfg, cl variables in cl.cfg, scripts in scripts.cfg and so on, and then just add lines in autoexec.cfg which go like this:
exec scripts.cfg ...
UrT is based on the ioQuake3 engine, which is open-source and maintained by the ioquake3.org project, which just recently shipped a new version of the engine recently. So mostly all the configuration variables that apply to Quake 3 will apply to Urban Terror too.
To start with, for better understanding of how autoexec.cfg works, just create it and add some lines like this:
set r_gamma 1.3 // sets the gamma to a higher value than default
bind v "+button5" // +button5 means bandage, so pressing V will bandage yourself or a teamate
Everything that follows the two slashes are comments. Now you can observe the changes in the game, and see the maps are brighter than usual and V will trigger the bandage action. Notice that these can be configured from the game itself too, but there are some which don't, so you'll have to put them in a cfg file, otherwise they remain set to the default value.
Here are some lines to add in autoexec.cfg to make Urban Terror faster. Notice that everything that follows double slash (//) are comments, so the game will ignore those, and you don't have to add them in your file. There are comments on what a command is doing before it and comments showing the default value of the specified variable. The values I set here are the ones which I regularly use, but the comments will help you know what are the values for obtaining maximum performance. Notice that not all of them are engine-related, some will just customise the look and feel, without any impact on performance.
All of these are called cvars, which is the shorter form for Console Variables or Configuration Variables. Variables starting with r_ (e.g. r_gamma) refer to renderer variables, cl_ refer to client variables, sv_ (e.g. sv_) refer to server configuration, and so on. Also notice that although these are not all the cvars (huge lists can be found here, here or here), they are usually most useful for both configuring Urban Terror and getting a better framerate. Most of the variables can take either the value of 1 (true, enable) or 0 (to disable that specific cvar). You can maximum tweak some of them, but there are variables which should be left default, because enabling them can be really useful and the performance impact when disabling them is negligible.
// cg_ cvars
// prevents lag effects when shooting
set cg_antilag 1 // default 1
// use small gun; some players do not like the gun taking up half of the screen, use this setting to make it small
set cg_gunsize 1 // default 0
// hit sounds when hitting an opponent; this really helps to know whether you hurt an opponent or not
set cg_hitsound 1 // default 0
// amount of time ejected shells stay on the ground, has a small effect on performance if disabled; measured in miliseconds (so 5000 is 5 seconds)
set cg_sfxbrasstime 0 // default 5000
// disable muzzle flash from weapons
set cg_sfxMuzzleFlash 0 // default 1
// in how many spots an injured teamate bleeds
set cg_visibleBleeding 3 // default 5
// enable or disable breathing sound of an exhausted player
set cg_sfxBreathing 1 // default 1
// disable all particle effects except hit effects
set cg_sfxParticle 0 // default 0
// disable smoke effects like blood when hitting other players
set cg_sfxParticleSmoke 0 // default 0
// disable damage skins on models whena a player gets hit
set cg_sfxShowDamage 1 // default 1
// enable bullet impact effects when hitting surfaces
set cg_sfxSurfaceImpacts 1 // default 1
// if enabled it will show info messages about who hit you and where; 0 to disable, 1 to show where you were hit and by whom; 2 where, by whom and what amount of damage did they do
set cg_showBulletHits 0 // default 2
// show fps
set cg_drawfps 1 // default 1
// cap the maximum fps (frames per second)
set com_maxfps 70 // default 85
// Renderer cvars
// change gamma (brightness of colours)
r_gamma 1.4 // default 1
// mouse sensitivity
sensitivity 12 // default 5
// Keyboard binds
// these are binds which I use, so you should customise those to your likings, not everyone uses ESDF for movement etc.
// movement binds
bind e "+forward"
bind s "+moveleft"
bind f "+moveright"
bind d "+back"
bind SHIFT "+movedown"
bind r "+activate" // activate (use)
bind t "+button5" // reload
bind a "+button8" // sprint
bind q "+button6" // bandage
// weapons - should be self-explanatory
bind v "ut_weaptoggle knife"
bind w "ut_weaptoggle secondary"
bind z "ut_weaptoggle bomb"
bind g "ut_weaptoggle grenade"
bind z "ut_weaptoggle sidearm"
// misc binds
bind b "ui_radio" // open the radio menu
// chat binds
bind y "messagemode" // chat (all)
bind u "messagemode2" // chat (team)
bind i "messagemode3" // chat (target)
// UrT supports basic scripts, which allow you to change settings on the fly. For example:
set n0 "sensitivity 7; bind n vstr n1"
set n1 "sensitivity 9; bind n vstr n2"
set n2 "sensitivity 12; bind n vstr n0"
bind n vstr n0
// the above script will change the sensitivity when you press the N key, and cycle it through 7, 9 and 12
There are many places in which you can find help on further configuring Urban Terror, like the official manual or Quake 3 configuration sites, like this or this.