Apple last night revealed a large amount of changes to iOS 8 at the opening keynote of the Worldwide Developer’s Conference for 2014 (WWDC), but one thing in particular caught my eye – the announcement of a custom API for the fruit-themed company’s mobile devices called Metal (ha, coding to the Metal, you’re so punny Apple!).
Metal is an interesting development for the company because for the first time it looks like they’re following the rest of the world with their announcement of a custom, low-level API for games and to improve the graphical performance of applications. But there’s more, so much more, that is probably going on behind the scenes now.
Metal was introduced by Apple senior vice president of software engineering Craig Federighi, who announced that the company had identified that their current arrangement using OpenGL ES wasn’t working out as more applications demand extra graphics horsepower. With Imagination’s PowerVR graphics hardware approaching performance levels on par with Nvidia’s K1, AMD’s GCN and Intel’s HD hardware, they had to look to software to eliminate any future bottlenecks as graphics horsepower and efficiency increases and improves year-on-year.
Metal is a custom API for iOS 8, designed to eliminate any overheads for graphics workloads and to help along Apple’s performance improvements in the future. Like AMD’s Mantle API, some of the benefits are better multi-threading support, the ability to do graphics and compute calculations on the GPU (hello HSA, nice to see you’ve arrived) and pre-compiled shaders which are actually similar to what Microsoft’s been doing with tiled resources, dramatically lowering the memory requirements for games because you only load the shaders you need into system memory.
Apple’s leap onto the low-level API bandwagon isn’t altogether surprising, but the timing is interesting. Sandwiched in between Mantle and Direct X 12 (due for a late 2015 launch), this gives the company a lot of room to crow about what they’re doing for their mobile products. Although it’s probable that much of what they’re offering here can be done in OpenGL ES, the issue is that is an open-source component, something that Apple would undoubtedly like to switch for something in-house that they can control better.
The comparisons to Mantle are also apt because when first announced, AMD and DICE’s Johan Andersson both noted that Mantle could be running in an Android environment in the future, but it wasn’t a concrete development as yet. The current crop of iPhones and iPads use Imagination’s Series 6 PowerVR G6430, which will also see inclusion in other mobile devices this year or later in 2015. When Mantle (or any other custom low-level API) eventually hits the Android scene, it will probably be very similar to Metal, if not an exact replica.
This means that developers who are planning to release games on iOS need to choose between OpenGL ES or Metal, depending on their needs. Apple would like more companies to be using their solution instead and has already signed on four big guns to get the train rolling – they are Unity, Crytek, Electronic Arts and Epic Games. That is not a bad grouping and shows that low-level APIs, even on mobile devices and operating systems, are attracting the attention of publishers and developers.
Federighi even mentioned something really interesting – the Frostbite 3.0 engine currently running on consoles is capable of running on iOS devices using Apple’s A7 chipset and Metal. A short gameplay demo of EA’s Plants vs Zombies: Garden Warfare was shown running on a mock iPad on-screen and there was a switch to Crytek’s The Collectibles, which uses the original CryEngine along with Havok physics. Quite impressive.
Speaking of developers, Tim Sweeney appeared on stage to talk about Metal a little more. Tim told the audience of his experiences using the software and went into a live demo of a 3D walk-around of a zen garden running on a iPad with the full Unreal Engine 4.
There were demos of things like particle physics, fish AI (heh), water physics and at one point 3500 individually rendered butterflies on-screen, each with their own AI. The demo then panned out to a landscape shot that had a very high draw distance, although Sweeney didn’t say how far it extended. They could easily have just run the Unreal Engine 4 demo that we’ve seen many times before, but seeing something that’s more interactive was really neat.
Its a good to see that mobile gaming is improving on the iOS platform in leaps and bounds. I wonder what Apple’s plans are for using Metal in the future – will it extend to OS X? Can it run on AMD, Intel or Nvidia’s graphics chips? Will they put it on the next revision of the Apple TV? Do they have plans to break into the home console market and challenge Nintendo, Sony and Microsoft? We’re going to need a lot of popcorn for the next year.