Game Guides > pc game > all pc > Doom 3 Tweak Guide

Doom 3 Tweak Guide



Fear.


That's the feeling I had when I first thought about writing a Doom 3 Tweak Guide. One of the most highly-anticipated games of the last few years, and the pressure was on for me to write this sucker and put it up for everyone to improve their Doom 3 performance. But enough about me.


Elegantly scary. That's the best way to describe Doom 3. It's a blend of science fiction and horror which, with the aid of an incredible graphics engine, immerses you in the heart-pounding action which underlies every aspect of this game. Now I'm actually not a huge horror fan, however for some reason the game seems to work for me. I can't put my finger on it, but I guess the main reason is the amazing game engine. This elegant, optimized, beautiful piece of work shows remarkable atmosphere and attention to detail. It is quite clear why the game took so long to develop and release - the developers were putting every ounce of their energy into making sure this thing is as close to an interactive movie as you can get on a modern PC. If you haven't played Doom 3 yet I honestly think you should try it because chances are you will like it. You can download the demo from here.



Now this isn't a review of Doom 3, as many writers better than I have already churned out dozens of those for you to read over. This is a Doom 3 Tweak Guide, and once again other writers have already turned their hand to this topic too. However I have a feeling you'll consider this the mother of all Doom 3 Tweak Guides. Why? Because this one gathers all the known tweaks, and many new ones I've experimented with and documented, all in one place. I can confidently say that if you read this guide, you will find at the very least several major tweaks which you haven't tried before, which can help you improve your performance in Doom 3. The guide covers all the in-game settings in detail, but it also goes into lengthy coverage of many of the all-important advanced console and config commands which will let you eke out as much performance as possible from an already-optimized engine.


Click to enlarge

Don't be scared - start the tweaking journey with the Doom 3 Tweak Guide!




Note: This guide refers to the latest version of Doom 3 Version 1.3.1, including the Doom 3: Resurrection of Evil expansion pack. Make sure to check back regularly for updates.








Doom 3 Tweak Guide

[Page 2] Essential Optimization



Before getting into any game-specific settings and tweaks, this section covers the obligatory system optimization information I include in all my guides. If you've followed this advice recently, you can skip this section.


Many people report problems with this game and in almost all cases these are due to general system issues and not the game itself. With that in mind I strongly urge you to take some time and follow the advice below if you truly want this game, and indeed every other game you own, to run at its fastest and most trouble-free.



Click to enlarge

The place to start is my free TweakGuides Tweaking Companion. It is the complete system optimization guide for Windows users. Designed for novice and advanced users alike, it is written in plain English to help you genuinely understand all aspects of Windows and your PC. The guide covers every major topic, from the correct installation of Windows and critical drivers and software, through to recommendations for every significant setting and feature, all the major performance and convenience tweaks and customizations, as well as detailed troubleshooting advice. There are also links to a range of reliable free applications for optimizing and maintaining your system, as well as to important resources for finding out even more about Windows and your PC. There are two separate versions: one for Vista and one for XP.


If you've ever wondered what common graphics and display settings like FPS, VSync, Refresh Rate, Antialiasing and Anisotropic Filtering are, and how they really work, then check out my Gamer's Graphics & Display Settings Guide for all the details in an easy to understand format. The guide also gives you a rundown on exactly how a game goes from a being a set of files on your hard drive to a 3D image on your screen, including relevant performance tips.


Finally, if you run an ATI or Nvidia graphics card, I have written two comprehensive guides which you should check out: the ATI Catalyst Tweak Guide and the Nvidia Forceware Tweak Guide. These guides cover absolutely everything about the latest graphics drivers, how to set them up correctly, as well as advanced tweaking, overclocking and benchmarking tips. They're a must-read for configuring your graphics card correctly.



The above information really will serve you well in the long run, not just in this game. If you don't optimize your system and keep everything updated and maintained correctly you will keep running into "mysterious" problems time and time again. Do yourself a favor and when you get a chance spend an afternoon or two optimizing your machine the right way with the guides above.


The next section goes into more detail about specific troubleshooting tips which address common performance issues with the game.








Doom 3 Tweak Guide

[Page 3] Troubleshooting Tips



This section contains specific troubleshooting tips which address many of the most common problems experienced by Doom 3 players. Several of the tips below are drawn from my guides mentioned in the Essential Optimization section. This is no coincidence, since many common Doom 3 problems are not game bugs, but general sub-optimal system conditions which lead to problems. Doom 3 is very elegantly coded, but is quite system intensive in a unique way and uses many advanced features. This brings out instability and problems on most systems, so I can't stress enough the importance of taking the time to go through the checklist of advice below, as well as the rest of this guide, if you're having a problem with the game.


Click to enlarge

Official Support: If you have a problem with the game, the first place to visit is the Activision Doom 3 Support Site. There are also several official documents you should read for more gameplay information and answers to common questions. The first one is in your \Doom 3\Docs\ directory, and is called Help.htm. You can also view an electronic version of the game's Manual by clicking on Manual.htm in your \Doom 3\Docs\ directory. Finally, if you still can't find the answer to your question, you can visit one of the many Doom 3 support forums, such as the PlanetDOOM Forums, where other players may be able to help you out.


Recommended System Requirements: The system recommended system requirements for Doom 3 are actually not terribly steep, and for reasonable performance you should try to meet them. The Minimum and Recommended system requirements are listed in the Help.htm document under your \Doom 3\Docs\ directory. Luckily, the Doom 3 engine looks great even at the lowest settings, so as long as you meet these minimum requirements you can run the game and enjoy the experience.


Running Doom 3 on Windows9x: Doom 3 is only officially supported on Windows XP/Windows 2000 and more recently on Windows Vista. It normally only installs on systems using these operating systems. However if you want to run it on an older Windows, try this tweak: Running Doom 3 on Windows 98. If you want to run it on Vista make sure to use the very latest patch (See page 4 for details).


Windows Vista Users: If you're having problems running this game under Windows Vista, first make sure that you're using the latest Vista graphics and audio drivers for your hardware, and the latest version of this game (see page 4 for patch details). Next, make sure you don't change your UAC settings after the game has been installed, as due to Virtualization this can change the location of the game files and settings. If you can't launch the game successfully when UAC is enabled, you will need to run the game with full Admin privileges. To do this either right-click on the launch icon and select 'Run as Administrator', or right-click on the launch icon, select Properties and under the Compatibility tab tick 'Run this program as an administrator' then click OK. I strongly recommend that you refer to the TweakGuides Tweaking Companion for Windows Vista for more information - in particular check the 'Gaming in Vista' section of the Graphics & Interface chapter; the UAC section of the PC Security chapter; and the 'Personal Folders' and 'Directory Junctions & Symbolic Links' sections of the Windows Explorer chapter. These will tell you how you can fix game-related issues and also explain the relevant differences of Vista.


Installation/Loading Problems: Many users report that they have difficulty installing or launching Doom 3. It is important to understand that Doom 3 uses a copy protection system which objects to the presence of CloneCD, Alcohol, Daemon Tools and even Nero Burning Rom (in rare cases). So if you are experiencing these problems make sure you disable and even uninstall any such software if you want Doom 3 to run. Don't tell me this isn't cool, I agree with you.


Audio Problems: Many users, especially those with Nvidia chipsets, report audio problems with their audio skipping or cutting out. Firstly, make sure you have the latest drivers for both your sound card and also your motherboard. Next, check your audio settings under Control Panel>Sound and Audio Devices and make sure they are set correctly. If all else fails though, go to Control Panel>Sounds and Audio Devices>Advanced and click the Performance tab, and move the Hardware Acceleration slider one or two notches to the left. This should resolve most audio issues, at least until a patch comes out.


CD Key Problems: The Doom 3 CD Key is found on a sticker in your Doom 3 CD case, or on the back of the game's manual. Once you enter this CD Key during installation, it is also placed in a file called doomkey in your \Doom 3\base\ directory. It is vital that you do not share your CD Key or lose it, since Activision will not provide you with a replacement key. Treat it like your Bank PIN number and stash it away somewhere safe. Also make sure that you don't allow your \Doom 3\ directories to be shared as part of any P2P program (like Kazaa or Emule), and that you don't ever include the CD Key in any emails, since Activision will never ask for your CD Key. If at any time you want to see/edit your CD Key, you can do this by going to the Multiplayer Settings screen from your Doom 3 Main Menu (See In-Game Settings section).


Virus Scan: Do a full scan of all your files using a virus scanner such as the following excellent (and free) tools: AVG Virus Cleaner for viruses, A-Squared for trojans, and Ad-aware for spyware. Viruses, trojans and spyware can cause unexplained behavior, general file corruption and system slowdown, and can also (in some cases) steal your CD Key. So it's best to make sure your system isn't infected before moving on to other measures. However make sure to disable any background scanning programs once you're done (See below).


