Tuesday, 26 October 2010

Tech Analysis: Vanquish Update (PS3 vs 360)

Created by both the legendary Shinji Mikami, and the visionary Atsushi Inaba, Vanquish is one of the most exciting and intense shooters to come out of any software house in recent years. Although, it is only from the minds, and indeed talent, nurtured in the land of the rising sun in which such an exemplary form of high-octane, and beautifully staged gunplay could have originated. Coming out of nowhere Vanquish is an amazing game, and one of the most impressively modern, though staunchly old-school examples of run and gun mayhem you’ll find on any console, let alone the PS3 or 360, and is well worth the price of entry.

The demo release way back in August showed that Vanquish was more or less a match on both PS3 and 360, but the finished game now solidly confirms that. Like with the demo Vanquish looks to be almost completely identical across both platforms, having just one or two extremely subtle, but barely noticeable differences, with performance being the most defining factor between both versions.

What we have here is a stark contrast to Platinum Games last release, Bayonetta, which was seriously gimped on the PS3. Running with its framerate bitterly halved, along with lower resolution textures and alpha effects it was perhaps one of the worst cross-platform releases I’d come across thus far. But unlike that particular title, Vanquish was completely developed in-house on both platforms, with the PS3 game being the lead platform.

We took an in-depth look at the demo in an earlier tech analysis, so there’s little reason to spend a huge amount of time re-treading old ground, seeing as pretty much most of our findings back then still ring true now when it comes to the final retail copy. Instead what follows is a recap of sorts with updated comparison shots and an extended look at performance across both formats – arguably the deciding factor when it comes to Platinum Games’ latest.

Vanquish comes to both PS3 and 360 with a high contrast, heavily stylised look rendering at 1024x720, and with 2xMSAA (multi-sampling anti-aliasing). Sharpness is like for like, and polygon edges are reasonably clean given the circumstances, with jaggies mostly being kept successfully under control despite the high contrast nature of the game – due no doubt to the title’s extensive use of post-process, per-object motion blur in addition the standard MSAA implementation.

However, the game does appear a little soft in places due to the slight sub-HD framebuffer being upscaled to 720p on both consoles. Although this never manifests itself in any meaningful way, and the overall look is still that of being mostly sharp and clinical despite the amount of screen-distorting effects on offer.

Given the huge amount of stuff being rendered on screen at once; plenty of particles, transparencies, and geometry, it is surprising to see that absolutely nothing has been paired back on either build of the game. Alpha buffers are rendered in full resolution, and both texture detail and filtering are an exact match across both platforms, with tons of beautiful shader effects adorning the display. The fact that the developers have been able to almost reach 720p in its entirety (1280x720) is impressive to say the least.

The use of a 1024x720 resolution framebuffer with 2xMSAA means that the game’s graphical make-up on a frame-by-frame basis manages to work comfortably with both systems differing memory bandwidth limitations – on the 360 in particular the FB fits into the system’s EDRAM without tiling, while PS3 owners get something that isn’t too bandwidth heavy overall. The result of which is basically image parity on both platforms, with only some shadowing quirks and mild gamma differences.

Of course such oddities are hardly justifiable as plus or minus points against each version. Shadowing has slightly different implementations on each platform, with occasional differences here and there, though in motion they look basically the same. This was also apparent in the Enslaved demo we sampled a few weeks back for an another tech analysis, and like with that particular title, in Vanquish it barely impacts on the overall look of the game.

There also seems to some small gamma differences between the two versions. Contrast seems to be slightly boosted, and brightness reduced on the PS3 giving some textures a mildly more washed out look, along with darker shadowing. Detail levels remain the same however, and a quick, and very slight re-calibration of my TV's video settings then yielded near identical results.

One thing that stands out as much in the final game as it did in the demo, is the title’s use of a range of screen-distortion effects and per-object motion blur. Individual parts of the scenery, along with enemies and projectiles become warped and blurred with fast movement and large explosions, in what can only be described as a bonanza of post-processing goodness.

Like with pretty much the rest of the game, both the PS3 and 360 versions are the same in this regard, with levels of post processing effects usually only found in either high-end PS3 specific titles, or in the PC space where technology is always rapidly moving ahead of the consoles. It’s an impressive feat to behold, especially given the demanding circumstances the game engine regularly finds itself in.

Interestingly, the use of motion blur actually helps in making the game seem smoother than it actually is. In Vanquish blur is used not only to distort images on screen, but also to simulate (if not accidentally) a smoothening effect, though without any artificial framerate enhancement.

The Force Unlreashed II demo demonstrates this perfectly, often feeling smoother and more fluid than a 30fps game, and the same thing can be found here in Vanquish as well. The result is that even when performance takes a brief nosedive, it never quite looks quite as bad as it sometimes feels, which I guess is actually a good thing because Vanquish running at 60fps would be an impossible feat.

So far things have been pretty much identical across both platforms, sans for some shadowing/lighting quirks, both of which are barely even noticeable. Instead, what actually separates the two builds apart from each other is performance, in which we see the PS3 command an overall lead, with no screen tearing, and mix of fewer and heavier framerate drops than its 360 counterpart.

Effectively, overall performance between both versions of the game is exactly the same as in the demo. The first section of the final game IS basically the demo, but briefly expanded upon both at the beginning and at the end. In which case we can see that the same scenario displays the same results as our earlier findings; that the PS3 version tends to drop framerate a little more during the large-scale boss encounter, whilst doing so less often during regularly combat situations.

Moving on past the first mission and into further stages of the game, and we can find largely the same results yet again. Sadly, I don’t have any hard way of confirming actual framerates outside of using my own eyes, but it does appear that the 360 build has a small advantage during most of the game’s boss battles, though admittedly I’ve not played both versions all the way through to completion.

Vanquish targets a 30fps update, and manages to successfully maintain that with only a few dips in between, and some heavy drops when the engine is stressed. Most notably the PS3 version seems to be ever so slightly smoother in normal circumstances, whereas the 360 drops the odd few frames more. Though it has to be said that the differences aren’t earth shattering, barely registering at all when immersed in the action. However the PS3 build does feel ever so slightly more fluid as a whole.

So framerates are basically very similar, with one platform ever so slightly favouring heavy load scenarios, and the other more regular encounters. However, in terms of dealing with screen tearing the results are remarkably different, and this appears to be down to each version’s implementations of v-sync – the 360 version happily loses it in order to keep fluidity, whilst the PS3 benefits from having additional support from being triple-buffered.

Triple buffering means that for every frame being displayed, the game renders a total of three. If the first frame is torn, then the next is selected, and so on, until a clean frame is found. Screen tearing is only really noticeable when multiple frames are torn, so by having more frames rendered for each one displayed, means that you are less likely to be using a final frame that isn’t clean.

For the PS3 it means that Vanquish never tears a single frame. Like in the demo its performance is rock solid in this regard, never faltering even when a cataclysmic event is kicking off right in front of your eyes. By contrast the game 360 game doesn’t feature any kind of continuous v-sync, and unlike hinted at in our demo analysis, doesn’t feature any kind of frame buffer technique (as tearing was barely visible I thought that it could have used the lesser doubled buffered approach), leading to regular, though mostly unseen bouts of tearing.

However, the tearing is so mild on the 360 that it is barely noticeable at all. In fact, during play I only noticed it for a split second or so when there was lots of stuff on screen at once; a clear sign that despite the PS3 being the lead build of the game, that the 360 version is still thoroughly optimised. Instead, screen tearing mostly rears its head during the large boss battles, and rarely in normal combat.

Of course there are both advantages and downsides to either approach. The controls for instance feel a touch more responsive on the 360; a common trait found when comparing games featuring frame buffering, and those without. In order for the PS3 to maintain its stellar v-sync performance (in reality it could be dropping it) triple buffering adds an additional rendering cost into the mix. The amount of time it takes to display a frame goes up, and with it comes additional controller latency.

However, this additional latency only subtly manifests itself, and Vanquish never feels laggy or unresponsive outside of when large framerate drops occur. Interestingly, when both versions are put under strain during a boss encounter, they feel pretty much the same, with the 360 just about coming out on top overall.

Even when taking this into account, there’s no doubt that the PS3 build takes the performance lead by the smallest of margins. All things considered; framerate drops, screen tearing, controller latency, it is clear that the Sony game demonstrates a subtle advantage in most of these areas. Although, with the exception of screen tearing, both are a pretty even match, making Vanquish an enjoyable, and downright awesome experience whichever platform you happen to own.

Compared to Sega’s PS3 port of Bayonetta, Vanquish is sensational. Platinum Games have clearly balanced out the intricacies of their graphics engine with the limitations of both platforms in mind, whilst also taking advantage of similar core strengths, thus benefiting the PS3. And the result is nothing but an impressive showing of parity across both formats.

Sure, the 360 game may well tear a few frames every so often, and the PS3 build’s use of triple buffering adds additional controller latency into the mix, although neither really takes away anything from either version, or the game as a whole. For the most part, all in all Vanquish is virtually identical across the board on both platforms, with any subtle differences being mere curiosities than ranking marks on a scorecard.

In short, Platinum Games’ latest is an essential purchase regardless of which console you happen to own, and is in no way a repeat of the travesty that was Bayonetta. Although, the blame for that one lies solely in Sega’s court.

For a more complete look at the tech powering the game, and a nice companion piece to this somewhat lengthy follow up article, why not check out our earlier demo analysis. That is, if you haven’t already.

Thanks as always to AlStrong for the pixel counting, and to Cynamite.de for the screens. Check out the original gallery here.

1 comment:

  1. I know this is an older article, but I stumbled across it in an search looking for this very comparison.

    I very much appreciate the exhaustive analysis.

    However, I just want point out that your explanation of triple buffering is very, very wrong.

    Triple buffering does not mean 3 frames are rendered for every 1 frame. The game could render at 90fps if that was the case.

    Rather it means that the game renders using one display buffer and two back buffers as opposed to double buffering which only has one display buffer and one back buffer.

    The way the rendering process works is that frames are constructed (rendered) into a back buffer, once the rendering is complete this frame is moved into the display buffer (this process is typically called swapping the buffers). When the buffers are swapped, the back buffer is now clear for a new frame to be rendered into it. Meanwhile, when the display refreshes, it uses the frame now in the display buffer to determine how the pixels are changed.

    If a new frame is swapped into the display buffer while the screen is in the middle refreshing, this results in a part of the screen displaying the old frame and part of the screen displaying the new frame. That's tearing; the screen is effectively showing half the previous frame and half the new frame. This is why tearing is particularly noticeable in high motions games, when there's a large visual difference between consecutive frames. Vsync synchronizes the swapping of buffers with the display's refresh rate, so that the display buffer is only swapped with a new frame after completely refreshing the previous one on the screen.

    Where does double vs triple buffering come in? Well, as said, with double buffering, you only have one back buffer, and you need a clear the back buffer before you can start work on the frame. If the system can't render at the same rate as the display's refresh rate (60Hz), then it has to wait for every other refresh (with vsync) before it has a clear buffer to work with. In other words can only render at 1/2 the refresh - 30hz or 30fps. If the system can't render at 30fps, then it has to wait for every 3rd refresh, meaning 20hz, 20fps. Because you always need to wait for a refresh to get a free back buffer, you can only render at fractions of the refresh rate when using vsync and double buffering. So even if the "true" framerate the system is capable of rendering at would be 28fps for example, it would be limited to rendering at 20fps. This is sometimes known as the "framerate divider" effect. Get rid of vsync, and you can swap the buffers as soon as a frame is done rendering, so you always have a free back buffer to work with - but then you get tearing.

    With triple buffering, you've got two back buffers which are alternatingly swapped with the display buffer. E.g. the system renders into one back buffer and it completes, while that's waiting for the display to refresh, the system can immediately start rendering the next frame into the other back buffer. While the next frame is rendering into the second back buffer, the first back buffer will eventually be swapped into the display buffer, freeing it up for the next frame, and so on. This allows the game to render at the framerate the system is truly capable of, yet still by synchronized with the display's refresh.

    Now...I hope you can give a good telling to whomever gave you that silly, bogus explanation of triple buffering in your post.

    PS. In case it wasn't obvious, I'm a software developer for a living. I don't currently work in graphics programming, but I do have experience with it ;)