Sunday, 30 January 2011

Tech Analysis: Little Big Planet 2 (PS3)

Little Big Planet was a game that really got those creative juices flowing. On the surface it was a simple, physics-based platformer. But under the hood it became apparent that it was so much more. The tools given to create and design your own levels could be used in such a way that went well beyond the platform confines Media Molecule had envisioned for the title. And for LBP2, things have been taken a step further, with a complete set of tools designed to allow for just that: building your own creation that bypasses platforming altogether.

Of course, outside of the successes such unique custom content has found - and indeed there are millions of user-created downloads to be hand - the engine powering the game was always there to facilitate a natural realism, bound by real-world properties, and developed to augment the title’s physics-based approach. To that end, the original LBP featured both a realistic lighting and shadowing system, even emulating light passing through dense objects, along with a range of impressive, though perhaps restrained, visual effects.

For LBP2, Media Molecule have gone back and re-written most of their original engine, expanding on various graphical concepts simply toyed with in the first game, to delivering a fully-realised implementation here. This sequel incorporates comprehensive changes to nearly every part of the engine: lighting and shadowing for one, anti-aliasing and core rendering make-up to name but two more. All these tweaks and upgrades have not only made for an impressively organic visual look, but are also far more accurate in nature.

Take the baseline framebuffer for a second. LBP2 renders in 720p, like the original, but ditches the standard 2xMSAA (multi-sampling anti-aliasing) for Sony’s custom MLAA (morphological anti-aliasing) solution instead. The end result is a clean and sharp look, with incredibly smooth edges, free from most obvious edge shimmering and other such artefacts. Here, we see up to 16x MSAA on some surfaces in-line with the level of edge-smoothing this technique regularly provides, along with 4x and 8x on other smaller pieces of geometry.

The only aliasing that we can frequently notice on some areas, appears to be from various sub-pixel edges. There are also examples of what we like to call ‘soft’ edge shimmering on a few AA’d edges at certain angles. Although, most have competently been dealt with. Indeed, a lot of the aliasing present on screen is very similar to the kind seen in supersampled, in-game trailers; that is to say, its impact is very small in diminishing the high level of image quality we can see in Media Molecule’s sequel.

A change in the method of AA used is but one upgrade LBP2 has seen. The developers have also completely re-written their engine to work as a standard forward renderer, thus making certain visual effects much easier to do. Previously, parts of LBP1’s core rendering make-up was differed, meaning that some elements of the engine were sufficiently bottlenecked – use of alpha effects for example, had to be done via the less desirable A2C method, thus inducing a screen-door effect on many transparencies, like smoke and fire.

In LBP2, this isn’t at all the case. Here we see that all transparent effects are rendered using the more standard alpha coverage, with alpha blend method, free from the dithered, pixelated look they had before. Not only are these effects now easier to do, they are also better blended too. Particle effects, other elements, such as smoke and fire, are still rendered in a lower resolution. However, they are nicely smoothed over to avoid any pixelation, or other similar side-effects, much like the use of alpha in both Killzone 1&2.

Far more interesting, is the way that these effects now interact with the game’s light sources, in changing the intensity of the lighting and in turn, the way shadows are cast as a result. This is down to the game’s brand new lighting engine, which accurately simulates global illumination in how the entire game is lit and shaded. LBP2 uses something called volumetric lighting, whereby individual lights affects how other objects all around them are lit, with elements such as reflections and specular highlights changing dynamically.

A single light source in LBP2 now has the ability to change the lighting composition of the entire scene. Shadows are cast via every light source – and indeed every object - and move accordingly with changes to the lighting present. This is best observed as Sackboy traverses his environment, moving in and out of contrasting areas of brightness, and through more subtle changes in environmental shadowing, along with when there is lots of objects being randomly thrown around the screen, each with their own shadow.

We can also see evidence of ambient occlusion. Previously, we thought that LBP2 was simply using SSAO to deliver AO on various surfaces, characters etc. However, that isn’t the case. LBP2 actually features real-time ambient occlusion as a consequence of its volumetric lighting engine. For most games, this would perhaps be too resource intensive to do. Although, the simpler nature of LBP’s world, and being far more tightly controlled in terms of the rendering workload on screen, allows this to be possible.

In addition, we can also see that LBP2 also makes use of volumetric alpha effects, whereby flat, 2D spites can contain three-dimensional volume, having an incredibly obvious, depth look to then, whilst controlling the light output through the effect. A series of values contain that volume inside say, a cloud of smoke, giving the object depth, but more importantly accurately limiting/changing the amount of light that passes though it.

It’s a nice effect, one that appears to be only subtly used in what I’ve played of the game so far. On some downloadable, user-created stages however, ones with plenty of explosions, smoke and particles, the result is more obvious. Seeing the amount of light reduce underneath, or very mildly to the side of a cloud of smoke or mist, but not simply a pre-calculated dimming, but what looks looks like physically less light output is a key demonstrator of the effect in action.

In combination with the game’s use of light and shadow, this helps to emphasise the realistic look that MM have sort to create for the fantastical world of LBP2. Added depth is one consequence, but mostly, having all objects accurately look like they exist tangibly in the world is another.

Going back to LBP2’s use of shadowing, we’ve already mentioned that the game engine casts shadows for every object on screen, wherein a clear example of shadowing would realistically take place. Although, what we’ve failed to mention is that the game also uses soft shadows for all objects too.

These shadows, like with the game’s alpha affects, are rendered in a lower resolution to the framebuffer. However, this is negated somewhat – though not totally – by the use of high quality shadow filtering, which helps blend in the lower res soft shadows onto their environment and other objects.

