Unreal Tournament 3 Tweak Guide

[Page 7] Advanced Tweaking



The Unreal Tournament series has a long history of being a highly tweakable game, and UT3 is no exception. Aside from the in-game settings, there are a large number of configuration variables and console commands you can use to alter the way the game plays and looks. In this section we look at the major variables and commands, starting with the .ini (initialization) files which store your settings.


The main .ini files can be found under your \Documents and Settings\[User]\My Documents\My Games\Unreal Tournament 3\UTGame\Config directory in Windows XP, or \Users\[User]\Documents\My Games\Unreal Tournament 3\UTGame\Config in Windows Vista. These .ini files can be edited using a text editor like Windows Notepad, but I recommend backing them up before changing any settings. If something goes wrong and you want to return these files to their defaults, simply delete them and they'll be recreated using the original templates (found under \Program Files\Unreal Tournament 3\Engine\Config) the next time you start the game. For this reason, don't ever edit or delete the Base .ini files; make sure to only edit those under the directory specified further above.



Click to enlarge

The main .ini files we will be examining here are UTEngine.ini which holds your main graphics and audio-related settings; UTGame.ini which holds your player-specific gameplay settings; and UTInput.ini which holds key bindings. Each config file is covered in separate sections below. Note: commands which are unclear, appear to have no significant or useful impact, or can be adjusted fully using the in-game settings are not covered in this section. Furthermore the developers have stated that some areas of the .ini files do not have any impact on the PC version of UT3, or are designed for debugging or for the Unreal Editor and hence are excluded (e.g. the [Texture Streaming] or [Editor.EditorEngine] sections have no impact). Just because a setting has a tempting name, doesn't mean it has any impact at all on the game. I've pesonally tested all the relevant settings and hence what is included below are the settings which do have some useful impact.



UTEngine.ini


[Engine.Engine]


bAllowMatureLanguage=False


This setting appears to control whether mature taunts can be used in the game.


bDisablePhysXHardwareSupport=True


This setting seems to work independently of the 'Hardware Physics' option in the in-game settings. Setting it to False should force hardware physics for systems with PhysX cards, but it seems to just cause a crash for both PhysX and non-PhysX users.


Update: As of the 1.2 patch, several of the options which use to work under [Engine.Engine] now only work when altered under [Engine.GameEngine], such as the bUseSound and DepthBias variables.



[Engine.ISVHacks]


bInitializeShadersOnDemand=False


Epic recommend setting this option to True as a workaround if you are experiencing crashes with an Nvidia card. Otherwise it is best left at False for optimal performance.


DisableATITextureFilterOptimizationChecks=True


This setting appears to be an ATI-specific troubleshooting option, and should only be set to False if you are having issues.


UseMinimalNVIDIADriverShaderOptimization=False


If set to True, this setting can reduce stuttering and hitching on GeForce 6 and 7 series graphics cards. Once again, as primarily a troubleshooting option, it shouldn't be set to True unless necessary.



[Engine.GameEngine]


bSmoothFrameRate=True


The game engine is capped to a maximum framerate, as determined by the value of the MaxSmoothedFrameRate variable (see below), which is 62FPS by default. This is done by the developers to prevent FPS spikes and thus provide smoother performance. However, by setting this option to False, you can completely remove this FPS cap. Keep in mind though that if you then find your framerate varying a great deal and causing jerkiness, this option is best set back to True. Uncapping your FPS doesn't increase overall performance as such, i.e. if you got 35 FPS in certain areas with the cap, you'll still do so without the cap.


Update: As of the 1.1 Patch, you can now also adjust this setting using the in-game 'Framerate Smoothing' option found under the Advanced Video Settings.


MinSmoothedFrameRate=22

MaxSmoothedFrameRate=62


These settings control the framerate range between which the game engine attempts to smooth frames. As covered under the bSmoothFrameRate setting above, if that setting is set to True, the framerate limit specified by the value of MaxSmoothedFrameRate will be enforced. Although you can disable this FPS cap, ideally if you want smooth FPS but don't want the default 62FPS cap, one thing you can do is to set the MaxSmoothedFrameRate to a higher value, e.g. 85. It's usually best to set your FPS cap to match your Refresh Rate, since even with VSync disabled, any framerates above your monitor's refresh rate will simply be partial frames anyway. There's no reason why uncapping your FPS will necessarily provide you a better gameplay advantage, and in fact it may do the opposite due to greater FPS variability, so experiment to see if simply using a higher framerate cap is actually a better compromise of smoothness and performance.


