I discovered this some months ago, when vsync and crossfire are enabled in old UE2 games, the combination will cause strange framerates and massive stuttering. So you should disable CF by disabling Catalyst AI, rename the game to ForceSingleGPU.exe, or make a profile in RadeonPro or the profiles feature in CCC (starting from Catalyst 12.1).
This seems to affect the standard UE2 games, not the heavily modified ones like Bioshock or Duke Nukem Forever. It does not matter if you’re enabling vsync with D3DOverrider, an in-game option, or the engine .ini file, it all results in the same stutter. I’m noticing it in Unreal Tournament 2004 for example.
UPDATE: 12.3 breaks the editor when you’re using these old dlls.
You could probably expand the rest of 11.2 and put it into the binaries folder. The game mode is still fine, so just the editor is affected like the above screenshot.
It appears every driver after Catalyst 11.2 has a bug in Unreal Development Kit. I would have noticed this sooner if I used UDK more often this year. I don’t know how many cards this affects, it might just be for older cards. I’m on a 4870×2.
Anyway the solution is simple, put 11.2’s dx9 dlls into the binaries folder of UDK. Installing the whole 11.2 driver set for the whole system is not a useful workaround, since most people would need fixes or performance gains seen in newer drivers.
For the 32bit editor and game: put atiumdag.dll into \Binaries\Win32 For the 64bit editor: put atiumd64.dll into \Binaries\Win64
If you’re using RadeonPro to force crossfire profiles, it will overwrite the dll that you placed, so you’ll have to use the driver version compatibility feature to use 11.2’s dll. I would instead just make a copy of and rename the 32bit UDK.exe into AliceMadnessReturns.exe to get crossfire scaling when launching the game.
I finally got a standalone UDK game working. I’ll make some kind of a tutorial, at least about the flash resolution buttons.
The main point was to get all of the custom stuff functional and out of the way. Now I can focus on content. Here are the ‘features’:
-standalone packaged installer
-custom splash screen
-custom intro movie
-custom menu background level with matinee camera loop
-custom menu in flash with resolution changer
-custom gametype in 3rd person
-custom AO/post process chain
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 and a 570m in UDK, Tribes Ascend, Blacklight, Monday Night Combat, Hawken, and probably some others. Single GPU or Crossfire, same type of low framerate and stutter caused by vsync without triple buffering. Otherwise, no problems with a lot of older games 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:
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:
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:
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.