There are still some examples of flickering shadows, and jittering edges where the use of filtering isn’t enough to hide their low-res nature. But, then again, outside of a in-engine, pre-rendred cut-scene, or in the obscenely high-end PC space, shadowing errors are simply part and parcel of current real-time rendering with performance-sapping, hardware limitations.

Another impressive part of LBP2’s technical make-up to look at, is the game’s use of real-world physics in how objects in this artificial world react. Swing on a rope, and you can almost feel the pull of gravity; push over a stack of lightweight boxes, and watch the ease of how they tumble, knocking others over, pushing and falling in accordance to their physical properties. Heavy objects also have weight behind them: Sackboy himself, bounces and flows through the air like stuffed and stitched toy – all of which adds a sense of real tangibility to the world these items and characters inhabit.

Also, these elements allow you to have an understanding of how many of the objects, challenges and puzzles work, before even attempting them. Once you know which objects have which properties – and some are obvious as soon as you see them, then all you have to do is master their usage, but using your own worldly understanding to do so. And of course, the technique required with the Dual Shock controller.

Occasionally, objects, characters etc, react with a ragdoll-like effect, which partially breaks the illusion that Media Molecule have created. Although, with so much going on technically, you can’t expect perfect representation of physics. Even in high-end CGI productions, replicating certain properties flawlessly, even just accurately, is a lot of the time, beyond what is feasible, let alone possible in a real-time rendered environment. In which case, the developers have done an absolutely stellar job with LBP2 as a whole, carefully balancing out what works and what doesn’t.

Moving on, and in addition the numerous advancements in lighting and shadowing, we can also see the inclusion of both a depth of field effect present in the background on some stages, and motion blur on fast moving objects.

Interestingly, the implementation of motion blur seems to be relatively simple – it affects the whole screen, rather than being done per-object, like in Killzone 3, and the original LBP. The reason for the downgrade – even though the effect still looks very good – seems to stem from having such an accurate, and performance-heavy lighting system as part of the core rendering engine. As such, there is less rendering time per-frame left for object-based motion blur. Instead, blur appears to be done as a simpler post-process effect.

On the off-set, all these advanced visual effects; the accurate, real-time nature of the game’s shadowing and lighting, motion blur, and depth of field, you would assume to have quite an impact on performance – that a heavy performance hit wouldn’t be unusual. Although, whilst sampling a few levels from the game’s campaign and some additional user-created stages, that doesn’t seem to be the case

Little Big Planet largely runs smoothly, simple dropping a few frames when the load increases beyond the engine’s capacity to resolve it, with v-sync being completely absent and some noticeable screen tearing sometimes being apparent. Media Molecule targets a solid 30fps update, and rather than allow for the framerate to drop heavily whilst encountering a heavier load, prefers to go over budget with rendering the next frame instead. Thus, we can see that a 30fps update is maintained in situations whereby if the game was v-synced, would drop down to 20fps for a brief moment or so, maybe longer, with some screen tearing being apparent as a result.

While the engine does successfully attempt to hold a steady 30fps for the most part, we can see that it does occasionally slow down, sometimes quite obviously down to around what looks like 20fps or so for a brief second or so, sometimes far less so. However, for much of the time what we are seeing as framerate drops, are actually manifestations of very mild tearing, in which the screen wobbles briefly for a split second or so, instead of tearing noticeably.

The engine frequently misses its window for rendering the next frame however, and as a result, we see a large amount of tearing on fairly frequent occasions, where the effect is clearly visible across the middle of the screen when it happens, sometimes mostly to the left, or all the way across, depending on how much the engine stalls.

At it’s worst, there can be many torn frames manifesting one after the other: the end product is what looks like a juddering in combination with a tearing of the screen. When this occurs it looks like the game is both dropping frames and tearing, but in reality is still holding a mostly solid 30fps.

But despite this, the overall engine’s performance is largely solid - sans perhaps the screen tearing, but otherwise, given the strain due to the complexity of the game’s core graphical, and indeed physics-based make-up, you can’t really complain too much. All that additional oomph goes a long way to further immersing you in Sackboy’s world, so I think that the performance trade-offs are worth it.

At first it might seem surprising to see such a technically accomplished rendering engine, for such a quaint, although very impressive platformer. But, when looking at how the core graphical make-up really adds a sense of immersion, a sense of increased believability to the world contained within, then it becomes completely beneficial.

Many of the elements that make LBP as magical as it is to play – not to mention to watch up close or from a distance – is down to how most elements in this virtual world act according to what we know about reality, the physical world around us. Things such as objects casting shadows which change as a result of the direction of a light source, or the smooth edges found throughout (MLAA) that hides the per-pixel, blocky nature of digital rendering. All definitively add something to the table, however small they initially appear to be.

In which case, Media Molecule has done a stellar job at creating a game that is as technically advanced as it is visually accurate. I doubt anyone will actually play LBP for its superb graphical make-up, but instead be fully engrossed in its fresh and addictively unique gameplay. The visuals, as it were, are simply there to facilitate the atmosphere and add an extra sense of realism to a cute, but cool, fantasy world. In that respect, LBP2 can be really nice to look at, but even better to play. And that’s exactly the point, really.

Thanks to (gamesaktuell) for the screens and AlStrong for the pixel counting. Various galleries can be found here. Plus, a special no thanks to my phone cam, which failed to pick-up a very clear example of volumetric fog in a really dark area of the game.

Up Next: Crysis 2 analysis due for late tomorrow evening.

1 comment:

  1. David, that's an excellent tech analysis. Thanks a lot, you deserve lot of credits.