Background Programs: Disable all background applications, especially virus, trojan and spyware scanners and messaging utilities. These applications can and do use up valuable CPU resources, take up precious RAM, cause memory conflicts and crashes to desktop, and lag online play, but most importantly they interfere with read/writes to your hard drive effectively slowing it down and causing more in-game freezes and loading pauses. Full instructions on how to identify your startup programs and services and how to correctly disable unnecessary ones are in my TweakGuide Tweaking Companion. This is an important step you should not miss.


Overclocking: Doom 3's engine is extremely sensitive to overclocking. If you have overclocked any components on your system and are having problems such as crashes and reboots, or 'artifacting' (graphical anomalies) set everything back to default speeds and try running the game. If you don't experience the same problems at default speed then your overclock is the primary culprit. Don't assume that because other games run with stability at a particular speed that Doom 3 will do the same. The Doom 3 engine is new and unique, and stresses hitherto less-used aspects of your hardware. Most users are reporting that they have had to clock back to default speeds or dramatically drop their overclocks in order to play the game without problems.


Graphics Card and CPU: Doom 3 is very reliant on advanced graphical techniques, and needs a lot of graphics power for optimal performance. However your CPU also plays a role in how well Doom 3 performs, and a high-end card with a lower-end CPU will suffer, just as a powerful CPU with a low-powered graphics card will also see low FPS in Doom 3. If you want to see how CPU and graphics power combine in Doom 3, read this interesting: AnandTech Doom 3 Article. If you're looking to upgrade, but have a limited budget (don't we all), this article may help you decide whether to upgrade your CPU or Video Card first.


Memory Subset: It is highly recommended that you run Doom 3 with 1GB of RAM for smooth gameplay. Doom 3 is highly reliant on your system RAM and video RAM for its performance. Regardless of RAM size however, you must ensure that you optimize your Virtual Memory settings by following the step-by-step instructions in my TweakGuides Tweaking Companion. Combined with the tweaks covered later in this guide, this should help resolve many issues. A lack of RAM and sub-optimal virtual memory settings, especially when combined with overclocked memory (and/or aggressive RAM timings), can lead to lots of small in-game loading pauses, longer loading times and memory conflicts leading to freezes, crashes to desktop, and even sudden reboots.


Defragging: Another vital tip is to make sure that after you have installed Doom 3 you run through the system maintenance procedures detailed in my TweakGuides Tweaking Companion. If you only do one thing on that list though, make sure you run the Windows Defragmentation utility after installing Doom 3. It is a very large game (over 3GB of data), and defragging ensures that the game's files are all on the same place on your hard drive, greatly reducing loading pauses/freezes and loading times. It may take a little while but it is well worth it.


Antialiasing and Anisotropic Filtering: If you have mysteriously low frames per second despite being certain that your hardware is capable of more, then one place to check would be your graphics card's Antialiasing and Anisotropic Filtering settings. These are explained in detail in my Gamer's Graphics & Display Settings Guide. I strongly recommend that you set any forced Antialiasing and/or Anisotropic Filtering in your graphics card's control panel to 'Application Preference', and use Doom 3's in-game and/or config settings to determine the levels of these (See In-Game Settings and Advanced Tweaking sections below). Forcing AA or AF in the control panel may conflict with Doom 3's settings and cause slowdowns.



That's just a basic rundown of troubleshooting tips. Read the remainder of this guide for more specific settings and tweaks which can help improve your performance and resolve any problems.






$False$

$False$



Doom 3 Tweak Guide

[Page 6] In-Game Settings (Pt.2)



Advanced Options


High Quality Special Effects: With this setting set to Yes, Doom 3 will use a range of advanced graphical techniques to increase your immersion in the game. For example, looking at a column of fire will produce a highly realistic heat haze effect. These effects take some graphical power to produce, so disabling this option (setting it to No) will improve your performance at the cost of realism and immersion.


Enable Shadows: This setting determines whether you see any real-time shadows cast for objects in the game. If set to Yes you will see most objects casting very realistic shadows, which move with dynamic sources of lighting (such as swinging lamps for example), however your FPS will be lower as your system has to do more calculations to determine where shadows are cast at any point in time. This is particularly noticeable when there are multiple characters/enemies on the screen, as they cast very complex shadows. If set to No, these shadows will disappear, although this doesn't mean all the areas of darkness in the game will be removed. Your performance will improve, but the atmosphere of the game may suffer somewhat. If you feel comfortable turning this option off, then the performance improvement (which is significant on many systems) may be worth it.


Enable Specular: If set to Yes, specular lighting gives the surfaces of objects, ranging from metals to skin, a realistic sheen. When combined with Bump Maps (see below), this option creates a very plausible illusion in Doom 3 that your surroundings are real. However obviously it reduces performance, so if you're after more FPS and don't mind the drop in realism, set this option to No.


Enable Bump Maps: Bump mapping is an effect which makes 2D textures appear as though they are 3D, with depth and grain. If set to Yes, surfaces will appear much more realistic, especially when light shines on them, however your performance will be lower. Again, if you can do without this effect turn it off.


Vertical Sync: Vertical Synchronization (also called Vertical Sync, or simply VSync) is the synchronization of your graphics card and monitor's abilities to redraw the screen a number of times each second (measured in FPS or Hz). If VSync is disabled (set to No), you may see some image "tearing" as your monitor and graphics card go slightly out of synchronization when the refresh rate exceeds the monitor's abilities, however your FPS can now exceed your monitor's refresh rate. For more details, read my Gamer's Graphics & Display Settings Guide. There is something important to understand when talking about VSync and Doom 3 though - the Doom 3 engine is specifically capped at 60FPS, so normally you cannot exceed this framerate regardless of your VSync setting (you can exceed it by using the com_fixedtic -1 command - see Advanced Tweaking section). You can still have a refresh rate higher than 60Hz, it's just that your monitor will simply show some frames more than once. It is always recommended that you have as high a refresh rate as possible to ease eyestrain (See Advanced Tweaking section). Whether VSync should be on or off in Doom 3 is not set in stone - it differs by system. Some people have reported to me that they get better, and more importantly smoother framerates with VSync enabled (Set to Yes). Others show through their Timedemo results (See Neat Stuff & Conclusion section below) that having VSync off improves their average FPS. You will need to experiment, but to begin with I recommend firstly checking your graphics card control panel to ensure that the Vertical Sync option there is set to 'Application Preference', and then in Doom 3 set VSync Off. If you are happy with it, keep it off, however if you find the image "tearing" too annoying, or want smoother FPS, then set VSync back to On. Also run a Timedemo with VSync on and off and see what your particular results show.


Antialiasing: Antialiasing is a method of smoothing the jaggedness of lines in 3D graphics. For more details see my Gamer's Graphics & Display Settings Guide. This setting has (up to) five options: Off, 2x, 4x, 8x and 16x. When set to Off, there is no additional Antialiasing used, unless you have forced Antialiasing enabled in your Graphics card's control panel. Antialiasing set to Off provides the fastest performance. When set to 2x Antialiasing, this uses your graphics card to smooth out jagged lines at the cost of some FPS. Higher levels of Antialiasing will reduce FPS even more, but smooth out jaggedness considerably, particularly for distant objects. Note that if you have any level of Antialiasing enabled in your graphics card control panel, they will override these settings. If you want to use Antialiasing in Doom 3 I recommend selecting 'Application Preference' (not '0x') in your graphics card's control panel and then setting the AA level in-game here. For most people however I recommend setting Antialiasing to Off since it is a major performance drain, and Doom 3 is a game which really doesn't require antialiasing at any resolution - the jaggedness of lines is barely noticeable.


Once you're done with these options click 'Close Advanced Options', then click 'Apply Changes' to put them into effect.


Defaults: If you want to return to the default settings for the game, click this option. Note that doing this will mean you will lose all your existing customized in-game settings.


Multiplayer


Find Multiplayer Game: In the Game Browser screen you can look for a Doom 3 Multiplayer server to join. At the top of the screen, select Internet or LAN (Local Area Network) depending on where you wish to play. Then click 'Get New List' to bring up a list of all available Internet or LAN servers you can try to join. If playing on the Internet, try to join a server with the lowest Ping, as the lower the ping the lower the online 'lag' you will experience. Once you find a suitable server, highlight it and click 'Join Game'. Note, if you have an invalid Doom 3 CD Key, you cannot play Doom 3 online.


