By now it's quite widely known that Dirty Bomb isn't the most 'optimization-friendly' game in the world. The main reason, which I'm only telling you so you know why you might have FPS troubles, is that the game is built on Unreal Engine 3. Unreal Engine 3 isn't very great with multithreading/multicore performance, but the devs are modded the engine heavily to make these work but it will simply never be perfect due to flaws in the Engine. Dirty Bombs performance is also almost all CPU based. You can have the best graphics cards onthe market and still have bad FPS if your CPU is somewhat older(older than i3/i5/i7 2XXX(or AMD equivalent) series seem to have the most FPS issues). There are optimization runs being done almost every patch, some are amazing and some make you feel like FPS meter is lying to you. If you have no FPS troubles, your game runs fine with default/max settings, tweak the game with the in-game settings to your pleasing and add some of the visual commands. The 'potato configs'(or for ET scene 'rivatuner style configs') are not possible anymore. If you want maximum FPS, you can read along. ALWAYS SET YOUR CONFIG TO READ-ONLY AFTER CHANGING SETTINGS, THE GAME MAY REVERTS CHANGES IF YOU DON'T!

Config files



DB is heavily tweak-able, arguably more than ET. From HUD elements to visuals, almost can be changed to some degree. Disclaimer: This might change with coming patches, so beware if suddenly your config looks different if you use custom settings. Writing this as a competitive player, and assuming most people here have the same idea about shooters, I will focus on main things that align with that mindset. Unlike ET, Dirty Bomb uses three files to save your settings, which are these:

  • ShooterEngine.ini (Graphics/Base settings, ET's r_ and com_ settings)
  • ShooterGame.ini (Game settings, ET's cg_ settings)
  • ShooterInput.ini (Binds)


They can be found in:
*:/My Documents\My Games\UnrealEngine3\ShooterGame\Config
* being whatever hard drive your My Documents folder is located at.

Maximizing FPS(ShooterEngine.ini)



The easy way to say this is: ,,Get a max FPS config from the interwebz". And you wouldn't be far off, I won't go over every command I will link important information on that in the Sources page. Most top players in the competitive scene have very similar configs to max out FPS. Mostly because in the earlier Beta stages the game ran very poorly on almost all modern systems and everyone was using the same max FPS configs. There are a couple of versions out there now from different people, but currently one of the best versions(my preference and best results for me) was made by France Kroad. You will be able to find all downloads/links at the Sources page of this article. Closer to where we are at the moment, people starting using more different settings as the game is get optimized better but by downloading 'pro player configs' you will find many of them have very similar configs. As in ET, it is recommended that you cap your FPS to create consistency, the commands related to this are:

  • ResX= (resolution width)
  • ResY= (resolution height)
  • bSmoothFrameRate=True (Change this to =False for uncapped)
  • MinSmoothedFrameRate=X (X to what you want your FPS capped at)
  • MaxSmoothedFrameRate=X (X to what you want your FPS capped at)
  • MinDesiredFrameRate=X (X to what you want your FPS capped at)
  • MinAllowableRefreshRate=X (X to what Hz your monitor is)
  • MaxAllowableRefreshRate=X(X to what Hz your monitor is)


As usual it is recommended to have the FPS and Hz the same value for the best consistency. However some people, if your system can handle it, suggest using doubles of your Hz for your FPS cap. Example: if your monitor supports 120Hz, set your FPS to increments of that number: 240/360/480 etcetera. But personally I suggest using capped 120FPS at 120Hz simply because the game is still quite inconsistent at high FPS rates.

Clear visuals



Same as for the above section, due to the configs not varying a lot because of FPS related issues the visuals are also often similar. There are however a few commands and settings that benefit your visual clarity, some at some costs. by far the most impact full command would be ColorGrading, this command affects how the games lighting and saturation behaves. =0 and =1 will look very similar but =2 takes away almost all (over)saturation giving the game a brownish tint. Some players prefer 0/1, personally prefer 2 and there are several players who change this per map for preference. Alongside ColorGrading there is FogDensity and BloomSize, quite self-explanatory. Both of these values at 0 means that Fog is completely removed and a lot of unnecessary lighting is removed. These commands however cannot be done through the main menu or in the ShooterEngine.ini file. The best way to use these commands is by using a bind for these and some other settings, a bind that pretty much every competitive player uses at this point. I will explain this more when I get to the useful input settings later in this tutorial.

Another command that improves visibility immensely is MaxParticleVertexMemory This command changes how many 'particles' the game allows for things like explosives, flashes and fluids. You can find these command in the ShooterEngine.ini and by default will is on =400. Changing it to =1 will completely remove explosives, muzzleflash, wallmarks and many other things(too many to list). This makes the game a lot clearer obviously but keep in mind that it will take some getting used to as it can make you feel like you get exploded from nowhere as things like seeing what direction an airstrike is landing becomes slightly harder. There are still markers on the floor showing it, but its a lot less visible than a massive explosion. This command also removes some 'warning-indicator's like the red rings on enemy landmines, the red light still shows but beware of this command if you are not comfortable without indicators. Setting it at =300 means there are indicators, explosions and muzzleflash but no smoke so it's somewhat of a middle ground. I also recommend putting MaxFluidNumVert at =1 as-well as these command seem to do similar things but in DB it's unsure which command controls exactly which particles. Having both on =1 seems to be the cleanest and best FPS solution.

Then there is DisplayGamma in the ShooterEngine.ini as-well which is just the command for the gamma. This can be changed in the in-game menu's but I suggest setting a value in the config file. Numbers between 2 and 3.5 are most used with the most common being 2.4 and 2.6.

OneFrameThreadLag



This command touches both your FPS and Input, in simple terms if you have this setting on =True in your ShooterEngine.ini your FPS gets a massive boost(as big as 30-50 more). It does this however at the cost of very minor input lag. In most scenarios, this input lag is not noticeable to any degree! However on some systems the input lag can be very noticeable to a degree where it is not worth the FPS boost. Most, if not all, players I know have this command on =True for the FPS boost. The basic 'guideline' here seems to be: "if with =True your FPS is above 100 the lag won't be noticed". So I would suggest having this on =True unless even with this you still have a bad FPS, but in that case it's likely your system is just outdated and the game won't run well whatever you do.

Stutter Fix



A lot of people complain about stuttering in the FPS in DB, especially after about 30 minutes of gameplay. Tasct1c on the SD forums linked this fix for this and from my own testing it seems to make the menu's slightly faster as-well as take away some of the stuttering.
QuoteHere they are: (REMEMBER, READ CAREFULLY, MATCH EXACTLY)
"*"=setting
"bUseTextureStreaming=True" (these are default for most but not all UE3 games)
"bUseBackgroundLevelStreaming=True"
"MipFadeInSpeed0=0" (these even out mipmap loads and draw time)
"MipFadeOutSpeed0=0"
"MipFadeInSpeed1=0"
"MipFadeOutSpeed1=0"
"PhysXGpuHeapSize=64" (these balance physx calls even on cpu based physx titles)
"PhysXMeshCacheSize=16"
"bSmoothFrameRate=TRUE" (this really does need to be on, ignore what you've read)
"MinSmoothedFrameRate=30" (keep these right here. setting higher/lower does no good)
"MaxSmoothedFrameRate=400"
"DisableATITextureFilterOptimizationChecks=False" (driver based opt is MUCH faster)
"UseMinimalNVIDIADriverShaderOptimization=False" (same here)
"PoolSize=256" or (vidmem/poolsize exmpl: 512/128, 1024/256, etc, DO NOT exceed 768)
"bAllowMultiThreadedShaderCompile=True" (should already be on by default)
"ThreadedShaderCompileThreshold=4" (formulate like this: # of cpu-cores (not threads) -2)
"OnlyStreamInTextures=True" (reduces overall texture batch call size)


If you're looking to do more tweaking, there are a lot of tools/documentation available with information on tweaking. Since this is Unreal Engine 3 a lot of other games tweaking can work for Dirty Bomb as they are the same engine. Personally I've used a lot of Borderlands 2 documentation on tweaking to learn bits and pieces as research, I know other players who used Unreal Tournament documentation as-well. Keep it mind it doesn't always work the exact same, but it's a good place to start from as the documentation on DB itself is still quite little. In the sources I will include some links to start you off.