Wednesday, September 13, 2006

Optimizing Quake 4 for an X800.

Radeons aren't just for Half-Life.
by AC - permalink


I did a little more tweaking to Quake 4 recently and found a nice little sweet spot for my hardware. It's the best combination of high frame rate (45 to 60+ fps 90% of the time) and high-quality visuals I can come up with. This is basically a distillation of all the performance tweaks from the TweakGuides.com Quake 4 tweak guide, hand-picked and tested for this hardware:
  • AMD 64 3500+
  • 1024MB DDR 3200 SDRAM
  • ATi Radeon X800 XL PCI-e 256MB
  • Win XP Media Center, SP2
  • KDS 17" CRT
If your hardware differs slightly, you can guesstimate up or down accordingly. Here's my in-game setup:

As a baseline, I set the game to medium graphic quality. This sets up a good value for texture compression in addition to a number of settings (like AA, AF, etc.) that I overrode. Under Settings > Game Options, I disabled Show Decals, and under Settings > System > Advanced Settings, I enabled everything but anti-aliasing. After that, I opened the Quake4Config.cfg (by default, found under C:\Program Files\id Software\Quake 4\q4base) and made only five changes. You'll find three of them together:
seta image_useCache "0"
seta image_cacheMegs "100"
seta image_cacheMinK "30"
I changed these three strings to:
seta image_useCache "1"
seta image_cacheMegs "196"
seta image_cacheMinK "3072"
I also located 'seta r_multiSamples' and made sure the value was set to 0. It's a little counter-intuitive, but you really don't need any anti-aliasing in the Doom 3 engine at any resolution over 1024x768. Unlike any other game engine I have, you just won't notice the difference between 2X and none at all, aside from the significant framerate boost. The last change was finding 'seta image_anisotropy' and setting it at 4. This is a good compromise value at 1152x864, keeping fps high without the floors and walls looking like shit in the distance.

Everything else I implemented in an autoexec.cfg, which you should place in the same folder. Here's my entire autoexec:
seta com_allowconsole 1
seta com_videoRam 256
seta com_systemRAM 1024
seta g_brassTime 0
seta image_preload 1
seta r_orderIndexes 1
seta r_useShadowCulling 1
seta r_useStateCaching 1
seta r_useVertexBuffers 1
seta r_useCachedDynamicModels 1
seta r_useTwoSidedStencil 1
seta r_useTurboShadow 1
seta r_useOptimizedShadows 1
I'm running Catalyst driver set v. 6.8, controlled by ATi Tray Tools. I don't even have Catalyst Control Center installed anymore. I'm not using Tray Tools to change anything other than forcing vertical sync. With this setup, I'm running Quake 4 at 1152 with barely a hitch or stutter. The game stays at 60+ fps almost all the time, the only exceptions being some indoor areas with a lot of dynamic lights trying to interact with each other. The best part is that I'm making almost no sacrifices in visual quality.

Anyway, this is what works for me. Your mileage may vary.

No comments: