Crysis Warhead is finally upon us, and that can only mean one thing—more tweaking! Before reading this guide, it is imperative that you read my original Crysis optimization guide here, as I'm not going to re-explain how to alter configuration files or access console commands. The engine is largely the same, and all of the information from the previous guide is still valid. Fortunately though it is far less necessary to use "tweaks" to get great performance from Crysis Warhead due to heavy optimization of the game engine. In fact, I currently play the game with only four commands saved in a system.cfg file in the main the Crytek > Crysis folder:
con_restricted=0 (allows the command console to be accessed in-game)
r_getscreenshot=1 (allows screenshots to be taken at any time during the game by pressing F12; the screens are stored in the Documents > My Games > Crysis Warhead > Screenshots folder)
r_motionblur=5 (enables Object Motion Blur in DirectX 9)
r_useedgeaa=2 (increases the level of edge smoothing in the game, greatly improving the appearance of trees and vegetation)
Of course, should you wish to play the game using the "tweaked" settings described in the previous guide, performance will be better, though there is a loss in visual quality (though sometimes very subtle) when compared to the vanilla Enthusiast settings.
Prior to Warhead's release, Crytek made much ado about the performance optimizations to the engine, presumably in response to the complaints that Crysis was unreasonably system-intensive. In my experience, Warhead does indeed run a fair bit more smoothly than the original in most cases. The level of graphical detail has been amped up considerably, so this is no small feat. However, there are some issues with performance that need to be addressed.
First, it should be noted that DirectX 9 runs much better than DirectX 10. This is a significant disappointment, as most Vista users will likely not bother to run the game in DX9 mode (assuming they even know it's possible), and the performance difference is not trivial. Not only is DX9 considerably faster than DX10, but DX10 also appears to be poorly optimized for dual-GPU configurations. I ran a simple test, using the in-game r_displayinfo command to measure frame rates, to assess the difference in frame rates between DX9, DX10, and single vs. dual-GPU configurations in both modes. All settings were at maximum, or "Enthusiast" settings, with Object Motion Blur force-enabled in DX9 as described above:
DX9: 35 fps
DX10: 18 fps
DX9: 18 fps
DX10: 14 fps
The difference between 35 frames per second and 18 frames per second is absolutely huge—the kind of difference people upgrade their video cards to achieve. The former is very smooth and playable, while the latter is choppy and unresponsive. Keep in mind there is no visual difference here; it's simply an optimization issue.
The game can be played in DX9 simply by right-clicking on the game icon and selecting DX9 from the drop-down menu. To change the game so that it always launches in DX9, right-click on the launch icon and click "customize". With the first option highlighted ("Play"), click "edit", and at the end of the tag line in the "Target" box, add "-DX9" at the end, without quotes. If you are using Steam, right-click and select "Properties", then "Launch Options", and write "-DX9" (again without quotes) in the space provided.
It should be noted that DX9 comes with one caveat: it automatically disables Object Motion Blur. This is one of the more impressive visual effects in the game, so it's not a small loss. This feature can be force-enabled in DX9 using the command r_motionblur=5, but it causes some visual errors with aliens, nanosuits and characters' faces during cutscenes. Hopefully Crytek will correct this issue with a future patch.
Also significant is that Warhead introduces some major bugs with texture streaming. While the command r_texturesstreaming=0 was an easy way to improve visual quality in the first game, in Warhead many users, including me, experience frequent crashes to desktop when texture streaming is disabled. This is very disappointing, as there are a number of texture-streaming bugs in the game; textures sometimes fail to load, and distant textures don't always display as they should. Texture streaming is automatically disabled when texture settings are on Mainstream or lower, and those settings seem to be relatively bug-free; however this comes of course with the caveat that overall texture quality is reduced.
Crysis was fun to tweak, but it's rather fortunate that similar performance can be achieved in Warhead without laboring over configuration files. A few inconsistencies remain, and DX10 performance is an absolute joke, but overall the engine has been very well optimized since it was introduced last year. Here's hoping that Crytek can continue to optimize the engine, bring DX10 performance up to par, and fix the relatively minor bugs plaguing the game at its release.