Saturday, 18 September 2010

Tech Analysis: Halo Reach - Final Game Update

Up until now, the Halo series on the Xbox 360 has always been somewhat lacking in the graphics department. Halo 3 ruthlessly cut back on the high levels of image quality and texture detail expected from a title this generation in order to include what was, and is still, arguably the most advanced HDR lighting solution we’ve seen in any game so far. Whilst ODST merely added a brief lick of paint to the proceedings, upping the quality of the texture filtering slightly, and bringing in a post process blur effect to smooth out the upscaled framebuffer.

For Halo: Reach Bungie have completely gone back to the drawing board, stripping out, and rewriting most of the engine with alarming success. So much so, that the game now ranks as one of the prettiest on the 360 – no meant feat when considering the series dwindling reputation for graphical prowess.

We first took a look at the tech behind Reach in our analysis of the Beta way back in May. But now, as we blast our way through the final game, we take an updated look at the title, now focussing on the Campaign and the drastic graphical upgrades that are apparent over the ones originally seen in the game’s impressive range of multiplayer modes.

Now while multiplayer in Reach looks pretty much identical to the Beta version – still representing a true current-generation look over Halo 3 and ODST- it’s absolutely nothing compared to the visual majesty of the Campaign mode. Here the game ramps up its graphical polish considerably; textures are noticeably more detailed, bump-mapping has been expanded and hugely refined in the process, the full range of Bungie’s trademark HDR solution is not only evident, but also combined successfully with a new, real-time, dynamic lighting system, complete with baked shadow maps and much improved use of local lights (like in the beta each projectile has its own light source).

Furthermore, you’ve also got improved smoke and particle effects, which don’t appear to be rendered using vastly lower res alpha buffers. In fact both of these effects have been expanded with far more in the way of alpha transparencies than before. Plus, adding to this is a range of impressive post process effects; including object-based motion blur, and different screen distorting filters, used in varying scenarios throughout the game.

Most of these have been seen before in the multiplayer beta, just not quite to the level on offer in the Campaign mode – and that includes the online co-op campaign as well.

The title’s use of SSAO (screen-space ambient occlusion) – previously only used for indoor areas of the beta – can now seen in both inside and outside spaces accordingly, adding an extra layer of depth to the scene and its already high-end approach to lighting.

Evidence of this is very subtle however, although you can definitely tell that its there when seeing the game running in real-time. The most obvious places where it appears are near buildings and bespoke areas of scenery. The look that the effect provides is reasonably recognisable, if not also a little inconspicuous at times in Reach.

Amongst all the accomplishments, there is one compromise. In order to conserve on bandwidth the game does use an A2C blend on foliage. As you may be aware this is a process of rendering certain alpha effects in an interlaced-style, half-res manner, but without simply downing the overall resolution of the buffer.

The effects can be seen in the screenshot below. Just about. For most of Reach the usual side effect of using A2C (dithering and a screen door look) is largely inconspicuous unless you actually go look out for it. And when you do, you’ll se that the effect is far better implemented than in most other games that use it.

Thankfully, you’ll find that it is only the foliage that suffers from this; other key visual elements like water and fire are rendered in full resolution using proper alpha blending – none of that low res stuff there.

Outside of the additional polish applied to the game’s use of visual effects and advanced rendering make up, the basic framebuffer and method of anti-aliasing remains the same as the Beta.

Halo Reach renders in in 1152x720 for both single and multiplayer modes, and uses a custom form of temporal anti-aliasing, though the effect is most visible on static objects. The reduced horizontal resolution, and use of a non-standard form of anti-aliasing is required for the game’s framebuffer to fit into the 360’s 10MB of EDRAM without the need for titling.

Effectively, using regular 2xMSAA would mean that parts of the frame would have to be broken up and rendered using tiles, which results in an additional geometry processing cost due to the large amount of triangles needing to be rendered multiple times across different tiles – not helpful in maintaining performance, whilst also taking up more in the way of overall memory outside the FB.

Instead Bungie’s custom solution works extremely well, and just about fits into the tight memory constraints given to the framebuffer by the machine.

However the use of the temporal AA solution does have some drawbacks. For one, only objects that are static get the majority of AA. And this mostly disappears immediately when you start moving – some AA is still present, just not as effective. Plus none of the 2D, sprite-based foliage gets any edge smoothing either, making some jaggies apparent regardless of whether the AA is working or not. In reality however, this seldom makes a large difference at all, with the game’s use of post processing effects (like motion blur) keeping the overall image clean and smooth.

The temporal AA also has some odd, but extremely subtle side effects. For example, there are times when only parts of the screen receive any AA. Though this is only visible on a frame-by-frame basis (not during actual gameplay), and doesn’t happen all the time. Well-trained eyes can see the bizarre occurrence in the screenshot below.

