Tuesday, 1 February 2011

Tech Analysis: Crysis 2: Multiplayer Demo (360)

Crysis is synonymous with graphics… that much is obvious. With each instalment in the series, Crytek subsequently included everything but the kitchen sink in their approach to real-time rendering. If performance suffers, then you simply throw in a new graphics card, or two. Now, while that might be fine in the PC space, consoles on the other hand, are somewhat more limiting. That said, with Crysis 2, the developers are still implementing their ‘as much as possible’ philosophy, perhaps only downgrading certain parts of the game in accordance with memory and performance restraints.

To that end, the recent multiplayer demo of Crytek’s upcoming tour-de-force, demonstrates that with a bit of chopping and editing, that is possible to deliver some of the high-end visual components usually seen in either the top-end of real-time rendering, or found in lower-quality CGI, but on consoles. We only have the 360 demo to hand – there isn’t a PS3 one yet, nor has there been anything shown of the Sony version since the initial unveiling of the CryEngine 3. But what we have here is a mightily impressive showing of just what can be done.

So, just how good does Crysis 2 look on consoles, or more specifically, on the Xbox 360? Well, before we begin a proper, it’s fair to say that the game is running on the console with what looks like ‘medium’ detail settings on the PC; which means that you get most of the good stuff, but not without some very obvious pairing back of overall image quality as a result. There have also been a few added effects over and above that of the ‘medium’ setting found in the original Crysis, although not compared to the same setting in the sequel.

Let’s take a closer look.

As always, we start off by looking at the framebuffer. Straight away, via both looking at the screens and by playing, it appears that Crysis 2 seems to be rendering in a sub-HD resolution. Initially, this looks like being somewhere in between that of the Call Of Duty games (1024x640) and Halo Reach (1152x720). However, pixel counting reveals that Crysis 2 actually features a 1152x720 FB just like that of Bungie’s title.

Why on first impressions, it doesn’t look as clean around the edges, is down to the fact that Crytek are using a lot of post processing effects on the screen, along with a low resolution depth of field implementation, whereby objects either in front or behind the DOF feature an addition cut in resolution. This means that Crysis 2 does look slightly softer than other games with similar resolutions. Although, there are other factors which also affect this.

In addition, like with many games operating on the more bandwidth restricted PS3, Crysis 2 uses low-res buffers for all its visual effects. Things such as water, smoke, fire, and other effects are all rendered in a resolution that is significantly lower than that of the framebuffer. Sometimes this goes unnoticed, like in the case of small particles and such, but with the larger effects it is far more apparent.

Moving on, in terms of anti-aliasing, when we first looked at Crysis 2 it appeared that the game seemed to have no AA at all. However, initial looks can be somewhat deceiving, as the screenshots tell us a slightly different story. There seems to be evidence of 2xMSAA on some surfaces, but not on others. Perhaps Crytek are using some kind of selective MSAA routine? Although, delving deeper confirms that a selective, plus temporal approach is what is being used.

The effect of this is clearly evident in the screenshot below. Here, we can see a manifestation of double-image ghosting, a common side effect of the frame blending used in creating temporal anti-aliasing. Where Crysis differs, is that the engine is performing AA on both static and dynamic scenes: selective AA is applied to certain parts of the scene in motion, and on more of it when there is no movement. In comparison, games such as Halo Reach on 360, and DMC4 on the PS3 only apply AA on static scenes.

For the most part, the end result is that Crysis 2 looks like it has no AA at all. There is plenty of edge-shimmering and sub-pixel artefacts that extend across the whole scene. Furthermore, this isn’t helped by the high-contrast nature of the stage present in the demo, nor the upscaled FB, both of which accentuates this further.

Image quality then, leaves a lot to be desired. And this isn’t helped by the use of what looks like an aggressive LOD and texture streaming system, in combination with poor quality texture filtering. Though it is comparable to titles such as Halo ODST, which sacrifice IQ for more advanced effects in other areas. Crysis 2 does the same.

In the demo, we can see a few high-resolution, detailed texture maps, alongside many lower quality ones. In fact, to balance out memory usage Crysis 2 actually has more lower res textures than higher res ones. Most look good all things considered. However, actual filtering is decidedly basic. Crysis 2 appears to be using bilinear filtering for most of its textures, with what looks like the occasional bias towards certain surfaces. Then again, the LOD could be affecting this.

As a result of this, and the LOD, many details in the distance are blurred, and lack sufficient sharpness, which isn’t helped by the consistent, and sometimes varied nature of both geometry and texture pop-up.

