We Just Weren't Ready Yet
I don't care what Cevat Yerli says about their "upscaling" game engine, Crytek's partnerships with Intel and nVidia, or the many gamers (including me) who insist that Crysis scales well and runs just fine. The reality is that this is a game that, despite a relatively lengthy development cycle, was probably released one generation of hardware too soon.
Any seasoned PC gamer expects that not every game will grant them 60 frames per second at maximum settings in 1920 x 1200 resolution. But when even the most costly dual-card setups struggle to run Crysis at its vaunted "very high" settings, something is clearly a little out of whack. Sure, Crytek will patch the game, nVidia will continue to improve its drivers, etc. etc., but it is unrealistic to expect any dramatic changes in performance.
Fortunately, Crytek have made their CryEngine2 a very flexible, "tweakable" engine. While the in-game settings provide enough flexibility for most gamers, those wishing for the absolute best combination of performance and image quality will want to dive into the game's intimidatingly vast command variables, or Cvars. I've spent a lot of time fiddling with Crysis settings. I've scoured the 'Net and tried lots of suggestions. And I've found what is, as far as I can gather, about the best combination of performance and quality I can get. So I'd like to share with my fellow PC gamers a few tips and tricks to get the game running and looking its best.
Revise your expectations
I'm running an Intel quad-core @3.2ghz, 2GB of RAM, and a robustly overclocked nVidia 8800GTX on a 22", 1680×1050 display. Yet despite a beefy rig, the only time I've been able to keep this game consistently at 60 frames per second is using the "low" graphical settings. However, Crysis is a very playable game at 25-30 frames per second, mainly due to a well-implemented use of motion blur. I cannot use anti-aliasing in this game without cranking the resolution down, which messes up the image quality far more than it's helped by a little AA. Crysis uses an incredibly advanced graphics engine that is rendering tons of unique, interactive objects in large, open areas. It's simply unrealistic to compare it to games like BioShock or Call of Duty 4 that take place in mostly static, confined spaces. Unless you're willing to play a game that looks like Far Cry, don't expect to see sky-high frame rates. The goal should be a playable, consistent frame rate.
Also remember that in a game where 25-30 frames per second is playable, even a minor improvement in frame rates (say 3-5 frames per second) can make the game feel significantly smoother.
Know what works
Based on my experience, there are only a handful of graphical settings that significantly affect performances. They are, in order of degree:
1. Shader Quality: This affects both image quality and performance more than any other setting. Turning it to "medium" will speed the game up dramatically, but with a significant loss in visual detail.
2. Object Quality: Often overlooked, Object Quality affects the number, size, and quality of every object in the game world. Turning it to medium or low will produce a significant boost to frame rates, but distant objects will not be rendered, fewer objects will be on screen, and there will be noticeable "draw-in".
3. Shadows: Simply turning shadows to "medium" can produce a nice performance boost with minimal visual impact versus the "high" settings. "Low" simply turns all shadows off, and "very high" creates soft shadowing that is extremely system-intensive. Crysis uses real-time lighting and shadowing across all objects, so even the leaves of every tree cast a realistic shadow. So even at lower quality, the shadowing is extremely complex.
4. Post Processing: This setting controls things like depth of field and motion blur. Contrary to popular belief, motion blur (enabled when Post Processing is set to "high" or higher) does not produce a significant loss of frame rates. In fact, turning off motion blur is a big mistake because although the frame rate might be negligibly higher, it won't seem as smooth. Turning off "hit blurring" and depth of field can improve frame rates during combat.
And that's about it. Texture quality did not affect performance at all on my system, but may if your video card has only 256mb of VRAM. No other setting I experimented with affected the the frame rate to any significant degree, save for water, which will smooth out frame rates when set to "low" ("medium" and above did not provide any difference in performance for me). Physics and sound settings may affect performance if you have a low-end CPU (less than a 2.4ghz dual-core).
Oh, and another thing before we get to the nitty gritty… play the game in DirectX 9, even if you have Vista (in Vista, simply right-click on the game icon to see the option to play it in DX9). It was designed in DirectX 9, and despite the DX10 code being added during development, it's still just a hair more choppy than its native DX9. There also seem to be more odd performance glitches in DX10.
Tapping the Cvars
The secret to making Crysis look and perform its best lies in the command variables. To find them, go to C:>Program Files>Electronic Arts>Crytek>Crysis>Game>Config>CvarGroups. The first thing you must do is make a backup of this folder. However, do not store the backup in the same folder. For whatever reason, I found that my tweaks didn't work until I moved the copy folder out of the "Config" directory. I simply stored it in the Crytek folder. Open these with Notepad. Notice that the commands are organized into a top group marked "= 4", then three groups labeled "", "", and "". These are, respectively, very high, low, medium, and high settings.
Alternately, you can create a file using Notepad, and save it as "system.cfg". Store it in the "Crysis" directory. You can put the relevant commands here, and the game will utilize them automatically.
"Very High" look without the performance hit
There are a few system settings that can make the game look virtually indistinguishable from the "Very High" settings, with virtually no performance impact. In order to do this, your PC will need to able to run the "high" shaders at roughly 25-30 frames per second. Otherwise, disregard this section and use "medium" or "low" shaders.
First, under the Cvar titled "sys_spec_Quality", scroll down to the  section, and change the following command:
q_renderer=3 — This doesn't do much by itself, but it's necessary for a couple of key effects. Save and open the folder titled "sys_spec_Shading". Under the high settings, change the following commands:
r_SSAO=0 — This is alters the lighting slightly, but is virtually unnoticeable. Setting it to zero provides a nice boost to frame rates.
r_usePOM=1 — This enables parralax occulsion mapping, which makes textures look much more realistic with little to no impact in frame rates.
Next, go your Post Processing Cvar folder. Change the following values under the "high" settings:
r_colorgrading=1 — This dramatically changes the color depth of the game, so it looks like "very high" settings.
r_useedgeAA=2 — I like to add this one in. It won't affect performance, but it reduces the shimmering effect on distant trees for a more pleasing overall look.
r_sunshafts=1 — This is strictly optional, as it does tax frame rates a little, but not drastically. This setting adds "god rays" to the sunlight. I generally prefer it off, as even though it looks cool, I'd rather keep those 2 or 3 frames per second.
r_motionblurshutterspeed=0.03 – This is simply a favorite of mine, an optional command to add. It increases the motion blur effect slightly, making the game appear more smooth. It does not affect performance.
Next, go to the Object Detail folder, which controls the Object Quality setting in the game. This is a bit of an ace in the sleeve, one that most folks overlook, that can really improve performance. The problem with the vanilla settings is that they scale poorly—reducing Object Quality to medium or low not only reduces the number of objects and view distance, but leaves players with a lot of unsightly draw-in. With this tweak, the goal is to reduce the density of relatively insignificant objects (brush and the like) while preserving view distance and draw distance. Under the "low" quality group (), make the following changes:
Lastly, open the "shadows" folder. While I recommend that shadows simply be set to "medium" for the best combination of performance and quality, you can alternately copy the "very high" specs over the "high" specs, then alter the shadow map size and blurring as:
r_ShadowBlur=1 (or 0 to disable)
This will preserve the distant view and soft shadowing of the very high settings, while reducing the overall performance impact.
For all other Cvar groups (textures, particles, game effects, water, physics, sound, and volumetric effects), you can simply overwrite the "high" specs with the "very high" specs. The performance impact will be negligible, if there is one at all.
Put it all together
Now simply boot the game, and select all "high" settings except for Object Quality, which should be set to low, and Shadows, which if you are not using the tweaks should be set to medium. Now remember, you can either alter the original Cvars, or simply copy all the commands into a single "system.cfg" file stored in the "Crysis" directory. Both work just fine.
The game will still be quite demanding, make no mistake. This will not magically give you 60 frames per second. But it will give you a game that looks virtually indistinguishable from the default "very high" settings with only a fraction of the performance impact. And even if you can't run the shaders at a "high" equivalent, you can still get a great performance boost with the Object Quality tweaks. Enjoy!
- Demo roundup — Batman: Arkham Asylum, Call of Juarez: Bound in Blood, Dawn of War II, Darkest of Days - August 18, 2009
- Why isn’t PC gaming pushing technological boundaries? - July 23, 2009
- ARMA II quick impressions: I’m really trying! - July 3, 2009