Wednesday, 22 December 2010

Tech Analysis: Uncharted 3: Gameplay Demo

Just as we were finishing up on our tech analysis of the Uncharted 3 teaser trailer, Naughty Dog unveiled the first live gameplay demo on the Jimmy Fallon show, thus revealing more juicy technical insights into the engine upgrade contained within, along with direct-feed gameplay footage of the title

We lightly touched upon some of the things contained in the gameplay trailer in our last report – the possible use of MLAA, composition of the fire effects, character modelling, and rendering resolution – but due to the compressed nature of the initial teaser trailer, and the late arrival of the gameplay footage, were unable to take a detailed look.

Now, rather than expand our original report, we’ve instead taken the time to asses in greater detail the direct-feed gameplay trailer, looking at more of the game’s in-engine enhancements and referencing it with the original teaser footage from before. Here, you’ll hopefully find a nice companion piece to our previous analysis.

Let’s get on with it then.

In terms of framebuffer resolution, Uncharted 3 appears to be rendering once again in full 720p (1280x720) just like the last two games in the series. However, unlike both of those titles, this time around Naughty Dog seems to have used a different anti-aliasing solution for UC3.

Previously we saw the use of standard 2xMSAA (multi-sampling anti-aliasing) in order to mitigate jagged edges and shimmering artefacts, which actually worked very well all things considering – increased use of shaders, particle/alpha effects etc. But from the gameplay footage shown of Uncharted 3, we can see what looks like evidence of Sony’s custom MLAA solution replacing the more limiting MSAA.

Originally, we thought that those rather smooth looking 720p framebuffer grabs were simply supersampled promo shots, lacking any edge artefacts and appearing all too clean to be in-game. And while we’re still not convinced that they aren’t downsampled bullshots, the direct-feed gameplay footage itself not only shows off a similar smoothing effect, but also shows clear evidence of edge shimmering in areas where supersampling would have effectively dealt with that particular issue. Shader aliasing is also present, another thing which MLAA isn't capable of dealing with in its current implementation.

Take a look at the screenshots above of the window frame and the dislodged wooden beam to the right of it. Ignore for a second the compressed, blurry nature of screenshot and focus on those edges. Clearly, there is a reduced amount of edge smoothing going on here. We can easily see some sub-pixel edge artefacts that would have blended away via supersampling – like in the desert scene from the teaser trailer – but are obviously visible for all to see despite the lack of clarity.

There are also some polygon edges directly situated next to the low res fire effects that suffer from the same problems, though not all. Most likely, this is due to the low resolution alpha buffers interfering with the higher res geometry, and the MLAA being unable to smooth over the affected area. Again, such issues wouldn’t be present to such a degree in a downsampled image and would almost certainly be noticeably worse with 2xMSAA. You can see this below.

The rest of the scene however, benefits from large levels of decent edge smoothing. It's incredibly hard to tell by the compressed nature of the video creating additional artefacts, but we can see many areas getting what appears to be as much as 8xMSAA - some surfaces 16xMSAA, with others having around 4x, which comes as standard when using the technique.

Another benefit of MLAA comes in the form of excellent high contrast edge anti-aliasing, whereby distinct edges - usually too distinct for MSAA to generate good enough samples for - are handled with reletive ease. Although the trailer doesn’t demonstrate this, due to being set in a dark, low contrast environment, I can’t imagine UC3 being any different.

In order to accurately see just how well MLAA is implemented in Uncharted 3, I suggest you download a high bitrate HD 720p video instead of watching the awfully compressed YouTube one we have here. It suffers from shimmering and other artefacting not present in the actual game.

Moving on, and the fire effects have also been expanded over what was present in Uncharted 2. Here we see multiple layers of blended 2D sprites rendered in 1/4 the frambuffer resolution. Obvious artefacts such as pixelation aren’t visible due to the effect being smoothed over via both blending and filtering techniques. However, we can see evidence of jittering and some shimmering, much like with what is happening with shadows in the game. This is most noticeable at the base of the flames.

Whilst being technically quite simple in comparison to various fire effects we’ve seen in the past, the look is still very convincing with the various layers present on screen creating an impressive show via the use of sheer amounts, rather than advanced technical trickery. Also, the increased use of 2D sprite layers allows for a more organic look to be created. The fire in Uncharted 3 is both more animated and has a greater level of depth than in the second game. This is also helped by the scope the effect finds itself in – fire is everywhere, with varying layers spread all across the environment.

Granted Uncharted 3’s use of fire isn’t technically that impressive when compared to the multi-particle, and multi-layered smoke and fire present in the likes of Lost Planet. Although, Naughty Dog’s solution instead fits in with the PS3’s tight bandwidth requirements and the overall engine make-up far more comfortably than Capcom’s alpha-hevy solution ever would. Like in Killzone 2 and 3, the low res nature of alpha is carefully reduced via good use of filtering and layer blending.

In terms of character modelling, details, and shader effects, we can see that the renderings use for gameplay come remarkably close to matching the pre-rendered desert scene footage we covered here, in our first tech analysis of the game. Drake himself, geometry wise looks to be very close with only slightly paired back use of shaders and texturing. His facial features and animations look almost the same, lacking just a little precision in comparison.