While playing, you can notice that various textures, and geometric environmental details – such as grasses, metal railings, etc, tend to pop-up as you come close to approaching them. It’s very obvious in nature, with a few instances of high resolution textures not actually appearing until we got around a metre away from the effected surface.

That said, memory constraints, along with the desire to include real-time lighting and shadowing techniques, means that some compromises have had to be made. Even with the Xbox 360’s fast, bandwidth monster that is the Xenos GPU, there still isn’t enough available in order to have hi-res effects, mild LOD, and top-end IQ. But the choice that Crytek have made, appears to be the right one for the game, especially it seems, when you see how most surfaces are normal mapped, and are affected by the surrounding lighting.

You also have to consider the 360’s 10MB EDRAM limit, by which you have to fit the entire framebuffer into, or get an additional penalty in terms of having to use tiling. And, that’s exactly what Crytek are doing for Crysis 2. By opting for a 1152x720 FB they can avoid tiling.

But as I said earlier, this compromise appears to be worth it given the advanced, tech-heavy lighting engine used throughout every area of the game. For those who don’t know, Crysis 2 – on both consoles and the PC – uses a real-time global illumination system for all the main lightsources in the game. We have hear what Crytek are calling ‘single-bounce global illumination’, whereby, as one lightsource casts a light, it is then reflected once back out into the environment on another surface, casting dynamic shadows as it does this.

Not all light sources in the game cast shadows, nor would you expect them to. However, when there is a few lightsources on screen at once in close proximity, a single, main lightsource – of the few - will cast a dynamic shadow onto the environment instead, thus partially negating this. As a result, there is not only a greater sense of depth to the environment and everything in it, but also a more natural look to any given scene as a whole.

The level of accuracy present from this advanced rendering technique is stunning to see compared to other games which simply fake it, using pre-baked environmental lightmaps, or many local dynamic lights – and a fair amount of baked ones too – in order to emulate this. Crysis uses both a single GI solution, along with additional local lights, thus yielding the best results when processing power is a limited commodity.

For example, there are some really cool touches, such as the light reflections coming off the barrel of your gun when fired, or as it passes through other lightsources in the environment. We can also see light reflected off of shiny surfaces, weapons fire, explosions, etc. and sunlight. All of which is very impressive for a console title using what equates to five year-old technology. But then, that’s the magic of closed box architecture; being able to push the envelope in ways not possible on the PC with similar specifications.

Also impressive, is the use, albeit quite limited, of secondary – or indirect – shadowing on a few surfaces. However, seeing as this comes with a heavy impact on performance, in order to keep the game running smoothly, and in-line with memory contrasints, there is a very aggressive LOD controlling the display of these effects. In-direct shadows only appear mere feet away from the player, often too late to really be noticed when playing the game. They are there however, but in limited amounts.

Complementing this, we have the expected return of SSAO (screen-space ambient occlusion), which features heavily in the core make-up of the CryEngine technology – it’s actually a custom implementation I believe, one that works with the company’s GI solution, and as usual bringing additional depth to the scene.

Other nice touches include high quality specular reflections, whereby the actual light point is reflected more sharply than as a simpler rounded shape. The light reflection has less spread, being more focused. Although, this in turn also depends on the level of specularity of the surface light is supposed to be reflecting from. Either way, specular, and indeed diffuse reflections – the two combined – are handled much more convincing than in most titles.

In addition to the standout GI solution, and the lighting in general , we also have a high-quality implementation of high-dynamic-range lighting (HDR), which not only creates a strong bloom effect when the player is facing the sun, but also a nice transition between both the top and low end of the spectrum. Although, as is evident in the screenshots, Crysis 2 definitely favours the extreme top end in various parts of the demo stage – bloom appears almost too overblown at times, with colour tinting on surfaces that this shouldn’t be occurring on.

We can also see that occasionally, and on some surfaces – mainly on background objects – that the game’s use of lighting appears to be simplified, perhaps even paired back by LOD again. Take the buildings in the distance for example, while appearing slightly basic in construction (textured, polygonal boxes basically), the lighting surrounding them has been reduced - It almost looks like the GI lighting model doesn’t apply to them, or that in some cases, real-time lighting isn’t present.

A fogging effect is also present, no doubt to help hide/blend in the distant low-detail objects produced by the LOD system. Perhaps, this is having an additional affect on the lighting in these areas. In addition we see what looks like a basic skybox. Plus, the smoke effects that cover the sky are flat, and also inconsistent in the way they cover the scene compared with the accuracy of the surrounding lighting.

