GDC 2010: No magic button for Gears of War on iPhone: Epic on bringing Unreal Engine 3 to Apple
The process of porting it over to iPhone certainly wasn't an easy one, nor is it complete one yet, explained senior console programmer Josh Adams in his GDC talk entitled 'Bringing UE3 to Apple's iPhone platform'.
"You can't expect to take Gears of Wear, hit a button and expect it to work on iPhone," he laughs.
Indeed, Epic couldn't even consider porting the engine until the release of the 3GS class-hardware as this marked the first Apple devices that supported OpenGL ES 2.0 and the programmable shaders which are the bedrock of the Unreal Engine 3's rendering system.
For that reason however, any Unreal Engine 3-developed games - and to-date none have been announced - will only work on 3GS iDevices.
It's a limitation that Adams acknowledged but said wasn't important in the longer term as legacy iPhone 2G and 3Gs dropped out of circulation.
Other initial obstacles included the fact that UE3 is a C++ Visual Studio Windows-based development environment and codebase that required components to be reworked in Objective-C/Xcode.
Significantly though around 90 percent of Unreal's core code works unmodified once these elements have been ported. The size of UE3 for iPhone is around 18 MB, although it's expected that this could be further optimised.
Another key reason is that Unreal Script - which makes up the bulk of the gameplay logic of Unreal games works unmodified on iPhone. This only happens thanks to the very close cooperation between Epic and Apple that enables its virtual machine to be supported on iPhone; a technical feature that no other game developer is allowed due to security restrictions.
In turn, this means that UE3 developers for iPhone will be able to author their games using the standard Unreal Editor; something Adams said was fundamental to the entire project.
Cutting your cloth
Developers will have to very careful how they make their games however, with features such as specular lighting and normal maps not being supported due to a lack of memory on iPhone.
Equally complex material properties, shaders and dynamic light sources that are standard on Unreal Engine 3-powered consoles games all have to be vastly simplified for iPhone.
The result is a demo of Unreal content (Unreal Tournament 3) that runs at 25 to 30 frames per second on iPhone. There's still plenty of work to be done however, notably in terms of the memory limitations.
In response to a question, Adams said that the main hardware bottleneck for the demo was being CPU-limited. The GPU was fine because of the way the shaders are simplified down.
As for more speculative questions, there was no news about when the first UE3 game for iPhone would ship, let alone when Epic would be formally releasing the technology, and announcing the business model for interested parties.
When Epic gets hardware, it would be seeing how the engine worked with iPad - of course - and there was a definite 'no comment' in terms of the likelihood of support for Android, although a demo has been shown running on Nvidia's Tegra 2 mobile platform (it's unclear what OS this is running).