Compared to Uncharted 2, and Drake looks to have gained slightly more in the way of detail. Facial details in particular look better – improved texturing and shaders – and his overall facial design has been artistically changed somewhat. He appears to be a bit chubbier this time around, looking older, more rugged. No doubt as a result of his haphazard worldly adventures, and from the development team adapting his polygonal mesh structure.

As to be expected, when up against the desert scene in the original trailer footage skin shaders have also been mildly reduced, as have small texture details and texture resolution. We can also see the usual shadow and self-shadow artefacts on Drake – jittering, some shimmering etc – that was present throughout Uncharted 2 but absent from the pre-rendered parts of the teaser trailer. This can be found on both characters and the environment. The grasses on the floor in particular are noticeably affected.

Whilst there are obvious differences between the teaser trailer’s pre-rendered in-engine footage and the actual real-time gameplay video, there is nothing that drastically separates them as a whole. Sure, the desert scene exposes a polish not possible in a real-time rendered envronment on the PS3 – with better use of shaders, perfect shadowing and polygon clipping. Although, most effects have at least been translated over to the in-game engine instead of being cut.

Performance wise, the short gameplay clip shows off Uncharted 3's solid state at this point. The demo doesn't appear to drop below 30fps - despite plenty of performance sapping alpha effects - and there is no sign of any screen tearing. It's likely that UC3, as with its predecessor is triple buffered: rendering three frames for every one displayed, simply discarding each torn frame until a clean one is found. Tearing should only occur when all three frames are being torn, a scenario only likely to happen in the most heavy load situations.

That said, the demo dosen't feature any extraordinarily large set-pieces like the train crash and helicopter battle from UC2, which would be a real performance indicator. Instead, what we have here is a somewhat more pedestrain scene designed to show off some of the game's additional graphical polish, along with a few new moves for Drake.

All in all, from what we can see Uncharted 3 boats improvements in lighting, texturing, and shaders over Uncharted 2, with more detail being present, smoother animations, and even better use of anti-aliasing. Some of these improvements are mere subtlties, while others are far more noticeable (like the inclusion of MLAA - UC3’s big leap forward, like with SSAO in UC2). And, with just under a year to go Naughty Dog have plenty of time for optimisations, to get those little details that make all the difference down to a fine art.

The first part of our Uncharted 3 trailer analysis can be found here, which focuses on the teaser trailer and also forms a complete look at the tech behind the game so far.


  1. Good analysis :) The desert scene is not realtime, it is also said by naughty dogs. But, I think they will bring this very close to realtime... I was also expecting UC3 will use MLAA too as it is giving better "overal" performance. And also frees GPU from MSAA. Do you I think they might be further optimizing MLAA algorithm?

  2. Btw, I’n not sure if you missed it, but in both my articles I did mention that the desert scene from the teaser trailer was pre-rendered (not done in real-time). The other footage – the cut-scenes – look to be rendered in real-time, but at 1080p downsampled. The shadow artefacts and use of lower quality models – like in Uncharted 2’s cinematics - seem to hint at this. But yeah, they could in theory for this part being rendering them offline with in-game quality assets. Hence, the 1080p res.

    I don’t know whether they’ll be further optimising the MLAA algorithm, there’s little they can do to mitigate those artefacts unless they re-write their MLAA routines to cover sub-pixels and shaders, both of which would require a noticeable increase in CPU time.

    However, I do expect them to optimise some of the particle effects used throughout the game. Sand in particular will be a tough one to do convincingly at low res due to the large amount of small particles on screen. It’s not like full-body stuff, whereby you can use large chunks geometry with a normal mapped effect on top. Instead there will have to be more individual alpha-based particles to render.

    I suspect that Nuaghty Dog may further refine their blending techique, or perhaps find a way of blending high-res fuller looking sand with low res particles. Same for fire, smoke etc.

    More interesting, is how they plan to approach rendering the game in 3D. From what I gather, they are already rendering in full res (720p) – according to ND, but at what level of performance we don’t yet know at this point.

  3. Thanks David for the detailed reply... I really appreciate your work, interest and passions for the technical analysis :). I have been looking the latest demo footage, and it seems to me the particle effects are improved quite a bit, including smoke, fire, and derbies of the material while burning, but even the visual-heat effects. I also find animations are much more smoother. One of the things I couldn't see much about the textures detial. But, anyway I don't expect it is going to be big leap as from UC1 to UC2.

    I don't think 3D version will be equal to 2D version in terms of framerate, or resolution performance... It is technically not possible in exception if they don't compromise in 2D. But, I don't think they will compromise 2D version as there is much larger fanbase. But, I think there will be, as they do, to more focus on perceived quality. I played GT5 in both 3D and 2D and we know there are compromises, but the gain in 3D was quite positive, and to be honest, even I don't own 3D TV it really made me think to buy one (one day when prices are reasonable and my current TV gets to 5 year old ;)

    Next year is going to be very busy for I guess as loads of high profile games coming up. I wish I have so much time to play each of them..