Browser Filter: If you want to refine the list of servers displayed, you can do so under this section. Select the Gametype of the servers you wish to display, whether you want to see Password protected servers or not, and finally in the 'Servers' setting, whether you want to Hide Full (hide servers which are full), Hide Both (hide servers which are full and those which are empty), or Show All. Click the 'Apply Filter' button to use these filter settings in the main Game Browser window.


IP Connect: If you know the IP number of the specific server you wish to join, enter it here then click 'IP Connect' to join that server, otherwise leave this area blank.


[Create Server]


Server Name: Enter a name for your server. The default server name is 'Doom Server', however since your server name is what other players will see in the Server Browser, give your server a unique name.


Game Map: Select the particular map you want the server to run.


Server Type: You can select whether your server is seen on the Internet, or whether it is only meant to be visible to those on your private LAN.


Game Type: Choose the game mode for the multiplayer server, that is either Deathmatch, Team DM (Team Deathmatch), Last Man (Last Man Standing), or Tourney (Tournament mode).


Team Damage: If set to Yes, teammates can hurt each other with friendly fire in Team Deathmatch mode.


Frag Limit: Set the number of frags (kills) the highest scoring player must reach before the round ends.


Time Limit: Set the maximum time limit for each round in minutes. If a player hits the Frag Limit first, the round will end earlier, otherwise at the end of the time limit the highest scoring player will win. If there is a draw the game will continue until a winner is decided.


Max Players: Choose the maximum number of players allowed on the server. This is limited to 4 by default.


Do Warmup: If this option is set to Yes, at the start of each round there will be a 'warmup' period before the start of the actual match, allowing players to join and prepare for the upcoming game.


Allow Spectators: If set to Yes, spectators (people who aren't playing) can join your server and watch the proceedings. Spectators draw bandwidth just like players, so if you're on a limited bandwidth connection note that additional spectators can lag your server.


Dedicated: Select whether you want this server to be a Dedicated Server. This provides optimal performance for the server, however you cannot play on a machine which is acting as a dedicated server.


[Advanced Server Options]


Use Password: If set to Yes, you can set a password (in the Password setting below) which players must enter before they can join the server. This effectively restricts your server to individuals who know the password, and no-one else can join.


Password: If the Use Password setting is set to No (See above), this option will be unavailable, however if set to Yes, this option allows you to enter the password required to join the server.


Remote Console Password: If you want to access this server from another machine, then the password required to access the server using a remote console is set here.


Reload Engine on Map Change: If set to Yes, whenever a new map begins the server will reload the Doom 3 game engine. This can help prevent any engine data corruption and crashing and can improve memory usage, but increases the load time between maps depending on the server's specifications.


Allow Server Side Mods: If set to Yes, this allows the server to run unofficial mods for Doom 3.


Map Cycle Script File: You can specify a script file to determine the order and behavior of map cycling on the server. For example, create a script file called 'mapcycle.scriptcfg'.


Pure Server: If set to Yes, this checks to make sure that people connecting to your server have identical original Doom 3 files.


Configure Server Rate: Determines the maximum data rate which the server provides to individual players. Set it here, and then see the Advanced Tweaking section to modify the data rate more precisely.


Once you've finished adjusting all these settings to your satisfaction, click the 'Create Multiplayer Game Server' button to start your server and it should be viewable to other players.


[Multiplayer Settings]


CD Key: Your CD Key is vital to being able to connect and play Multiplayer Doom 3. The key displayed here is the one you entered when you first installed Doom 3, and it can be found on the back of a sticker on your game manual, or in the game's CD case. You should never need to change it, and of course you should never share it with anyone (See Troubleshooting Tips), however it can be edited here if necessary.


Data Rate: This setting has a major influence on how smooth your gameplay will be online. Make sure you choose the appropriate connection type here. The options, in order of lowest bandwidth to highest, are: ISDN, DSL/LAN and T1/Cable. See the Advanced Tweaking section for more details of how to fine-tune your data rate for even smoother gameplay.


Always Run: If set to Yes your character will run by default when you move around online. This is recommended given the fast pace of Doom 3 Multiplayer. Note this setting doesn't affect Single Player.


Player Name: The player name you entered in the Main Menu should be shown here, and is the one which will display when you play online. See the Advanced Tweaking section if you want to insert special characters or color codes into your player name.


Player Skin: Choose a skin color from the options provided. The color you choose helps to differentiate you from other players online, but only in certain game modes.


Once you've made the appropriate changes, click the 'Save Settings' button, then click on the 'Main Menu' option at the top of the screen to get back to the main menu.



We're done with all the settings you can adjust using the In-Game Menus. Come back and adjust them as necessary, but for now we move on to Advanced Tweaking - the heart of the Doom 3 engine.








Doom 3 Tweak Guide

[Page 7] Advanced Tweaking



You can change more than just the settings available under the in-game menus in Doom 3. Since it is based on a highly advanced engine, there are many, many variables which can be adjusted to alter the way in which Doom 3 looks, sounds and operates on your machine. Why would we want to alter these variables - shouldn't the programmers who designed the game know best and have already set them up optimally? Well of course they do, and yes Doom 3 is heavily optimized already. But there are so many different combinations of PC hardware and software that it is impossible for any games developer to customize the game to suit your machine perfectly. So tweaking command variables means you can further customize the engine to run at its best on your particular setup. Furthermore, since you can alter many of the settings within the game to suit your personal preferences, so too there are many more finicky settings you can access in the console to further refine image quality and controls to suit your tastes. Tweaking is not something people do to appear cool, nor is it a waste of time. It yields real performance improvements and allows you to exercise your right to have the game looking and feeling precisely how you want it to.


Click to enlarge

There are two main ways in which you can access and alter command variables in Doom 3 - through the Console and through .cfg (Config) files. To save time in this guide, I detail all the major commands one by one in the next section, and you can then decide the method to use to implement particular ones. The methods are essentially interchangeable, meaning changing the variable using one method has the same impact as doing it another way - the only difference is which is more convenient for you. These methods are detailed below:


The Doom 3 Console


The console is the closest you can get to having direct real-time access to Doom 3's engine. Through the console you can enter commands to change engine variables during the game. To open the console, start Doom 3 and then press the CTRL, ALT and ~ keys together (in some countries you will have to press CTRL, ALT and the key directly beneath the ESC key if ~ doesn't work). You will see the console come down, and you can enter text at the command prompt. A list of commands you can enter are covered in the next section. To make regular access to the console easier, enter the following line into the console:


set com_allowconsole 1


This means that you can now open and close the console by simply pressing the '~' key (the key above TAB), and not three keys at once. Note that to make this setting (and many other settings) "stick", i.e. remain enabled even after quitting and restarting Doom 3, you will need to insert it into a Config file, or in the game icon's Target line, both of which are covered below.


Doom 3 Config Files


Although you can alter many variables by entering them into the console, most command variables need to be set each and every time you start Doom 3. This is because the game engine resets these variables to their default state as the engine initializes at startup. By default, when the game engine starts, it automatically detects the presence of, and runs the command variables from two specific files: DoomConfig.cfg and AutoExec.cfg. DoomConfig.cfg already exists in your \Doom 3\base\ directory, and you can edit it using a text editor like Windows WordPad or Notepad. However changing some of the settings in DoomConfig.cfg will see them reset to default values again the next time you restart Doom 3. So the best thing to do is create a new text file, rename it to "AutoExec.cfg" (without quotes) and place it in your \Doom 3\base\ directory. You can now enter all your custom tweaks and settings into this file, and they will come into effect automatically each and every time you start Doom 3. This makes it easier to keep track of what you have tweaked, and if at any time you want to remove all your tweaks, you can simply delete the AutoExec.cfg file.


Note that there is another way of executing a config file, and that is to firstly create a config file with any name you wish, e.g. MyTweaks.cfg, place it in the \Doom 3\base\ directory, and then in the Doom 3 console at any time type:


exec MyTweaks.cfg


This will run all the command variables in your new .cfg file, however unless you actually execute this file it will not be automatically run at startup time - only DoomConfig.cfg and AutoExec.cfg are automatically detected and run by Doom 3.


Doom 3 Icon Commands


There is one more way you can run command variables for Doom 3 - enter them as part of the command line for the Doom 3 icon. To do this, first right-click on the icon you use to launch Doom 3, and then select Properties. In the Target box, you will see something like this:


"C:\Program Files\Doom 3\Doom3.exe"


You can add command variables to the end of this line by using a space and then a '+' sign in front of each command. For example, to allow easy access to the console each time you start Doom 3, change the target line to the following:


"C:\Program Files\Doom 3\Doom3.exe" +set com_allowconsole 1


Note that there are quotes around the target to the Doom3.exe file, but after that, simply add a space and a plus sign before each command. Another example is provided below with two commands:


"C:\Program Files\Doom 3\Doom3.exe" +set com_allowconsole 1 +set r_gamma 1.3 +disconnect


This means that every time I use this icon to launch Doom 3, it changes my console to one-key access (using the '~' key), changes my gamma from 1.0 to 1.3, and skips the introductory movie. Note the spacing - none between the plus signs and command, but a single space between each separate command.


So Which Way Is Best?


Now you know how to apply command variables in the Doom 3 engine, as I mentioned before, there is no single way which is the "best way". Each method works, it just depends on what you find more convenient. I personally prefer to place all my tweaks in a single AutoExec.cfg file, because that way I can see at a glance all the settings I've changed, and if need be I can remove the file (e.g. for troubleshooting purposes), or change each setting back to default. I can also easily back up this file so I can quickly reapply the same tweaks if ever I reinstall Doom 3, or if my settings are lost after I patch the game.


However, I suggest that you use the in-game console to try some commands and what effect they have on the game, and then you can insert them into your AutoExec.cfg file once you've determined if they're worth using, and which values work best for you. Some commands are only really useful if used in the console - for example the "recorddemo" command records a custom demo...not something you want to have in your AutoExec.cfg file at any point. Also note that certain commands don't come into effect until the game is restarted (e.g. if vid_restart is used), so you will have to experiment by placing those in your AutoExec.cfg first, see what they do, and then decide whether to keep them or not.


Importantly, if you are going to edit DoomConfig.cfg, first make a backup of the file so that should something go wrong you can restore the file to its original state. Also, some people recommend that you make changes to DoomConfig.cfg and then make the file read only to prevent the game from erasing/resetting some of the changed settings. I personally don't recommend this, as Doom 3 needs to have write access to DoomConfig.cfg so that for example when you change one of the in-game settings or a key binding, it can record the change in that file.



The next section provides a list of all the game's command variables, and descriptions for most of them.








Doom 3 Tweak Guide

[Page 8] Advanced Tweaking (Pt.2)



This section lists out all the major command variables by general function, and provides descriptions and recommendations for the important ones. This list is by no means exhaustive, since there are literally hundreds of command variables for Doom 3.


Usage rules


Config and Console Usage: In the Doom 3 engine, when you want to use a command - whether in a config file or in the console - you can simply type the name of the command, and then any values or parameters (if required), however you must place exactly one space after the command and any following value or parameter. E.g: r_displayrefresh 85. You don't have to use "" (quotes) around the value, nor do you have to use the Set or Seta command in front of them.


Set and Seta In Front of Commands: You will see in certain places, like the DoomConfig.cfg file, that a command is prefaced with the words Set or Seta. You can also insert these in front of your commands in the console or config file, however they aren't necessary. Set is used to tell the game engine to set a cvar to a particular value. Seta is more useful in that it tells Doom 3 to set the cvar value, and then archive it (store it). There is also a Sett command, which specifies that the setting is for a tool (DoomEdit is the primary tool) - that means it has no influence on gameplay. Further, there are Setu (User Info) and Sets (Server Info) commands just so you know.


Current and Default Values: If at any time you want to see the currently used value for a command variable, open the console and type the name of the variable without a value. For example, type "r_displayrefresh" (without quotes) and you will see the current value for this variable on your system, and importantly you will also see the default value. If you can't remember a command name while in the console, type the first letter(s) of it and then press the TAB key - the console will show you all commands beginning with the same letter(s).


The following is a list of all the major commands for Doom 3, grouped by function, and with as full a description as I am capable of based on my own knowledge, the developers' help text and personal testing. Please Email Me if you have more knowledge of any of these commands, or if you have other useful commands to add to this list. Settings which can be easily and fully changed in the Main Menu of the game will not be covered here - see the In-Game Settings section for descriptions of those. Also some of the more obscure commands are not very useful to most users (such as developer, debugging and radiant commands) and these are not included. Finally, there are no cheats here - those are widely documented elsewhere and not something I regularly include in my guides. Ok, here is the list:


Click to enlarge

General Commands


com_showFPS [0,1] - If set to 1, shows the current frame rate in Frames Per Second (FPS) at the top right of the screen.


com_allowConsole [0,1] - If set to 1, allows the command console to be opened by using only the '~' key, rather than CTRL + ALT + ~.


bind [keyname, command] - Binds a command to a key. For example:


bind F10 com_showFPS 1

bind F11 com_showFPS 0


This binds the F10 key to the command "com_showfps 1" (which turns on the FPS counter), and the next line binds the F11 key to the command "com_showfps 0" (which turns off the FPS counter). If you want to make a key binding "toggle", that is pressing the same key turns a command on or off, then use the 'toggle' command instead, for example:


bind F10 toggle com_showFPS


Now the F10 key alone will turn the FPS counter on and off, which frees up the F11 key.


bindunbindtwo [keyname, command] - Same as bind command, however if the key you want to bind is already being used more than twice, it will unbind it first then bind it to the command you've specified.


unbind [keyname] - Unbinds any existing commands from the single key named.


unbindall - Unbinds any commands from all keys. This command is used most commonly as a starting command before setting bindings, so that you can be sure the keys you are binding are not already in use by another command.


loadGame [savename] - Loads a saved game with the name specified. If no name is specified, loadgame will load the last quicksave.


saveGame [savename] - Saves your current game under the name specified.


editor - Opens the Doom 3 "DoomEdit" level editor. See Patches, Maps and Mods section.


echo [text] - Prints the specified text on the screen.


exec [filename] - Executes the commands in the config filename provided. For example to execute all the commands in a custom configuration file called MyTweaks.cfg, type:


exec MyTweaks.cfg


And all the commands in that config file will be compiled and run.


screenshot - Takes a screenshot and places it in your \Doom 3\base\screenshots\ directory as a .tga file, similar to using the F12 key.


conDump [filename] - dumps the entire contents of the console for the current session to the filename specified (as a .txt file) and places it in your \Doom 3\base\ directory.


freeze [seconds] - Freezes everything in the game for the number of seconds specified.


clear - Clears the console of all text to date. Useful if you want to clear the console before generating specific text (e.g. listcmds) then condump them cleanly.


con_noPrint [0,1] - If set to 1 provides text feedback in the console, but not on the screen when console is not visible.


exit - Closes Doom 3 and exits to the Windows Desktop.


Performance Commands


[Cache Tweaks]


The following commands control the image cache, which if enabled and set correctly can help smooth FPS and may also boost performance:


image_useCache [0,1] - If set to 1, uses background loading to cache image information. This may not necessarily improve framerate performance, but it does assist in smoothing out frame rates and reducing loading pauses. Note that the image_cacheMinK (see below) size must be raised from its default otherwise the game will crash when using this setting. Once this setting is enabled, the actual cache value is set in the image_cacheMegs setting below.


image_cacheMegs [Megabytes] - Determines the maximum amount of system memory to allocate to temporary loading of full-sized precompressed images if the cache is enabled by setting image_useCache to 1. Note that since this caching only applies to precompressed images, using the Ultra Quality setting will render this setting useless, since at Ultra quality no texture compression is used. Since a cache is only a temporary holding area, and not the place where the entire game is meant to reside, do not raise this value to something extremely high as that will simply reduce the available memory for the rest of Doom 3. Try a value of 128MB for those with 512MB of system RAM, and if you have 1GB or more of RAM, you can try a higher value like 196MB or 256MB for example. Do not automatically set this to half your system RAM or some monstrous amount.


image_cacheMinK [KiloBytes] - This setting determines the minimum size in KB for precompressed image files to be loaded into the cache. To make sure most image files can be loaded, and to also prevent a system crash when enabling caching, select a value like 3072 to start with. Raising this setting may improve caching, but it may also hinder caching if most textures are below the size you specify, so don't just raise this value for the hell of it.


[Graphics Tweaks]


r_brightness [value] - Determines the overall brightness for the game. You can adjust this using the slider in the main options menu (See In-Game settings), however if you want to fine tune it you can do so here. Has no performance impact.


r_gamma [value] - Determines the gamma level (essentially a form of brightness) for the game. Raising this value too high can make the game image appear washed out. Has no performance impact.


r_displayRefresh [Hz] - Determines the refresh rate used when Doom 3 is launched. You should already be getting the maximum refresh rate possible on your monitor when playing Doom 3 through the use of a refresh rate fix (See my ATI Catalyst Tweak Guide for a link and instructions for both Nvidia and ATI users), however if you want to set this manually, determine the supported maximum refresh rate on your monitor for the resolution you've chosen for Doom 3 (e.g. I run Doom 3 at 1280x1024, and my monitor can do 85Hz maximum at this resolution), and set this variable to that value.