That said, there’s no doubt that Crytek’s use of such an advanced lighting scheme pays dividends to the overall look they are trying to create. The Crysis 2 multiplayer demo is home to some of the most accomplished lighting seen on a console title. It’s not just the use of dynamic lighting – which many games have now anyway, but the extra level of realism provided by the GI system.

Given the limitations in working on aging, memory starved hardware (compared to today’s top-end, even mid-low-range PC’s), some cuts are always going to be made. Although, when you see just how well the demo performs, these look like being worthy compromises.

Crysis 2 targets a 30fps update, and for the most part, manages to near constantly hold it all throughout the entire experience of the demo. The game only very rarely slows down, and even then, it’s only for a split second or so, dropping what looks like a very small amount of frames. Impressively, it even manages to achieve this feat when there is not only a varying amount of particle effects on screen, but also on the rooftops with several people in one place, where the full force of the game’s GI lighting can be felt.

However, on occasion, when outside and there is lots going on, or as I’ve found, after getting killed and seeing a third-person replay of my death when combat is still breaking out, some slowdown will occur.

So, performance in terms of framerate is solid, but here we also see evidence of the game being fully v-synced too. Without equipment to measure if there are any frames being torn – even if it is just a single one in the whole rendering cycle – we can’t say for sure, 100%. But, what is clear, is that throughout the time spent in the company of the demo so far, no screen tearing seemed to be apparent.

In any case, even if one or two frames were being torn, unless there is a steady succession of torn frames in a row, then any screen tearing simply won’t be visible to the human eye. So, it stands to reason that Crysis 2 maintains some kind of v-sync: either a hard sync, or a soft v-sync dependant on rendering load.

One thing that doesn’t feel quite right though, alongside Crysis 2’s smooth 30fps refresh rate, is the noticeable input lag felt when jumping or performing other moves. You can also feel the very same thing as you aim and fire too. So, what could be causing this?

Well, my best guess - seeing as the game appears to be v-synced - is that Crytek could be using a frame buffering technique in addition to a soft v-sync, such as double buffering, whereby two frames are rendered for every one displayed with one being held in reserve just in case the first tears. That would at lest explain the additional latency that we seem to be feeling, although this isn’t a solid conformation on the matter.

Looking at how the game performs under load, the solidness of the 30fps update, we can understand just why some of the less attractive compromises were made. The experience as a whole is a smoother, more succinct one. It’s very impressive on the whole. There has been a balancing act between trading off certain elements in order to get others up and running in budget, per frame no less, and without increasing overall cost in other areas to do so.

In that respect, this is all to be expected on a console release dealing with GI solutions and plenty of dynamic lights. Crytek’s engine does indeed render various parts of the pipeline in different passes, and with varying degrees of quality. Although, it also delivers many high-end effects all in one package, which is something that most console releases fail to do.

The fact is, Crysis 2 currently looks great on consoles. And that can only be a good thing. Sure enough, there have been some downgrades. But, realistically, when you’ve got GI, SSAO and object-based motion blur, that is only to be expected. Plus, in any case, the admittedly low quality IQ does little to spoil the experience, considering what’s included.

Like with the very sub-HD framebuffer in Alan wake, the lack of AF plus a solid AA solution in Crysis 2, are all negated somewhat – though not completely - by the sheer beauty of the game’s real-time lighting, and the interactivity between it and various surfaces present in the world. Near rock-solid performance at 30fps with no screen tearing doesn’t hurt either.

Perhaps all that’s left, is to wax lyrical about the possibilities surrounding the currently MIA PS3 version of the game. However, if you’re looking for talk of the system’s bandwidth limitations potentially resulting yet further downgrades, loss of IQ, then you’ll be somewhat disappointed. If a recent, internal config file of the game is to be believed - the info contained within specifically puts the two versions on a par with each other, with the implementation of v-sync in relation to performance separating them – then this shouldn’t be the case.

The most likely scenario, in the weight of no further evidence being available at this point, is that the compromises found in the 360 demo have been brought about by optimising the engine to run comfortably, and within range of both systems specs, taking into account various nuances, such as 360’s EDRAM, and PS3’s additional CPU processing power. But then gain, we’ll just have to wait and see.

With the demo out of the way, it will be interesting to see what the final game has in store for us - specifically the single-player campaign. Usually, the multiplayer aspect often sees some graphical cut backs in order to maintain better performance for online purposes, and unpredictable load. The demo also showcased a definitive improvement over the old campaign code I played at the EG Expo back in October. So, by that reasoning, it is entirely possible that we could see additional improvements to the game in the final retail version.

Thanks go out to Mazinger Dude for the pixel counting and Shinnn for the screenshots.

No comments:

Post a Comment