Note: When playing online, the engine is capped at 90FPS regardless of these settings, and can't be uncapped.


bClearAnimSetLinkupCachesOnLoadMap=True


I am unclear as to what this setting does. It appears to clear certain caches on map loads, and disabling it does not seem to have any noticeable impact, so it is best kept at its default to prevent memory management problems.


bUseSound=True


If set to False, this disables all sound in the game. The main use for this would be when troubleshooting an issue such as stuttering, to see if audio is the culprit.


bUseTextureStreaming=True


The Unreal Engine 3 uses a streaming approach to loading up textures. Streaming is actually designed more for loading times on consoles. However if this option is set to False, textures won't be streamed in at all, and instead most of the environment will be black due to a lack of textures. The only reason to use this would be for troubleshooting a suspected texture-related issue. Note that the UseStreaming=True variable found further above this setting seems to have no impact on the streaming system if set to False.


bUseBackgroundLevelStreaming=True


This setting is related to the streaming textures in UT3, and appears to control whether streaming occurs in the background or not. In my testing setting this to False made no significant difference to the streaming behavior or stuttering.


ShadowFilterRadius=2.000000


This setting controls the shadow filtering in the engine, basically determining how sharp or dispersed the outlines of shadows appear. The higher the value, the more 'blob-like' shadows become, the lower the value, the sharper the outlines of shadows.


DepthBias=.012000


This setting controls depth calculations, and effectively determines the way dynamic shadows are drawn. Higher values reduce shadows - a value close to 1 totally removes dynamic shadows on objects (but leaves static shadows such as those of buildings), and this may improve performance. Ideally if you just want to disable shadows, it's best to set the relevant shadow options to False - i.e. DynamicShadows and LightEnvironmentShadows.


Update: As of the 1.3 Patch, this variable seems to default to 0.912000.


ModShadowFadeDistanceExponent=.2


This setting controls the distance at which shadows fade into/out of view. The higher the value, the shorter the distance from the object at which shadows fade in/out. Higher values may improve performance and also remove distracting shadows in the distance.



[Engine.Client]


MinDesiredFrameRate=35.000000


This setting is designed to attempt to maintain a minimum framerate, possibly by reducing or removing effects on the fly. However in my testing I've found that it seems to have no impact at all both on image quality or FPS, so it's quite possible it's non-functional. It can't hurt to set it to your desired minimum framerate regardless.



[Engine.Player]


ConfiguredInternetSpeed=10000


In the past, this setting controlled your netspeed, which determines how much information is transferred between you and the server on which you're playing. The value is in bits per second (bps), and the maximum on most servers is 10,000. However in experimenting with this setting and the in-game Network Connection setting, it doesn't seem as though this variable has any impact, nor is it altered when the Network Connection setting is changed. I haven't been able to find where the network rate setting has been moved to in the .ini files, or even indeed if it's possible to alter it using an .ini variable or the Netspeed command anymore.



[ALAudio.ALAudioDevice]


MaxChannels=32


This option controls the maximum number of individual audio channels used for sound in UT3. Almost all modern sound cards support at least 32 channels; Audigy series cards can support up to 64; X-Fi cards support up to 128. If you're having audio problems set this value to the maximum channels supported by your audio device, or to try to improve performance or reduce audio glitches, try a lower value such as 32 or even 16 or 8 if all else fails. Note though that if set this too low you will get missing sounds.


UseEffectsProcessing=True


This setting doesn't appear to be the same as the Hardware OpenAL in-game option, since ticking or unticking Hardware OpenAL doesn't change this setting. In fact setting Hardware OpenAL to off changes the DeviceName setting to = Generic.Software, which indicates this setting is not the same. It appears to have no impact on audio quality or performance if set to False, so is best left at its default.



The next page continues our look at Advanced Tweaking.