Actually, you probably know already because It’s done and it works great. You can all check it out by downloading The Talos Principle from the iOS App Store. So much for the shock value, but the story on how Serious Engine was able to support Metal API and push the boundaries of iOS devices does make for a compelling read. Karlo Jež, one of Croteam’s senior programmers, tells the story.
“I was just about finished with my work on single pass and multi-GPU rendering optimizations for VR titles and getting ready to start working on the next project. Alen (Croteam’s CTO) walked into my office and asked me if I knew anything about Metal API. I said ‘Yes. I know it’s out there’.”
“Just one short month later, the first builds were successfully tested on multiple iOS devices using Metal API.”
“Apple’s graphics programming interface was well documented and not that different from the Vulkan API that our engine already supported,” Karlo explains. “This, together with my brains and good looks, enabled us to implement Metal in a very short amount of time.”
It was just the first step in bringing to life the wonderful idea of having “console quality” (or for the PC master-race, “PC quality”) graphics, performance – and ultimately games – on devices we carry in our pockets. “Engine is more than just it’s rendering parts,” says Karlo. “UI was overhauled to support different screen sizes, touchscreen controls were built and fine-tuned, and there were, of course, bugs to root out. It was challenging adapting the interface to look and feel just right on a range of devices – from the smallest 3,5” iPod Touch to the largest 12,9” iPad Pro. To do that we had to scale different elements individually.”
“Every now and then, when we figured out how the interface on a device should be set-up, we would test our new settings with different players – veterans and those who have never played our game. Those tests were crucial in adjusting our state of the art touch-screen interface.”
Little things matter the most and small-scale tuning is just as important as big changes and this is what Karlo spent most of his time on after the initial alpha test. “We are devs, but we’re also gamers. There are things that we love and things we notice that can be better in games. So we take great care to create an enjoyable experience and prevent the frustration in players. Things like faster (instantaneous) recovery when the game is returning to the foreground are just as important as having a smooth frame rate.”
With the engine in place, it was only logical to take the next step and publish a game, right? So we did just that and it went great.