That a triple-A games studio would start sharing presentations and resources that it created when getting to grips with the PS3 is surprising, but that it would then start sharing code as well is unprecedented. We caught up with Mike Acton, Insomniac's engine director, to discuss the initiative in depth.Why did you go to all the effort of setting up the Nocturnal intiative?
We really wanted to contribute back to the industry. That's always been in the Insomniac philosophy, and from a tech and tools team point of view we wanted to do something very specific. Like I've said many times, we're all here standing on the shoulders of the giants that came before us, so we feel it's our responsibility to give back.
Do you have any goals you'd like to achieve with Nocturnal?
We'd like it to be bigger. I think the ultimate goal, more so than just momentum and it building up over time, is to encourage developers to do the same thing - if not through our Nocturnal mission, if not through us, if they do it from their own sites or do it from GDC or whatever, if we can contribute in some way to other developers saying 'Hey, if Insomniac can do it we can do it' then that's good for everybody. It makes no difference from a competitive point of view.
I just want to encourage any other developer to join us in the bandwagon of sharing as much as possible. It's important to get across that this isn't what we're competing on, that isn't our competitive edge. Let the games stand on their own, but let's share the tech, let's share as much information as possible with each other and work together to make the better games for everybody.
Do you find yourself having to be careful about not revealing too much - either about your own tech or Sony's PS3 inner workings?
You know, naturally, there are things we can't reveal because they're under NDA - for example, some of the lower level details of the RSX are not publicly known - so we can't reveal that information. But generally we'll either cull those parts out of the presentations, or create a generic version that's applicable to GPUs in general so that other people can still get the idea, can still learn how the technique without knowing the specifics of the hardware that we're not allowed to talk about.
There's also pieces with for example the Sony SDK, which isn't publicly available, and mostly we'll just describe that in general terms so that people still get the idea. If there's something particular to the project we're not ready to reveal yet, then again, we'll just talk about it in general terms and we'll reveal the context of this particular method later on.
Did you approach Sony with the idea, or were they looking to do this with one of their close partners?
Well, we're independent - it was something we just did, we do as we please mostly. We talked to them about it and made sure that they knew we weren't going to reveal any NDA material. But yeah, everybody's fine with it.
There's still a lot of people saying that developing for the PS3 is a nightmare - as a studio that's currently working only on the platform, do you believe that to be true?
What I've always said is that bad code, and bad data design in particular, is bad on any architecture, but it's particularly bad on the PS3 because the Cell is a much more modern, much more heterogeneous design. It's much more parallel, and so requires good data design and good code. So if you're poorly designing your data and your code, then yeah, I can see why it'd be difficult to take something like that and try and manipulate it to work on the PS3, especially when people have invested a huge amount of money and time on something that basically doesn't fit a modern methodology. Yeah, it's going to be time-consuming to get that to work - if it's at all possible.
But, at the same time, it's inevitable. The world has changed around us, it's going to continue to change, each generation is different from the last. Everything changes - that's the nature of console development. Nobody is taking their SNES engine and trying to get it to work on the PS3, right? There's no long term in console development - if you're not good at change as a company then you simply won't survive.
Do you think that getting used to this heterogeneous processing model is just a learning step, something that developers will just have to overcome?
Yeah, multi-core isn't tomorrow's tech - it's here now. You can kind of get away with it on other contemporary platforms, but next-gen, and the gen after that - there's no option. These are skills and lessons that you have to learn in order to survive in this industry. Another example is to take the generation jump between the SNES/Mega Drive and PlayStation/Saturn - there were a huge amount of developers that didn't survive that transition because they had to learn 3D, and they said 'well, 3D is so much harder than 2D'. Building models, dealing with a huge number of artists - this was much harder than just having sprites and just blitting them to the screen. People didn't survive, and they bitched, but you have to do it because the world changes.