Another is a blurring, or rather what looks like ghosting of the image while fast sideways movements or sharp turns occur. In still frames you can notice what looks like a double image, but with no AA. This is basically caused by the way Bungie’s AA solution actually works. Two separate frames are combined to form the anti-aliased image, although a successful blend only happens in still scenes due to a time delay between both frames being blended. The result: the aforementioned double image ghosting that manifests itself in these situations.

However this particular issue now only seems to affect the surrounding environment, and not the weapon you are holding. Other than that it is exactly the same as in the beta, and can be found in both multiplayer and the campaign mode of Reach.

Performance wise, Halo Reach is pretty impressive, enabling an almost constant use of v-sync and hardly ever deviating from its targeted 30fps update. However, there are times when the game does drop frames quite badly, and this is perhaps the biggest discrepancy between both the Campaign mode and the multiplayer.

In multiplayer, like the beta, reach holds to an almost constant 30fps with only very minor, small deviations in performance. Screen tearing is also kept to a bare minimum, practically never occurring at all. Campaign mode however, is a largely different story.

Interestingly, this mode is also v-synced, pretty much solidly so. And this can, and will on occasion severely impact on performance. Like with the multiplayer, and the beta, Campaign mode runs at 30fps for most of the time, only dropping frames in the most strenuous of situations. Small dips happen here and there, but nothing but the slightest blip. Until, that is, all hell breaks loose.

In the first encounter you have in the game, the framerate drops below the 20fps mark, becoming a temporary slideshow. While this is all going on your sense of control is adversely affected; latency spirals, and all attempts at getting a steady aim go out the window. It’s hardly the best of starts, and would be a rather constant annoyance if it wasn’t for the fact that examples like these are few and far in between.

Quite why these occasional, heavy dips in performance weren’t optimised out is unknown to me – when they happen they’re worse than anything Halo 3 had to offer in this regard. Perhaps Bungie thought it best to try and maintain v-sync as best they could in these types of situations. Although in practice, having a little screen tearing is better than a large increase in latency in the middle of battle, and that’s without the intrusive eradication of a smooth framerate.

Despite this Halo: Reach performs incredibly well, with very little in the way of large overall framerate drops, and almost no screen tearing in either the campaign or multiplayer modes.

Cut-scenes fair a little differently though, with Bungie freely upping the level of detail on characters and objects safe in the knowledge that performance can be more tightly controlled. And in that respect, with the additional load that it is pushing, does so quite admirably, though not without faltering slightly.

In many of the game’s real-time cinematics tearing was clearly visible across the entire screen, with different tears appearing on screen for different lengths, and the frame rate also took quite a few steady dips below the 30fps mark. On some occasions the framerate drops I witnessed were almost as bad as those in the minus 20fps sections of the single-player campaign. However, as the action isn’t controllable the effect it has on the game is far less important.

Ultimately, what IS important, is that the game performs smoothly for the majority of the time with only minor dips here and there. And in that sense Bungie have succeeded with Halo: Reach. What’s even more impressive is that the developers have been able to do this whilst upping the game’s framebuffer resolution, along with stringing out more intensive graphical effects, all the while still including their trademark HDR lighting system without compromising it.

On top of that you’ve got the inclusion of SSAO, a mix of dozens of dynamic light sources perfectly complementing the use of plain old, baked light and shadow maps, and a mildly tweaked version of their custom temporal AA solution. All of this manages to not only be rendered in a final framebuffer image which fits into the 360’s EDRAM, but also a game that from both a visual, and a tech perspective, is right up there with the best titles on the system.

The debate on whether Reach is the best Halo game yet is still ongoing – I myself still prefer Halo: CE’s campaign to this one’s so far – although the undeniable fact that it is by far the best looking is not.

For the first time in nearly ten years Bungie have produced a game that once again can be used to show off the graphical capabilities of a flagship console, devoid of the restraints of the past, and the rushed development cycles that once impacted on past performances. Sure, the slightly plain, angular, and almost barren style of the series’ architecture may look tired or stylistically unimpressive, although in a raw technical sense, without fail, it commands your complete attention.

For those of you who either don’t like Halo, or have grown tired of the series many attempts to match the raw brilliance of the original, there may not be much to tempt you back into Bungie’s world of Spartan soldiers and religious alien zealots. But at least now the franchise truly looks great again, and that definitely counts for something. At the same time that classic Halo gameplay seems to have been refined down to a fine art, and a few campaign issues aside, Reach as a whole may well be the best game in the series since the original.

Thanks go out to Mr Deap for the screenshots, while AlStrong once again counts the pixels.

1 comment:

  1. I have just installed iStripper, and now I enjoy having the best virtual strippers on my taskbar.