Friday, 18 March 2011

Tech Analysis: Mortal Kombat Demo (PS3)

In terms of whether or not this latest installment of Mortal Kombat succeeds, this mostly depends on how well the game resembles those classic first three entries in the series in terms of gameplay. And while its far too early to come to any conclusions from playing the demo, the early code does indeed show some promise. But it also falls short of the mark in certain areas. The hit detection for example, doesn't feel quite right.

Released last week exclusively to PlayStation Plus subscribers, NetherRealm Studios latest, the self-titled Mortal Kombat, is now available for everyone to download. The current demo is a Sony exclusive for now. So while multiplatform comparisons will have to come later, we can at least get a good look at how the PS3 version fares on its own merits - word is that the release of the Xbox 360 demo is still undecided at this point.

Like with MK vs DC Universe, 'Mortal Kombat' uses the Unreal Engine 3. But unlike most titles that utilise the tech, the game operates at sixty frames per-second, requiring some heavy customisation in order to get the game up and running within a 16ms per frame budget. To do this much of underlying rendering elements have been paired or cleverly streamlined in order to give the engine some leeway in meeting this target - MK vs DC had roughly 9ms per-frame, leaving a 7ms gap just in case rendering went over budget.

As a compromise, elements such as, self-shadowing have been disabled, the lighting system simplified (using a combination of per-pixel lit floors and per-vertex lit backgrounds, both static and dynamic), and various components of the game's code made to run asynchronously for maximum efficiency. In addition, the time spent sorting and rendering alpha-based objects has also been reduced.

However, this means that the UE3 can now support a stable 60fps update whilst still featuring a wide range of suitable visual effects. Characters and environments are reasonably detailed without looking spectacularly so, and the lighting - a mix of a few small dynamic lights, and a large degree of pre-baking - works within the context of NetherRealm's art design, without bringing in much depth to the action.

Seeing as the entire engine has been crafted around meeting that 16ms, 60fps target update, a starting look at performance is in order. Above we've put together a a short analysis vid showcasing some of our initial fights in the game's Ladder Mode (Arcade Mode basically).

The game hits its target 60fps refresh rate and never drops a single frame during regular play. V-sync is also permanently enabled, so that there is no screen tearing to be found whatsoever. The only time we see a drop in smoothness, is during execution of the characters X-Ray moves. However, this has no impact on controller response times as control is taken away from the player as soon as these are activated.

We also find that the game's use of slow motion in these sequences helps in making these drops go unnoticed.

The game's consistently smooth refresh is good news indeed. Although, in terms of its graphical make-up, first impressions are decidedly mixed. While the art design reasonably reflects a re-envisioning of the classic 2D MK games - brought up to date with an additionally 'edgy' styling - the game appears quite blurry, with edges looking soft and fuzzy. It's hard to belive that MK is presented in anything but sub-HD.

Well, as it turns out this isn't the case. Mortal Kombat is in actual fact rendering a full-fat, 720p framebuffer. The reason for the noticeably poor image quality comes down to the game's anti-aliasing solution - there simply isn't one. Instead, a cheap, 1x1 pixel blur has been employed, and that is the root cause of the upscaled look.

The blur deals with any potential 'jaggies' rather well - despite noticeably reducing overall IQ. And this further is enhanced by the way in which the human eye blends frames together during motion at 60fps.

We can also see that the game's alpha buffers are rendered out in half-resolution before being upscaled to match the native 720p framebuffer. The lack of filtering (not even a bilinear solution) also gives them a heavily pixelated look, with 2x2 pixel wide blocking artefacts being obviously visible in the screenshots above and during play when situated close to the TV screen.

Most PS3 titles, be that exclusives or third-party offerings usually use either lower res, or quater-res alpha buffers. Although, filtering is almost always extensively employed, making sure that effects feature a very smooth, blended appearance.

As this is the opposite in MK, we can only assume that either; it's early code and that the lack of filtering is simply a rendering issue that hasn't been corrected, or, that the bandwidth requirements of filtered alpha effects is simply too much for the UE3 to handle in a 60fps environment.

It will be interesting to see how both the Xbox 360 version, and the final retail PS3 game fares in this regard.

So far, Mortal Kombat hardly looks incredible. But it does look nice enough (bar the obvious edge blurring and low res effects), with the documented trade-offs in order to run in 60fps being worth it for the increased fluidity and smoother controller response. Although one can't quite feel that a custom, in-house designed engine, rather than a highly customised UE3, would have been more preferable.

On the other hand, the gameplay currently feels like an uneasy mix of both the old 2D installments and the newer, Soul Calibur-esque PS2 games. When compared up against Mortal Kombat 4 - the first of the series' 3D installments, but also an almost purely 2D game - it appears to be quite far away from delivering a suitably faithful representation of those first three, fondly remembered titles.

With just over a month to go, NetherRealm Studios still have some time left to polish up some of the visuals and make a few much-needed gameplay tweaks. The demo code, is according to the team around nine weeks old, with some people speculating that it could be even older. In which case, we shall see when the finished product hits.

Thanks go out to AlStrong for the pixel counting and Richard Leadbetter for the use of Digital Foundry's analysis tools.

1 comment: