Close to the Metal: Marmalade on Apple's new graphics API

Forget the inevitable iPhone 6, the accompanying iPhone 6 Plus and the questionable rise of the word ‘phablets’ – the big news for games developers was the unveiling of the Metal graphics API back in June.

Designed to allow studios to squeeze more visual power out of iOS 8 without increasing the processing cost, Metal marks the next step for mobile developers hoping to create high-quality games for smartphones and tablets.

“With Metal, Apple has created a thin API targeted specifically for the Apple A7 and A8 GPUs, allowing developers to make better use of the GPU processing power,” explains Tony Waters, Marmalade’s head of SDK.

“Metal has been designed to provide a reduced overhead between CPU and GPU, more predictable performance and better programmability. This enables developers to shift more processing onto the GPU and reduce the load on the CPU for each draw call. Ultimately this comes down to more draw calls per frame – potentially ten times more – this means more unique objects and more visual variety.

“Also, there’s a nice side effect that reduced CPU load on draw calls means there’s more CPU time available which could allow for more complex physics and AI, for example.”

“Games designers are incredibly creative,” he says. “Often the challenge with app development is trying to realise the vision within the constraints of the platform. It’s a balancing act between the quality and quantity of the graphics assets used and ensuring the frame rate and responsiveness is high enough.

“A lot of effort is arguably spent scaling down the ambition of artists and designers – reducing the polys on models or taking background objects out of a scene, all to ensure the frame rate is high enough. More powerful GPUs and new APIs like Metal allow developers to create games closer to how they were imagined to be.”

Naturally, Marmalade is preparing to add support for Metal into its products as soon as possible. In fact, the firm’s Extension Development Kit already allows studios to use any new platform API on their current projects without waiting for an update to the main Marmalade SDK.