How do you turn a game design and engine specifically designed for the architectural strengths of one console, and make it work on a competing platform with an entirely different range of technological plus and minus points? Maybe Tecmo has the answer with Ninja Gaiden Sigma 2.
Recent coverage of SEGA's Bayonetta demo has raised a number of interesting questions about some of the challenges of cross-format games development. If a game is specifically designed to make the most of the custom silicon in one particular console, is the other always doomed to be a "bad port", even if there's literally nothing the development studio can do to make a like-for-like conversion? Bayonetta's engine relies heavily on dealing with alpha textures and overdraw in general. With its "daughter die" of eDRAM connected directly to the GPU, the Xbox 360 is ideally suited to this type of work. But to put it blankly, the PS3 isn't, hence the performance penalty.
Tecmo's PlayStation 3 development team faced a similar challenge with the conversion work on Ninja Gaiden 2. Team Ninja's original code is based on exploiting all of the inherent strengths of the Xbox 360 platform, the intention being to push out as many polygons as possible based on the Microsoft console's unique architectural advantages. A like-for-like copy at the same performance level would've been an almost impossible job to produce on PS3.
Team Ninja's original performance quest was so completely single-minded that it actually resulted in a game that ran at a sub-HD resolution on Xbox 360. Native 720p was dumped in favour of an 1120x585 resolution combined with 2x multi-sampling anti-aliasing. Using a 32-bit pixel format and a 32-bit z-buffer, the frame could be entirely rendered within the Xbox 360's ultra-fast eDRAM before being copied out to main RAM. Indeed, if our maths is right, Team Ninja's selected framebuffer format uses 99.975 per cent of the available eDRAM. The performance benefits are obvious: Ninja Gaiden 2 copes admirably with a vast amount of on-screen enemies and relatively complex environments.
In short, it's the stuff of nightmares for anyone looking to convert the game onto PlayStation 3 using traditional porting techniques. Here, the vertex-processing capabilities of the hardware are simply not a match for the Xbox 360 without some seriously hardcore coding modifications. The lashings of transparent alpha effects on the 360 code, in the form of gratuitously over-the-top blood-letting, are handled without much complaint. It's a different story for PS3, where bandwidth is at a premium. Compared to the NVIDIA 7800GTX the chip architecture is based on, RSX has half the amount of in-built Raster Operation units (ROPS) and no eDRAM to make up the difference in terms of bandwidth and fill-rate.
The Sigma team's solution to these problems is quite ingenious. It simply rebuilt the whole game completely from scratch with its own engine, "remixing" Ninja Gaiden 2 to play more to the strengths of the PS3 hardware. It's a situation only seen before a handful of times in previous cross-platform projects (Oblivion and Enemy Territory: Quake Wars spring to mind).
Right from the outset, Ninja Gaiden Sigma 2 impresses. There's a palpable resolution boost, for starters. The original sub-HD 1120x585 res on Xbox 360 is substituted for 1280x718 on PS3: essentially full 720p aside from pixel-thin black lines. There's even proper bona fide 2x MSAA included too, to reduce jagginess - though when the engine is stressed, edge-smoothing is dispensed with to maintain frame-rate. This higher level of detail introduces even more of a problem for the gulf in vertex performance between the Xenos GPU on 360 and the RSX within the PS3. The Sigma team's answer was remarkably straightforward: nip and tuck at the polygon count and simply ensure that the PS3 version isn't pushing too many of them around at any given point.
The shots below highlight the differences, but there are more comparisons in the polygon-specific Ninja Gaiden 2 gallery.
The most obvious thing to note is that the Xbox 360 game is capable of throwing far more enemies at you, though there can be a performance penalty. Ninja Gaiden 2 revels in throwing seven or eight opponents at you at any given point (though it can go higher) while the PS3 game is more strictly limited to six or fewer in the same situations. The original 360 code doesn't hold back in the amount of cut-off limbs that pile up, while on PS3 those same appendages disappear almost instantly. Left-behind blood stains on the scenery are also noticeably pared down.
As you can see in this performance analysis video, the result is that while the Xbox 360 game can be seen to be far "busier" if you really work to stress the engine, the PS3 version still manages to keep up and even maintain an overall smoother performance thanks to the compromises the Sigma team has made. However, in like-for-like situations, the 360 is still a touch smoother. In terms of how the game stacks up look-wise in the heat of the action, yup, we've got a specific comparison gallery just for that too.
The reduced polygon count is most noticeable in some of the cut-scenes. Where the game directors have total control of the engine's polygon budget, we get to see the in-game engine at its very best, pumping out some insane levels of detail on Xbox 360. You can see that Team Ninja cut back where possible on PS3, and also introduced a v-synced 30FPS frame limit, whereas the 360 equivalents run without a limit (often running much slower than 60FPS).