Monday, 11 October 2010

Tech Analysis: Enslaved Demo (360 vs PS3)

When most people talk about the PS3’s unique architecture and the games which really show off the machine’s graphical prowess, both Uncharted 1&2 often crop up, as do Killzone 2 and God Of War 3. However, many seem to have forgotten about Heavenly Sword. Because during a time when HDR lighting and anti-aliasing were thought near impossible to do on the PS3’s NVIDIA 7800 derivative GPU in combination, Ninja Theory’s cinematic action game was doing just that.

At the time using a custom HDR format known as LogLuv (NAO32) allowed the developers to include full range HDR lighting whilst also adding proper 2x multi-sampling anti-aliasing support into the mix. Combined with highly detailed texturing, advanced facial animation and complex character modelling, Heavenly Sword still holds up well today, and is the culmination of a collaboration between NT and other Sony studios in sharing technology to improve PS3 development.

Enslaved shares similar traits to that title. The game takes on a deeply filmic tone, cinematic in its execution, while the gameplay features slightly delayed response times with regards to the controls, and canned animations to keep the feel of an interactive move at the forefront of the experience. This is all backed up by superb voice work by Andy Serkis (who also did Heavenly Sword) and a solid script from Alex Garland, writer of the Beach and 28 Days Later.

However, there are a few differences between Enslaved and Heavenly Sword. The former was simply a PS3 exclusive, designed to get the most out of Sony’s machine in order to have a strong third-party offering for the format. Enslaved however, is a multiplatform release appearing on both PS3 and 360.

With this change of direction comes a change in game engine. Rather than to try and port over the tech powering their last effort, Ninja Theory has opted to use the Unreal Engine 3 for Enslaved. A common choice amongst third-party developers, it usually tends to favour the 360 as its lead platform with the PS3 often on the receiving end of some less than stellar conversions. Lower framerates, an abundance of screen tearing, and lower rendering resolutions are normal issues the PS3 faces with games using the engine.

That said, UE3 also provides a powerful, more familiar development environment in which to work on. And for Enslaved that is exactly why Ninja Theory decided to choose the engine over and above porting across their custom approach powering Heavenly Sword. But unlike other most other titles that use it, Enslaved manages to scrub up incredibly well on both platforms, almost hitting parity on the PS3. Apart from having one of two lower res / scaled back effects, and lower overall performance, both versions aren’t far off from being identical.

Most of the time with titles using UE3, it is common to find a discrepancy between the framebuffer resolution on one platform and on another. However, you’ll be pleased to know that Enslaved renders in 720p (1280x720) on both 360 and the PS3, with the game appearing identical in this regard.

Unlike Singularity, and both Gears Of War 1&2 on the 360, neither version of Enslaved features the standard selective 2xMSAA anti-aliasing solution used in most UE3 titles. Instead both versions lack AA altogether, and maintain similar levels of sharpness to each other.

Although, this isn’t quite as bad as it first sounds, seeing as the selective AA favoured by the engine usually has very little impact in real world terms. In still screenshots there is a noticeable, but slight improvement in overall image quality. However, this is simply restricted to either static objects, or the whole scene if nothing is moving. So in effect, most of the time you get practically no AA coverage anyway, thus making its inclusion of little worth when you consider the marginal gains on offer.

That said, even with a lack of AA Enslaved is hardly a jagged mess, and most of the harsher polygon edges are smoothened out by the game use of a stylish post process motion blur effect, and a little bloom lighting, which in effect negates the need for the jaggies reduction provided by 2xMSAA.

Although the inclusion of motion blur in Enslaved is mainly there for cinematic purposes. It also makes the whole experience take on a more cinematic tone, reproducing the camera blur present in fast action sequences found in movies.

A side effect of the blur is that it gives an impression of making the game seem smoother than it actually is. Usually this is done to make a 30fps experience flow slightly more like one that is perhaps running at 45fps, but obviously without truly achieving this. It’s a nice but subtle illusion, and in Enslaved it helps to briefly hide some of the game’s smaller drops in framerate. Though not the heavier ones, in which case there is nothing it can do.

As mentioned earlier the use of motion blur also has the effect of smoothening out jagged lines caused by the game’s lack of AA. The 360 version benefits the most, looking slightly smoother than the PS3 game. Albeit subtly so.

The reason for this, is that the use of the motion blur has been paired back on the PS3 build. It is clearly stronger on the 360 game, helping to deliver a slightly cleaner and more filmic look to the proceedings. Although, the difference is far less noticeable in motion than it is in the still screens featured on this page.

You may also notice that sometimes the PS3 version is missing blur entirely. This only tends to happen when use of the effect is so subtle that the engine doesn’t even activate it on the PS3, where it is cut down anyway. The result is that some scenes benefit from it, while others don’t.

Another area in which the 360 sees a handful of subtle graphical improvements, is with regards to the resolution of certain visual effects. Things like smoke, electricity, and certain lighting and particle effects are rendered in a lower resolution on the PS3. The two screenshots above show just how close both versions are; some effects like the electric power staff have harsher edges on the PS3 and appear slightly more aliased in motion, whilst the light coming through the ship on the right hand-side appears slightly softer owing to both seeing a reduction in resolution.

However, the differences are very subtle and hard to spot when playing the game, if not occasionally impossible. They certainly don’t take anything away from the PS3 build at all, instead showing that slight compromises don’t always lead to detrimental impact on overall graphical quality.

In terms of lighting and shadowing both are virtually identical as well. The 360 build gets a slight increase in bloom lighting, making hard polygon edges look smoother – much like the use of motion blur, the effect helps in reducing overall scene aliasing - whereas PS3 owners get a reduced version of the same thing featuring less image smoothing properties.

