Saturday, 20 November 2010

Tech Report: Irrational Talks Bioshock Infinite PS3

It’s no surprise to often hear about paired back PS3 ports of the latest new releases. In fact, although the gap has now closed somewhat, it was once a commonplace occurance.

Take the first two Bioshock games for example, rendered in a lower resolution complete with a blur filter and further reduced resolution effects, they where hardly the best advert for Sony’s regularly misunderstood console - our own tech analysis of Bioshock 2 strongly supports this. However, this has not gone un-noticed with series creator, and developer of the upcoming Bioshock Infinite, in which the company’s technical director, Chris Klein helped put forum users at ease.

"we're serious about making sure the PS3 version is great."

"We have no plans to hand off the PS3 version of BioShock Infinite to another studio. In fact, it's not a 'port' at all. We have a much larger team than we did on the original BioShock, so we're doing simultaneous in-house development on the PS3, 360, and PC versions of the game.”

Part of achieving this newfound focus on cross-platform parity comes from using a brand new engine, which has been customised in such a way that allows programmers to approach work on both versions similarly as you would when simply coding for the PS3. It has been said many times before that this approach would see tangible benefits for both platforms, and this certainly seems to be the case.

"We all know that the PS3 is powerful but unique console with its own strengths and challenges. But compared to the PC, the Xbox 360 is challenging too. So instead of declaring a 'lead platform' and porting the game to the others, we've instead changed the game engine so that all platforms look (to a programmer) more like a PS3. This means implementing a task-oriented task processor that assumes a NUMA (non-uniform memory access) design that mimics the PPU/SPU split of the PS3. Writing code this way is more difficult for us, but has a key advantage: it's both optimal for the PS3 *and* gives speed improvements on other platforms due to increased cache coherence and more efficient use of multiple processing units."

“We've built a whole new parallel processing framework (a "job architecture", in programmer lingo) that lets the engine take advantage of as many cores as you can throw at it. This will let us eke out all the power of the PS3 and 360, and also give hardcore PC gamers something to show off their rigs with.”

Chris also talks about how moving to a deferred lighting system was done to help reduce overall CPU overhead, particularly on the PS3’s rather limiting PPU, whilst also shifting certain tasks off of the RSX GPU and to the SPU’s further optimising the engine for increased efficiency.

“This decision (switching to a deferred lighting scheme) was made for many reasons but one important one is that, compared with a Unreal's traditional forward rendering scheme, deferred lighting reduces the amount of work we need to do on the slowest part of the PS3 (the PPU). It also allows us to move work from the GPU to the SPUs, which gives us many options for speeding up rendering on that platform.”

Furthermore, all programmers also have access to both 360 and PS3 dev kits, thus allowing them to test and optimise code as new features are implemented. This means that various graphical and performance issues can be worked on simultainiously throughout development, rather than porting to PS3 and then working out the kinks. Devs can see how things are progressing on a side-by-side basis.

"In terms of production, we're constantly testing our code on the PS3, as it is part of our QA team's daily test plan. All of our programmers have PS3 and 360 dev kits on their desks, and can test on the PS3 just as easily as on the 360. To make sure we find and fix problems as quickly as possible, we have a ‘continuous integration automated build system’ that rebuilds the PS3 version and runs basic tests on it every time a programmer or artist makes a change to the game. It even emails them right away if they break something. In addition, we've also built tools that allow artists and designers to instantly check whether or not their levels will fit in memory on all three platforms, without ever leaving the editor."

With this thoroughly insightful and incredibly revealing post, we can see that Irrational are not only taking the PS3 version of Bioshock Infinite seriously, but like with Criterion games and other such developers, understand that the key to delivering top performance one platform is often to optimise the core engine in a way that benefits all platforms. And by working around parallelising their code, they are doing exactly that.

Previous titles, such as Burnout Paradise, and most recently NFS: Hot Pursuit have shown that this way of approaching multiplatform development actually works, and very well too. So in that respect the next instalment in the Bioshock series looks to be in good hands.

Without a doubt we’ll definitely be keeping you updated on this one. The highly modified tech – based around UE3 – is both interesting as it is visually alluring, and should provide us with another captivating report as more details surface. Hopefully, we'll be able to declare both versions as being basically identical in an eventual, and extremely far off tech analysis of the game. That's certainly what Irrational hope to see.


  1. This comment has been removed by the author.

  2. "compared with a Unreal's traditional forward rendering scheme"
    That's confusing. I always thought, that UE 3 uses deferred rendering technique. In fact, you can easily find proof - just search in Google. Deferred rendering mentioned even in interview.

  3. пс3 говнищща из конскои залупы инфа 100%
    пасанам с MFB гиб гиб ура
    сигалу +1 в карму мод ебанае блеадь все нахуии в караканд()

  4. there are 2 kinds of deferred, lighting & rendering

    unreal didnt have deferred lighting & it's still a little rare these days only being introduced in other games like blur or shift2