r_multiSamples [0,2,4,8,16] - This setting determines the level of Antialiasing samples used. This can be set using the in-game menus (See In-Game Settings section). The numerical values here are 0 which is no antialiasing, 2, 4, 8 and 16.


com_videoRam [MB] - Shows the detected amount of video memory on your graphics card in MB. If this value is incorrect, set it to the correct value to improve performance.


cm_backFaceCull [0,1] - If set to 1, removes all polygons behind the direction the player is facing - that is, all the things the player cannot see. This can improve performance, but if you experience any visual anomalies set this back to 0. Note it's cm_backFaceCull, not com_backFaceCull.


com_purgeAll [0,1] - If set to 1, discards all data between level loads. Can increase loading times noticeably but may help reduce in-game pauses.


com_machineSpec [-1,0,1,2,3] - Shows the currently detected machine specification level, with the choices being -1 - Not detected, 0 - Low quality, 1 - Medium quality, 2 - High quality, and 3 - Ultra quality.


com_fixedTic [-1,0,1] - If set to 0 (the default) Doom 3's ticrate is capped at 60FPS, meaning the game framerate cannot exceed this, except when running a timedemo. If you want to remove this cap, set com_fixedTic to -1. Setting it to 1 removes the cap, but causes the game physics to go out of sync. Removing the FPS cap doesn't necessarily improve performance, and can lead to more variable framerates. Note that com_fixedTic -1 doesn't work as of the latest patch.


setMachineSpec - Detects your system hardware and sets the value for com_machineSpec (See above).


execMachineSpec - Executes all the relevant config files and sets variables based on the machine specifications provided by the com_machinespec variable. For example, if you raise your machine spec to 3 using "com_machinespec 3", then running the command "execMachineSpec" will change all your settings and config variables to the ones appropriate to a machine suited for Ultra quality performance (i.e very high end).


r_vertexBufferMegs [Megabytes] - This setting controls how many MB are allocated to the vertex buffer. Increasing this value will see a performance improvement on most systems, so try increasing it to 48MB or 64MB.


r_orderIndexes [0,1] - If set to 1, reorganises indexes to optimize vertex use. This improves rendering performance.


r_usePortals [0,1] - If set to 1, uses portals to perform area culling, otherwise everything is drawn. Setting this to 1 provides the best performance.


r_useOptimizedShadows [0,1] - When set to 1, uses the dmap generated static shadow volumes, which provides optimal performance.


r_lightScale [value] - All light sources are multiplied by this value. Increasing this value increases the intensity of all visible light sources. Basically it makes light sources brighter the higher the value.


r_skipParticles [0,1] - If set to 1, this disables all particle effects, including smoke, fog, steam etc. This can dramatically improve performance in areas with these effects, however it can reduce realism greatly as well.


r_skipDiffuse [0,1] - If set to 1, disables diffuse lighting. This improves performance, but also darkens areas where such lighting is used since no lighting is used to replace the removed diffuse lighting.


r_skipUpdates [0,1] - If set to 1, lighting is not updated, meaning all lighting will become static (fixed direction and intensity). This can improve performance significantly, but reduces realism.


r_skipDeforms [0,1] - If set to 1, any material which can be deformed will remain in its original state.


r_skipFogLights [0,1] - If set to 1, disables all fog lights which can improve performance.


r_skipTranslucent [0,1] - If set to 1, disables translucent rendering, which can improve performance (but reduce realism) in such areas.


r_skipInteractions [0,1] - If set to 1, disables all light interactions with surfaces, effectively making almost all surfaces black.


r_skipMegaTexture [0,1] - If set to 1, uses only the lowest level images. This improves performance at the cost of lower image quality for some surfaces.


r_skipGuiShaders [0,1,2,3] - If set to 1, this removes all Graphical User Interfaces (GUIs) in the game (i.e. computer terminals, security screens etc.), if set to 2, GUIs aren't drawn but they can still be interacted with, if set to 3 they will be drawn, but cannot be interacted with. These settings can improve performance but obviously reduce playability.


r_useShadowCulling [0,1] - If set to 1, tries to remove shadows from partially visible lights. This provides optimal performance.


r_useLightCulling [0,1,2,3] - Determines the light culling method. 0 is no culling, 1 is box culling, 2 is the exact clip of polyhedron faces, and 3 also includes areas. This should be set to 3 for optimal performance. Other methods can reduce visual anomalies with lighting but will reduce performance.


r_useCulling [0,1,2] - Determines the object culling method. 0 is no culling, 1 is sphere culling and 2 is sphere and box culling. Setting this to 2 provides optimal performance, but other methods can be tried to reduce visual anomalies.


r_renderer [best, arb, arb2, cg, exp, nv10, nv20, r200] - Determines the rendering path to use. Some renderers can't run on certain hardware - for example cg is an Nvidia rendering language and can't run on ATI cards. You can experiment with these to see which is best on your system, as I haven't had the chance to test these on various hardware.


r_ignoreGLErrors [0,1] - This setting should be set to 1, to ignore OpenGL errors. Most people will have one or two OpenGL errors throughout the game, and these don't seem to affect gameplay.


r_znear [value] - This setting determines the distance at which z-buffer clipping occurs. The default value is 3, and lower values can result in graphical anomalies for distant objects but improve performance, while higher values may help reduce any z-buffer graphical anomalies, but may reduce performance.


r_useInfiniteFarZ [0,1] - If set to 1, this uses the no-far-clip-plane trick which provides optimal performance.


r_useStateCaching [0,1] - This option should be set to 1 for optimal performance, as it caches OpenGL state changes.


r_useIndexBuffers [0,1] - If set to 1, uses ARB_vertex_buffer_object for indexes. This can actually reduce performance, so set to 0.


r_useVertexBuffers [0,1] - If set to 1, uses ARB_vertex_buffer_object for vertexes, which improves performance.


r_useCachedDynamicModels [0,1] - If set to 1, uses cache snapshots of dynamic models which improves performance.


r_useTwoSidedStencil [0,1] - If set to 1, optimizes the processing of stencil shadows.


r_useTurboShadow [0,1] - If set to 1, uses the infinite projection with W technique for dynamic shadows which improves performance without a noticeable drop in image quality.


r_useShadowVertexProgram [0,1] - If set to 1, does the shadow projection in the vertex program on graphics cards with this capability. If you set this to 1 and experience problems or a crash, it is because your graphics card does not support this functionality.


r_useShadowProjectedCull [0,1] - If set to 1, removes polygons which would fall completely inside shadows, optimizing performance.


r_useTripleTextureARB [0,1] - If set to 1, this allows graphics cards with 3+ texture units do a two pass instead of three pass which improves performance. Set this to 1 and if you experience problems, your graphics card does not support this function.


r_useConstantMaterials [0,1] - If set to 1, this setting uses pre-calculated material registers if possible, improving performance.


r_useNV20MonoLights [0,1] - If set to 1, this option uses optimized rendering for mono lights.


r_mode [-1,3,4,5,6,7,8] - This setting determines the resolution, as set in the in-game menus under Screen Size (See In-Game Settings section). The mode values are 3 = 640x480, 4 = 800x600, 5 = 1024x768, 6 = 1152x864, 7 = 1280x1024 and 8 = 1600x1200. Note, you can use -1 for r_mode, and this tells the game to use the values for r_customHeight and r_customWidth to set screen width and height - this is useful for allowing things like widescreen mode.


r_aspectratio [0,1,2] - This setting allows you to set the aspect ratio of the image, which is mainly used for displaying on TVs. The options are 0 = 4:3 (normal), 1 = 16:9 (standard widescreen), and 2 = 16:10 (nonstandard).


r_useLightPortalFlow [0,1] - If set to 1, this uses a use a more precise area reference determination for lighting. Setting this to 0 improves performance but may result in graphical anomalies.


g_projectileLights [0,1] - If set to 1, allows dynamic lights for projectiles. Setting this to 0 can improve performance in combat.


g_doubleVision [0,1] - If set to 1, shows a blurry "double vision" effect when taking damage. Setting this to 0 removes this effect and can improve performance when taking damage.


g_muzzleFlash [0,1] - If set to 1, shows a flash from the muzzle of weapons that are firing. If set to 0, this effect is disabled, which can improve performance.


g_showBrass [0,1] - If set to 1, visible shells will be ejected from weapons. If set to 0, no visible shells will be ejected, and performance may be improved in heavy combat.


g_showHud [0,1] - If set to 1, this enables the Heads Up Display (HUD). If set to 0, this removes the HUD from view, which may give a minor performance improvement. This command is most useful for taking "clean" screenshots (i.e. without the HUD).


