Making Unreal Engine 3 Games Their Smoothest
Posted: May 15th, 2010 | Author: kn00tcn | Filed under: Software, Tips/TutorialsTags: engine, fps, gaming, graphics, tweak, unreal
UPDATE: On some newer UE3 games, enabling vsync either in-game or from the .ini files causes severe stuttering, particularly in crossfire. If you run into such a game, you need to use D3DOverrider to force triple buffering. I can confirm this on a 4870×2 in UDK, Tribes Ascend, Blacklight, Monday Night Combat, probably some others. Otherwise, no problems with something older like Borderlands.
Quick tip for Unreal Engine: Fix the awful defaults. Mainly, set the smooth framerate option to match your refresh, enable vsync, and disable mouse smoothing.
Any movement or animation on any monitor screen is visually smoothest when it’s synchronized to the screen’s output, or refresh, rate. Vsync does just that. The Aero theme of Vista/7 looks nice and smooth when things are moving because it always has vsync enabled. Similarly, games should also have it enabled whenever possible. This even applies if you’re getting lower fps that’s not completely aligned to your refresh. For example in Crysis, I’ve seen it go around 35-45 fps, but looking really jerky until vsync is enabled.
Watch out for increased input lag, however. This is when you push a button or move your mouse, the action that should appear on screen gets delayed. Different engines handle this side effect better than others. Source engine appears to get almost unplayable with vsync enabled, unless you cap the game with fps_max (removed in Left 4 Dead and Left 4 Dead 2, so it’s a little more annoying). Unreal seems to be quite nice with vsync, especially since the engine can be set to render only up to your refresh to avoid the input lag seen in Left 4 Dead. Unreal also appears to have triple buffering built in, helping if your system cannot render as fast as your refresh: It won’t just jump straight down to half fps, but render as fast as it can with light ticking stutters.
Anyway, on with the Unreal tweaks. You’ll need the *Engine.ini and *Input.ini files for the game you’re adjusting. You’ll have to figure out where they’re located, but it’s usually either in MyDocuments or AppData. Here are a few:
| Alien Breed 1 | #MyDocs#\My Games\UnrealEngine3\AlienBreedEp1Game\Config\ |
| Borderlands | #MyDocs#\My Games\Borderlands\WillowGame\Config\ |
| Homefront | #MyDocs#\My Games\HOMEFRONT\GCGame\Config\ |
| Mass Effect | #MyDocs#\BioWare\Mass Effect\Config\ |
| Medal of Honor | #MyDocs#\EA Games\Medal of Honor\Config\ |
| Mirror’s Edge | #MyDocs#\EA Games\Mirror’s Edge\TdGame\Config\ |
| Moonbase Alpha | #MyDocs#\My Games\Moonbase Alpha\MoonBaseAlphaGame\Config\ |
| Rock of Ages | #MyDocs#\My Games\UnrealEngine3\BoulderGame\Config\ |
| Sanctum | #MyDocs#\My Games\Sanctum\SanctumGame\Config\ |
| Section 8 | #MyDocs#\My Games\Section8\S8Game\Config\ |
| UT3 | #MyDocs#\My Games\Unreal Tournament 3\UTGame\Config\ |
Under the Engine.ini, find the smooth framerate parameters. When set to false, I noticed lots of stuttering in Mirror’s Edge, so I always keep it on just as it is by default. I just put the min at 0. More importantly, fix the max since it’s always at 62 at default (why!), make it 60 or whatever your refresh rate is:
bSmoothFrameRate=TRUE
MinSmoothedFrameRate=0
MaxSmoothedFrameRate=60
Also find the vsync toggle if there is none in your in-game options, might as well do it now since you’re in the Engine.ini:
UseVsync=True (note the message at the top of this page)
Now go to the Input.ini. It seems that in Unreal Engine, when you’re fps starts dropping with mouse smoothing enabled (which is usually default), the mouse movement starts accelerating! This completely throws your aiming way off. Turn smoothing off and your movements should be the same on screen whether you’re 60, 40, 20, or any fps:
bEnableMouseSmoothing=false
Now your Unreal Engine based game is as smooth as it can be! Unless of course your system isn’t powerful enough to sustain 60/refresh framerates, but it’s still less jerky than if the image was tearing or your mouse control was changing speeds. Have fun!
Of course, this is all separate from any actual in-game options that raise or lower details. Even if you can’t stay at a constant 60 (or whatever your refresh is), these tweaks still apply to make it smoothest even at lower fps.
Last Modified: May 9th, 201210 Comments »


Cool
Even better, UT3 has an option in one of the more recent patches, something about one frame thread lag. Turn it off (It’s on by default) and you’ll have almost no input lag.
I cant really feel it compared to source, maybe source has a similar option (also gotta try tommti’s tool).
it was very interesting to read.
I want to quote your post in my blog. It can?
And you et an account on Twitter?
@frozer Quote it with a link, I don’t use twitter much at all….
Where is the file for Transfromers war on cybertron because their not their
@Ripcat, it has to be somewhere… appdata or mydocs or even the game’s folder
“Source engine appears to get almost unplayable with vsync enabled, unless you cap the game with fps_max”
i don’t what kind of crap hardware you experience this on but it has NEVER been the case in my experience, on any hardware…
@DOOMJESUS, yeah a 4870×2 is real crap hardware isnt it…, other people have seen this too
the input lag during uncapped vsync is simply longer compared to capping to 60 with vsync, & yes it’s quite possible that AFR being used in crossfire introduces an additional delay
i should mention that around september 2009, a driver update really helped reduce the input lag
maybe i’ll make a slow motion video sometime
I know this is an old post but this helped me get Hunted: The Demon’s Forge running super smooth. Thanks.