Id’s John Carmack has warned against developers leaning to heavily on hopes for APIs to magically solve slow-running engines. Despite the softwares being developed to allow developers to have a more direct interface with graphics cards, he said that out of the box “any API, even if you made all the API overhead vanish, it doesn’t make that much of a difference.”
The discussion kicks off around the 6.20 mark but I’ve written up the relevant bits below.
“For people who are not developers [what] can be difficult to understand is bottlenecks,” said DICE’s Johan Andersson. “It’s not the bottleneck. It’s not “Ok, solve this one, we’re done. Let’s go home, the game runs well.” Bottlenecks is like Whack-A-Mole: you find and fix one and you thought that was the thing that would make everything four times faster and then the next bottleneck shows up after 10% improvement.”
“Of course, the biggest issue is that really you have to architect your large scale vision and take maximum efficiency into account,” responds Carmack. “No API all of a sudden makes a dramatic difference on things because if you build a good game engine, any API, even if you magically made all the API overhead vanish, it doesn’t make that much of a difference. There’s stuff on GCNs that I’m very excited about; asyncronous pipeline queues, that would be great to have direct control over but you either design for that or you don’t design for that.”
Their points came out from a discussion about AMD’s new Mantle API. There’s been a lot of talk about the efficiency boost it can bring to the table but the developers were wanting to shy away from any bold claims and instead highlight that an API is only as good as the engine it’s being tied into and the skill of the programmers optimising the software.