The shadowing model is reasonably accomplished, though somewhat basic compared to the likes of Uncharted 2, or even Bioshock 2 - that’s to say it has an effect of making parts of the game look very flat at times. In particular, with half of the objects in daylight scenes being covered by shadows, there is little depth to be had in these darkened parts of the environment. Instead, the only time in which the game really delivers a direct, noticeable sense of depth is with high contrasting light and dark areas.

Changing the intensity of the different light sources found in the game, along with expanding the range of colour provided by them would go a along way in circumventing this. As it stands the shadowing lacks a decent amount of tonal variations, and differing light values to do this. Neither PS3 nor 360 benefit from featuring any improvements or downgrades in this area, though the PS3’s shadowing looks slightly different from the way it is implemented on the 360, but not necessarily looking worse because of it.

Outside of the lighting and effects differences, for the most part, Enslaved actually looks identical across both platforms – a stark contrast to say, Bioshock 2, which had severe cuts made to its alpha buffer (effects) resolution, and an intrusive blur filter placed over the entire screen. Much like Singularity, the developers have done a rather good job in achieving parity on this front.

Ninja Theory have managed to get both texture detail and filtering looking mostly like for like across both versions, with the PS3 build in particular not suffering from lower res texturing than the 360 game, or gaining the usual bump in anisotropic filtering found in most titles running on the platform. It is definitely one of the better examples of multiplatform UE3 engine development, in which most changes don’t adversely affect either version in any significant way.

The same cannot be said in terms of overall performance though, in which we see the 360 build carving out a lead over the PS3 game. However, this is mostly apparent when playing each version one after the other, and not so much so when played on their own in a stand-alone fashion.

With Enslaved, the developers are clearly aiming to maintain a consistent 30fps throughout. And like with most titles using the unreal engine, the game regularly toggles between dropping framerate and losing v-sync in order to achieve that target. In this regard the 360 build fares better than the PS3 one. As we’ve seen before with Singularity, the UE3 engine appears to be more suited to Micrososft’s platform with less in the way of constant framerate drops happening, and definitely a lot less screen tearing.

The 360 version of Enslaved seems to take the most balanced approach between strictly maintaining v-sync whilst losing framerate, and dropping it ever so briefly in order to preserve it. Effectively this means that the overall amount of screen tearing taking place is regularly kept in check, with just a few small occurrences relatively subtle in their appearance.

By contrast the PS3 game tears more often, and when it occurs it is far more noticeable as a whole. Tearing isn’t just restricted to the top of the screen for short periods, but can be seen across the entire screen in parts. However, this only seems to happen in areas in which the engine becomes put under stress. The more stuff on screen, the more tearing that occurs, along with a larger drop in framerate. We're talking down to 24 - 20fps at times, though usually for only a few seconds at once. Most of the time the tearing is far more subtle in nature, and the PS3 version very often hits 30fps, with just smaller drops overall, before struggling in heavy load scenarios.

The 360 game also goes through a few heavy drops in framerate (mostly in cut-scenes), although it is feels more distinctly controlled, and doesn’t have the tendency to constantly tear frames when this happens. In which case we can see that the PS3 game largely isn’t v-synced at all, whereas the 360 game is, and often maintains it successfully, tearing less frames and keeping up its framerate.

However, the lack of v-sync on the PS3 version also leads to it having small additional spikes in performance over the 360 game. Some segments actually see it hit the target 30fps when the 360 build is lagging behind slightly. Though this certainly isn’t commonplace, and isn’t really a substitute for more even levels of performance.

Overall, it is clear that the 360 version performs better than the PS3 one, holding its framerate more solidly and tearing less frames. The use of v-sync can lead to heavy drops in performance, with frames being dropped significantly in parts – mainly the cut-scenes. But by and large it is manages to hit the target 30fps far more consistently than the PS3 game without suffering near constant screen tearing in places. The PS3 build may offer the occasional, slight performance advantage, but loses it with its lack of v-sync and generally more erratic framerate.

Saying that, much of the time the two can look virtually identical even when performance isn’t as good on the PS3 – especially when not going head-to-head against each other.

To be fair, despite issues with performance both versions of Enslaved are almost like for like. Other than a few lower resolution effects, and a downgrade in the usage of motion blur, most of the game looks identical across the board – that is to say that it can look lovely at times, both technically and stylistically, regardless of how it performs during gameplay.

Obviously, the same trends regarding the performance of the UE3 engine on PS3 remain; more unstable framerates and an increased amount of screen tear seem to be issues most developers haven’t been able to get around just yet. Though the gap does seem to be closing – we’re no longer looking at sub-HD UE3 PS3 ports anymore. Not for the most part anyway.

Granted, people who own both platforms should perhaps pick up the 360 version as it performs noticeably better across the board, though not in every instance. At the same time, the actual graphical differences outside of performance are so minor (motion blur aside) that there isn’t all that much in it. In fact you’d be hard-pressed to notice, and that certainly counts for something.

In conclusion Enslaved is better all-round on the 360, but is generally solid across both platforms, with pretty much no major differences outside of performance that you are likely to notice during gameplay. The use of high latency control also gives the whole game a somewhat laggy feel to it, and the fairly slow, Uncharted-like gameplay means that issues with framerate don’t tend to spoil things as much as they would do in fast-paced action titles that require far quicker reflexes.

Thanks go out to AlStrong for the pixel counting, and to for the screenshots. The full gallery of uncompressed framebuffer grabs can be found here. I suggest that you check them out.

No comments:

Post a Comment