A look at the fully-featured, free engine in the PS3 SDK
Company: SCEE R&D
Contact: See DevNet for download
One of the hot topics at the beginning of this console cycle was the thorny issue of the PS3’s architecture. Developers across the globe moaned that its heterogenerous processing model was a bit of a bastard, especially compared with the Xbox 360.
Sony, in its defence, was quick to react: making the newly-purchased SN Systems’ profiling tools part of the SDK and dropping costs to help developers out. But, in actual fact, plans had already been put in place quite a while before then.
Back when the PS3 was in its earliest of days, Sony looked to bolster its global research and development teams, previously largely focused in Japan. Staff at SCEE’s R&D facility looked at what they could add to the SDK to help developers, and they started a high-level, cross-platform graphics engine, then called PSSG.
Holman, SCEE’s VP of research and development. “You can see that we’re a technology team, not a marketing team. It was completely lost in the SDK.”
Until last year, that is. Feedback told the team that what they really wanted was a broader, more comprehensive engine. Hence, PhyreEngine was born – a cross-platform, completely open, totally free high-level game engine.
One of the things that differentiates PhyreEngine is that not only is it open source, but the licensing terms are probably the most flexible around, explains Holman: “Because we’re giving away the source code, people can do whatever they like with it – in fact, the license agreement specifically says that developers can rip parts out, use it, port it, and they don’t even have to credit us. It’s very open.”
So open, in fact, that aside from the PC and PS3 support that comes as part of the engine, the group has no qualms with people porting it to other platforms. “If we make something that’s very focused on our platform, we won’t get many people using it,” says Jason Doig, SCEE’s manager of R&D. “The broad profile of our developers is that they’re doing cross-platform work, and they’re not going to adopt technology that’s not flexible.
“Certainly, PhyreEngine is focused on PS3, and there is some functionality in there that will only work on it. There are other bits that will work on other platforms, but you might not get the performance you would on the PS3. We’re exploiting the SPUs in the way that they should be used, so we’re bound to get that slight disparity in performance.”
One thing that Doig is keen to point out is that, just because they’ve provided the full source code to the engine, doesn’t mean that they’re washing their hands of it.
“It’s there to give people confidence. We spend at least half of our time giving direct support to developers, and that ranges from answering questions to helping people fix things, optimising things – every game has different requirements, so it’s impossible for us to be optimal for every case.”
Similarly, because the code is shared, some teams have even contributed back to the engine. “It’s quite common, really,” says principal engineer Richard Forster. “Given that they’ve got the source, they can just give us a patch and then we’ll drop that in for the next release. Quite a lot of teams are willing to keep this feedback going because they know it’ll help future releases.”
Of course, by giving it away, with no need to sign any agreement or even credit the group, there are games out there using the engine that they don’t know about. “They’d gone through the whole development process and got the game out there, and they’d not had to ask us a single question,” explains Doig. “If they don’t have an issue with it, we don’t find out.”
That probably makes the team’s internal estimate of number of customers – they say they’re currently supporting ‘between 20 and 30 developers across all three territories’ – likely a gentle underestimation. But having powered games by Codemasters, Doublesix, FluffyLogic, thatgamecompany and Sidhe, it’s pretty clear that the team has made the difference to developers that it was looking to.
By the time this issue reaches your hands, version 2.5 of PhyreEngine will most likely have made it out of the final stages of testing. The team shows us what’s coming up in version 2.6: a new post-processing system for effects, more optimisations, and the ‘release’ version of its impressive foliage system.
Following on from the team’s work on terrains in earlier versions, the foliage system allows artists to freely build trees in the modelling software of their choice, the constituent parts of which can then be tagged in a special program (to delimit the trunk, branches and leaves). The system will then dynamically LOD the trees, taking them from the full model to clumped leaves, and then eventually to billboard clouds.
SCEE tries to release new four new versions of PhyreEngine a year, on a roughly three-month basis. Ask them what’s beyond 2.6, however, and they’re a little bit more vague.
“We’re hopefully looking to make a bigger jump in numbering next time, so we’re taking a step back and thinking about what we could do,” says Doig. “We had this graphics focus, but what people want is something more encompassing; they expect more functionality. So we’re looking at how to adopt other bits of tech that’ll make us more complete as a game engine.”