g_showPlayerShadow [0,1] - If set to 1, the player will cast a shadow when standing near lights. If set to 0, the player casts no shadow, which improves performance.


g_nightmare [0,1] - If set to 1, Nightmare difficulty level can now be selected on the main menu screen. If set to 0, this option is disabled. Normally players must complete the entire game before Nightmare mode is enabled.


g_bloodEffects [0,1] - If set to 1, full blood effects (blood sprays, splattering etc.) is enabled. If set to 0, this is removed, which may yield a small performance improvement in heavy combat.


g_skipViewEffects [0,1] - If set to 1, removes various view-related special effects like the damage effects (double vision). This can improve performance.


g_fov [angle] - Specifies the angle for the Field of View (FOV). The wider the angle, the larger the field of vision for the player, giving a "fish eye" view in effect, however performance will be reduced. The smaller the angle, the higher the performance. The default of 90 is recommended, but players can try 85 which is a value used in some other games and will gain a slight boost in FPS. In multiplayer, g_fov can only be changed between 90 and 110.


g_skipFX [0,1] - If set to 1, disables certain special effects (I'm unclear on which). This can improve performance.


g_skipParticles [0,1] - If set to 1, disables certain particle effects (does not include smoke, dust, fog effects etc). This can improve performance, particularly in areas which use these effects to a large extent, but realism will be reduced.


image_usePrecompressedTextures [0,1] - When set to 1, all textures will be precompressed, resulting in less video memory being used and hence smoother performance on most machines. There may be some minor compression artifacts on textures, but these are hardly noticeable. If set to 0, this setting will force realtime compression on textures which results in reduced image quality and performance. Note that if this setting is set to 0 and the image_useCompression setting is also set to 0, uncompressed textures will be used for highest image quality, but performance will suffer and you will get more small pauses depending on the amount of Video RAM on your graphics card, so on balance this should be set to 1.


image_useNormalCompression [0,1,2] - Specifies the compression method used for textures. 0 disables normal map compression for the highest image quality for textures, 1 is 256 color compression (if available), which gives the best performance but provides the most compression artifacts, while 2 is rxgb compression. When combined with the setting above and below, setting this to 0 provides optimal image quality for minimal performance hit.


image_useCompression [0,1] - When set to 1, compression is used - with the method of compression specified in the image_useNormalCompression variable. Compression provides the fastest performance by reducing the size of all textures and light maps, but there are some (minor) compression artifacts. When set to 0, precompressed textures are still used, but realtime compression is not used if image_useNormalCompression and image_usePrecompressedTexures are activated. This results in better image quality, but slower performance particularly during periods when precompressed textures are not used.


image_preload [0,1] - If set to 1, Doom 3 attempts to preload most images in the background, meaning less loading pauses during the game but longer loading times. If set to 0, images are loaded dynamically as needed, meaning more loading pauses during the game. 1 is the recommended setting.


image_lodbias [value] - Determines the Level of Detail (LOD) bias for mipmapped images. The higher the number, the less detail is visible on surrounding objects. This can improve performance, but reduces image quality. The default is 0, and values above 1 reduce detail quite heavily, so experiment with fractional values such as 0.2 or 0.5.


image_anisotropy [1,2,4,8] - This setting determines the level of Anisotropic Filtering used in Doom 3. Valid values are 1, 2, 4, and 8. The higher the value, the lower your performance, but the crisper textures will appear in the distance. Note that 1 is the lowest you can set for Anisotropic - 0 will simply default back to 1. Also note that if you have forced Anisotropic Filtering in your graphics card's control panel, it will override this setting, so for optimal performance set the Anisotropic Filtering level in your control panel to 'Application Preference', and adjust the level here.


image_filter [GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR] - Determines the OpenGL texture filtering method to use on textures by default. GL_LINEAR_MIPMAP_LINEAR is Trilinear Filtering, however if you want a performance boost without any noticeable image quality loss, change this setting to GL_LINEAR_MIPMAP_NEAREST which is Bilinear Filtering.


[Sound Tweaks]


The following commands all influence the way sound behaves in Doom 3:


s_force22kHz [0,1] - If set to 1, this forces lower quality (22kHz) audio, which reduces sound quality but improves performance.


s_numberOfSpeakers [2,4,5,6] - This value shows the number of speakers the game has detected, based on the your general Windows settings and In-Game settings. You can manually alter this value, however make sure it matches your current speaker setup otherwise you will have missing audio channels.


s_volume_dB [Decibels] - This is the sound volume for the game in decibels. You should use the in-game menu volume slider to adjust the sound, but if it is too low or too high you can also adjust it here. Be careful as decibel values are not linear.


s_maxSoundsPerShader [value] - This setting determines the maximum number of sounds to use per shader, that is how diverse the sounds effects are. Increasing this value increases sound variety but also increases memory usage and can reduce performance.


s_clipVolumes [0,1] - When set to 1, this removes sounds which cannot be heard which provides optimal performance.


s_useOcclusion [0,1] - Occlusion is a method which muffles sounds which aren't clearly heard, such as those behind walls and objects. If set to 0, this method is disabled reducing realism but it may increase performance.


s_realTimeDecoding [0,1] - This setting determines whether sound decoding is done in real-time or not, however it is protected and cannot be set to 0 (nor should it need to be).


s_playDefaultSound [0,1] - When set to 1, if any sounds are missing a beep is played back instead. If you are getting a lot of beeping errors, you can set this to 0 to remove them.


s_noSound [0,1] - If set to 1, disables sounds.


[Downsizing Tweaks]


The following values control the largest size allowed (in pixels) for textures, lighting and render maps. If downsampling is not enabled, these values make no difference. However if downsampling is enabled, changing the limit values can improve performance by restricting the size of texture, light and render maps. The common values are 256 for 64MB graphics cards, 512 for 128MB graphics cards and 1024 for 256MB graphics cards. You can try lower values for your graphics card to see if loading times and in-game pauses are improved, and judge whether your image quality has fallen or not. Typically smaller sample size limits will result in more pixelated textures and less detailed lighting as textures and lightmaps are resized from their original resolutions to smaller ones.


image_downSizeLimit [pixels] - This setting controls the diffuse light map downsample limit - the largest size in pixels for the diffuse light map. Use 256 for graphics cards with 64MB of Video RAM, 512 for 128MB VRAM and 1024 for 256MB VRAM or above.


image_downSize [0,1] - If set to 1, this puts into effect the downSizeLimit value specified above. If set to 0, textures are displayed at full resolution for highest image quality but lower performance.


image_downSizeBumpLimit [pixels] - This setting controls the bump map texture downsample limit. Use 256 for graphics cards with 64MB of Video RAM, 512 for 128MB VRAM and 1024 for 256MB VRAM or above.


image_downSizeBump [0,1] - If set to 1, this puts into effect the downSizeBumpLimit value specified above. If set to 0, bump mapping on textures are displayed at full resolution for highest image quality but lower performance.


image_downSizeSpecularLimit [pixels] - This setting controls the specular lighting light map downsample limit. Use 256 for graphics cards with 64MB of Video RAM, 512 for 128MB VRAM and 1024 for 256MB VRAM or above.


image_downSizeSpecular [0,1] - If set to 1, this puts into effect the downSizeSpecularLimit value specified above. If set to 0, surface effects on textures are displayed at full resolution for highest image quality but lower performance.



The next section continues the command variables listing.








Doom 3 Tweak Guide

[Page 9] Advanced Tweaking (Pt.3)



Demo Commands


recordDemo [demoname] - Records a demo of your current gameplay with the name specified. The demo is placed in your \Doom 3\base\demos\ directory by default. This directory is created the first time you record a demo.


stopRecording - Stops recording the current demo.


PlayDemo [demoname] - Plays back a demo with the name specified.


compressDemo [huffman, demoname] - Compresses a demo file of the name given using the 'huffman' compression scheme (the only one currently available in Doom 3), creating a new, smaller version of it with the extension .demo.huff in the \demos\ directory.


com_preloadDemos [0,1] - Preloads all demos. Set to 0 will reduce memory usage, which is recommended.


com_compressDemos [0,1] - If set to 1 will compress demo files recorded, reducing their size. These files may take longer to load.


demoShot [demoname] - Creates a screenshot for the demo file specified.


avidemo [demoname] - Creates an AVI from an existing demo.


avigame - Creates an AVI from your current gameplay.


com_aviDemoHeight [pixels] - Determines the resolution height in pixels for AVI demos generated through the avidemo command. The greater the size, the larger the resulting file.


com_aviDemoWidth [pixels] - Determines the resolution width in pixels for AVI demos generated through the avidemo command. The greater the size, the larger the resulting file.


com_aviDemoSamples [samplerate] - Determines the sample rate for AVI demos generated through the avidemo command. The higher the rate, the larger the resulting file will be, but the smoother it will play.


roq [filename] - Encodes a roq file, but requires the name of, and path to, the roqParam file.


Benchmarking Commands


benchmark - Runs a benchmarking procedure which uses progressively less pixels for the current image (screen size shrinks) until a result is provided at the end in the console.


timeDemo [demoname] - Runs a timedemo on the demo name provided. If no demos exist, you can use the default demo1 built into Doom 3. See the Neat Stuff & Conclusion section for more details.


timeDemoQuit [demoname] - Runs a timedemo using the demo specified, and then exits the game completely when done.


Control/Movement Commands


sensitivity [value] - This value represents your mouse sensitivity, as set by the slider in the in-game menus (See In-Game Settings). Raising the value increases the mouse's sensitivity to movements in the game. You can make subtle adjustments here if the slider is too awkward.


pm_crouchrate [seconds] - This setting controls the time it takes for the player to switch from standing to crouching. The higher the setting, the longer it takes.


pm_normalviewheight [value] - Determines the height of the player's view when standing.


pm_crouchviewheight [value] - Determines the height of the player's view when crouching.


pm_staminarate [value] - Determines the rate at which the player regains Stamina points. Divide the pm_stamina value by this rate to calculate how long it takes for the player to fully regain all his stamina.


pm_staminathreshold [value] - When stamina falls below this value, the player slows to a walk.


pm_stamina [value] - Determines the length of time a player can run.


pm_runspeed [value] - This setting determines how fast a player can run. Higher values result in a faster running speed.


pm_walkspeed [value] - This setting determines how fast a play can walk. Higher values result in a faster walking speed.


pm_crouchspeed [value] - This setting determines how fast a player can move while crouching. The higher the value, the faster a crouching player can move.


pm_stepsize [value] - This is the maximum height over which a player can step without having to jump. Lower values may result in players not being able to climb stairs without jumping for example.


pm_jumpheight [value] - This setting is the approximate height a player can jump. Higher values will result in a higher jump height.


[Disabling Bobbing Tweaks]


The variables below control the slight bobbing movements your player has when moving around, such as when he is running (runroll, runpitch, runbob), walking (walkbob, bobroll, bobpitch, bobup) and crouching (crouchbob). These bobbing, pitching and rolling movements are all quite realistic, but may be annoying to some people. Raising the values increases the bobbing and pitching, while reducing the values lessens the intensity of these movements. Setting all of them to 0 will completely remove any bobbing and pitching motions for your character.


pm_bobroll [value]

pm_bobpitch [value]

pm_bobup [value]

pm_runroll [value]

pm_runpitch [value]

pm_runbob [value]

pm_walkbob [value]

pm_crouchbob [value]


View Commands


pm_thirdPersonDeath [0,1] - If set to 1, enables third person view when the player dies. Note this command may force third person view even during normal gameplay, so disable it if this is not to your liking.


pm_thirdPerson [0,1] - If set to 1, shows the player in third person view.


pm_thirdPersonAngle [angle] - If third person view is being used (i.e. pm_thirdPerson is set to 1), this determines the angle of the third person camera view. 0 (the default) is behind the player, while 180 is looking directly at the player's face. Other values view the player from various angles.


pm_thirdPersonHeight [value] - If using third person view, this determines the height of the camera from normal view height. Positive values raise the camera above normal view height, negative values below normal view height.


pm_thirdPersonRange [value] - If using third person view, determines the distance of the camera from the player. 80 is the default, and 0 is right inside the players head.


pm_maxviewpitch [angle] - This setting determines the maximum angle a player can look down. Higher positive values will result in the player overshooting his own feet. Negative angles will result in the player looking up when attempting to view downwards.


pm_minviewpitch [angle] - This setting determines the maximum angle a player can look up. Higher negative values will allow the player to look up and over the back of their own head. Positive values will result in the player looking downward when attempting to look up.


Information/Diagnostic Commands


com_showMemoryUsage [0,1] - If set to 1, shows the amount of memory allocated to the game and various assets.


com_memoryMarker [Megabytes] - This marker shows the approximate amount of memory (in MB) used by Doom 3 in its last run. Don't alter this value, just see what it is.


game_memory - Displays the amount of game memory allocated, and to how many objects.


showTriSurfMemory - Shows the amount of memory used for polygon surfaces.


com_showSoundDecoders [0,1] - If set to 1, shows all the currently loaded sounds, how large they are and how far through playback (in %) they are.


g_showPVS [0,1] - If set to 1, shows a wireframe border around all portals such as doors and passageways.


r_showSurfaceInfo [0,1] - If set to 1, shows the surface material name when a cursor is pointed at a surface.


r_showTris [0,1] - Enables wireframe mode. If set to 1, shows all visible geometry in wireframe. If set to 2, it only draws front-facing geometry in wireframe. If set to 3, shows all geometry (visible or not) in wireframe. Interesting to see how many polygons are being used for certain effects, like smoke and steam.


r_showLightCount [0,1,2,3] - If set to 1, colors each surface based on the light count, if set to 2 also counts everything through walls, and if set to 3 also prints overdraw.


r_showShadowCount [0,1,2,3,4] - If set to 1, colors the screen based on shadow volume depth complexity, if set to 2 prints overdraw count based on stencil index values, if set to 3 only shows turboshadows, and if set to 4 only shows static shadows.


r_showSilhouette [0,1] - If set to 1, highlights every edge which casts a shadow.


gfxInfo - Displays a dump of graphics information, including graphics card model, driver version, supported paths etc.


listSounds - Lists all sounds currently loaded and the amount of memory they are using.


listImages - Lists all images currently loaded and the amount of memory they are using.


listCvars [-help] - Lists all cvars, and if the -help switch is used, help text is also provided.


listCmds - Lists all commands with current values.


[Reload Commands]


The following commands all reload particular aspects of the game, such as sounds, images, decals and Graphical User Interfaces (GUIs). Using these commands at any point can help resolve any anomalies or glitches you are experiencing with these particular aspects of the game by reloading them from scratch. Note, some aspects take a while to reload (e.g. reloadImages and reloadEngine can take quite a while), so be careful if using such commands in an online game.


reloadEngine

reloadSounds

reloadModels

reloadImages

reloadSurface

regenerateWorld

reloadGuis

reloadDecls


reloadCgPrograms - Reloads CG programs. This can help resolve graphical anomalies during gameplay on Nvidia cards.


reloadARBprograms - Reloads ARB programs. This can help resolve graphical anomalies during gameplay on ATI cards.


cvar_restart - Restarts the cvar system.


s_restart - Restarts the Doom 3 sound system.


vid_restart - Restarts the video rendering system, which essentially reloads Doom 3. You must use this command to implement certain changes, such as changed resolution.


developer [0,1] - If set to 1, enables Developer mode, which allows certain other console commands to work such as the freeze, god, crash, error and gameerror commands.


devmap [mapname] - Loads a map in Developer mode.


noclip - Toggles clipping on/off. By default clipping is on. When clipping is turned off, you can walk through solid objects, useful for troubleshooting.


god - Enables God mod, useful for troubleshooting.


Multiplayer/Server Commands


connect [servername] - Connects to a multiplayer server with the given name


disconnect - Closes the current game map. Also used for skipping the introductory movie by appending +disconnect to the Doom 3 icon Target box (See Neat Stuff & Conclusion).


reconnect - Reconnects to the last server connected to successfully.


ui_name [string] - This is your character name as set in the in-game menus. The only reason you may want to edit it using this command rather than the in-game menus is if you want to insert special characters in your name, or use color codes in front of letters. The color codes are ^1 Red ^2 Green ^3 Yellow ^4 Blue ^5 Aqua ^6 Purple ^7 White ^8 Grey ^9 Black. E.g. ^5Persian^1Immortal provides the text PersianImmortal when my online name is displayed in multiplayer games. Don't go nuts with this, it can be very annoying.


serverNextMap - Changes to the next map on your server.


serverMapRestart - Restarts the current map on your server.


serverForceReady - Forces all players on your server to be ready for match start.


say [text] - Says the provided text in Global Chat in multiplayer.


sayTeam [text] - Says the provided text in Team Chat in multiplayer.


gameKick [playername] - Kicks the specified player from the server.


serverInfo - Shows information about the current server when in multiplayer.


rcon [command] - Sends the command specified to the remote console.


net_clientMaxRate [Bytes] - This setting controls the maximum amount of data in bytes per second you can receive from a server every second. By default, servers will only provide 16000 bytes per second at most (as set in the net_serverMaxClientRate setting), but you can try lowering this value to reduce your ping and stabilize it when playing Doom 3 online. Try values such as 10000 or 12000. Note that values which are too low will cause problems, as Doom 3 multiplayer is not designed for dialup speeds (i.e. 6000 or less).


net_serverMaxClientRate [Bytes] - If running a server, this setting determines the maximum amount of data which can be sent to each player in bytes per second. The default setting should be fine, however if you find your server struggling, or you have a limited bandwidth connection, you can try lowering this setting slightly. Once again, keep the value reasonably high, as too low a rate will result in packet loss, ping spikes and unplayable multiplayer for all who join the server.


si_maxPlayers [value] - This setting determines the maximum number of players on your multiplayer server. Unfortunately at the moment it cannot be set higher than 4 here or in the in-game settings.



That's the current list of the more useful Doom 3 command variables which I know. Once again I really need knowledgeable readers to send me better descriptions for any of the above commands which are not completely clear, and also any additions you feel need to be made. So please, if you genuinely know what something does (no guesses please), Email Me. This section can then serve as a central resource for Doom 3 players to refer to for command tweaking.



The next section has a few neat tweaks and wraps up the entire guide.








Doom 3 Tweak Guide

[Page 10] Neat Stuff & Conclusion



Here we are at the end of another TweakGuides.com tweak guide, and a particularly epic one at that! Only a few more tweaks to go, but ones which might help you gain a few more FPS and get some more out of this great game.


Click to enlarge

Latest ATI Catalysts


For ATI graphics card owners, make sure you are using the official ATI Catalysts, version 4.10 or higher, as these have built-in optimizations for Doom 3. You should not need to use the old Beta 4.9 Catalysts which were advertised as being "optimized for Doom 3", since the official 4.10 Catalysts onwards contain all the beta's performance improvements without the bugs. I strongly recommend all ATI graphics card users update to the latest Catalysts for maximum performance and stability under Doom 3. For full details of where to download the latest Catalysts, how to install them correctly and most importantly how to set them up the right way, see my comprehensive ATI Catalyst Tweak Guide.


ATI Shader Tweak


You can use this shader tweak to improve performance on ATI graphics cards, available from the: Beyond3D Forums - full instructions are in the link. I haven't personally tried the tweak, but users report a 1-2 FPS boost on average.


Update: This tweak has been incorporated into the latest ATI Drivers for a while now, as detailed in this thread, so you no longer have to apply it.


Speed Up Load Times


One method some people are recommending to speed up loading times and perhaps boost performance is to unpack the zipped .pk4 files in the \Doom 3\base\ directory. These .pk4 files contain all the files Doom 3 uses to run the game, and at the start of each Doom 3 session these are unpacked and loaded up, which can take some time. If you want to use this method, follow these steps:


1. Firstly make sure that you do not delete the .pk4 files. Move them somewhere else on your system.

2. Rename each file from .pk4 to .zip.

3. Extract the contents of each file using WinZip to the \Doom 3\base\ directory. This may take a fair bit of time.

4. Make sure you run Windows Defragmenter after this procedure, as the files will be spread all over your hard drive. Do this by going to Start>Run and typing "Defrag.msc" (without quotes), then click the Defragment button.

5. You can now start Doom 3 and it should read these files much more quickly.


Note that I personally don't recommend this method, as the performance gains are minimal, with the main gain being faster loading times. The down sides to this method are that playing Doom 3 multiplayer becomes difficult, as most servers will consider your game files to have been altered and you will be kicked. Also, when it comes time to patch/update the game, you will have to remove these files, replace the original .pk4 files (that's why you shouldn't delete them!), run the patch, then unpack them again. Rather tedious given the 3GB + of information that needs to be unpacked.


Doom 3 Game Music


If you like the Doom 3 title music, and indeed any sound effects and ambient music in the game, you can find these in the pak003.pk4 file in your \Doom 3\base\ directory. Using the method mentioned before, rename this file to pak003.zip (make sure to name it back to pak003.pk4 straight afterwards), and use WinZip to extract the contents to an empty directory. The main theme music is called d3theme.ogg. Most of the sound effects and music are in .ogg format, which can be played back using the free WinAmp Audio Player.


Disable Startup Movie


If you want to skip the "beating heart" introductory movie each time Doom 3 loads, there is a simple method for doing this. Go to the icon you use for launching Doom 3, right-click on it and select Properties. In the Properties box which opens, find the Target line and add a space then "+disconnect" (without quotes) to the end of it. For example:


"C:\Doom 3\Doom3.exe" +disconnect


Now when you launch the game with this icon, the intro movie is skipped every time.


Doom 3 Benchmark


The Doom 3 engine developed by id Software is a very unique and elegant game engine. It can look fantastic, even on lower end machines. It is a perfect OpenGL benchmarking tool - especially since there are few recent OpenGL benchmarks. To use Doom 3 as a benchmark, start the game and open the game's console (See Advanced Tweaking section). From here you can launch custom demos (pre-recorded game sequences), at the end of which a set of figures showing your average framerate over the length of the demo. To run the built-in Doom 3 demo - and this is recommended if you want to compare your results to others - type "timedemo demo1" (without quotes) in the console. Wait for the run to finish and note the results, then you can compare them with others online. Note that with VSync disabled, framerates in the timedemo can exceed the normal 60FPS cap in the game engine.


If you want to record your own timedemo, load up a particularly challenging stretch of the game, then open the console and type "recorddemo demoname" (without quotes). E.g: recorddemo trialrun will start recording a demo called trailrun.demo in your \Doom 3\base\demos\ directory. Type "stoprecording" (without quotes) to stop recording this demo at any time. To then run this demo as a benchmark, simply type "timedemo trialrun" (without quotes) in the console and it will be played back, and your average framerate over the run will be shown. Note that the Doom 3 engine is extremely sensitive to overclocking because of the way it is designed, so if you crash, freeze, reboot or artifact during the run keep this in mind.


Taking Screenshots


Taking screenshots in Doom 3 is quite easy - simply press the F12 key and a screenshot is placed in your \Doom 3\base\screenshots\ directory as a large .tga format picture file. You can view .tga files using Adobe Photoshop, or a free utility like IrfanView. However if you want to use other methods for taking screenshots, try these:


  • Use the PRINT SCREEN key during a game to place a single screenshot into memory, and once you exit Doom 3 you can paste the last screenshot taken into a paint/photo editing program and modify or save it in any format you like from there.
  • Use a free utility like Fraps. Fraps can take as many screenshots as you like during gameplay, and stores them in high-quality .bmp format in the directory of your choice.
  • Use a utility called Hypersnap DX, which will meet any and all of your screenshot needs for any game, but requires paid registration to enable full functionality.

  • I personally recommend either Fraps or Hypersnap DX if you want to take a lot of Doom 3 screenshots, however the built-in screenshot functionality is fine for most people.


    Conclusion


    Holy cow, I never thought I would finish this guide. If you don't know the saga that lies behind the writing of this guide, basically I recently bought a new apartment and had to move into it exactly two days after Doom 3 was released. So I got one night to sample the game, then the next few days were a blur of packing, shifting boxes, cleaning everything, more boxes (real horror involves boxes, I swear...), other large objects, and driving around town like a madman trying to get all manner of things done. My PC was offline all this time, and only just over three days ago did I manage to set it back up and start writing this guide. As I sit here now looking at the final product, I'm personally amazed I have put this together in such a short space of time...and that's why I'm relying on you, faithful reader. While to the best of my knowledge, and from personal testing, I believe the guide to be error free, I need you to let me know as soon as possible if you detect any errors in the guide. You know the drill, Email Me!


    As always I really enjoy hearing from readers even if they just want to say "hi" or tell me what they think of this guide. Of course for time reasons I can't provide any personal tech support or tweaking advice. In the meanwhile, I hope you enjoyed this guide and that it helps you get more out of Doom 3 which is a truly excellent game, if not perfect in every way.


    Links and Credits


    I wrote this guide based primarily on my own testing and research, because not much tweaking information is available on the new Doom 3 graphics engine. However I did find several guides, articles and sites which were extremely useful in getting this guide completed in record time. I acknowledge their contribution, and strongly suggest that you check these out to enhance your Doom 3 tweaking experience:


    Doom 3 Official Site

    Activision Doom 3 Support Site

    [H]ardOCP Official Doom 3 Hardware Guide

    ViperLair Doom 3 Console Guide

    AnandTech Doom 3 Hardware Guide

    FileShack Doom 3 Section

    PlanetDOOM Forums

    DoomWorld Forums


    Just a reminder - make sure to check back on this guide regularly, as I will definitely keep it updated with the latest feedback from users and more testing, and as new patches are released for this awesome game. Take care guys!