Vulkan is the new graphics API that makes for a great foundation for future games and 3D apps. If you’d like to check it out with The Talos Principle BETA Vulkan support, it’s a good idea to read this forum post first. Croteam’s Senior Programmer, Dean Sekulic, is pretty excited right now (we all are!) and his post is an interesting mix of instructions, disclaimers and a personal dev diary.
With the imminent release, Vulkan is also a hot topic in tech community so we asked Dean just a few questions about bringing Vulkan support to Serious Engine.
In-house interview: Why Vulkan?
Serious Engine already works on many different platforms and the general consensus is that it works very well. Why do we need Vulkan?
Vulkan is a great fit for Croteam’s next game, which will require no compromise when it comes to raw performance.
Vulkan wasn’t officially released till today, so how were you able to work on implementation and roll out one of the first titles supporting this new tech?
Croteam is a member of VAP (Vulkan Advisory Panel), and for almost a year we helped with designing the Vulkan API . It was a great idea on part of the Khronos Group to include Croteam and other game developers, because we all know what happens when you let only IHVs design the API: game developers are left with low-level programming of GPU registers. 😉
How would you describe the current state and performance of Vulkan API?
Vulkan has a huge potential! We’re only scratching the surface of what can be done with it, and porting The Talos Principle to Vulkan should be seen as a proof of concept. Of course, Vulkan also requires several changes in the higher level graphics system in Serious Engine and this will come in time…
What is your experience with implementing Vulkan support in an existing game engine and making it work with current technology?
We had great support from both NVIDIA and AMD and the really nice folks in their developer relations department and driver programmers helped us a great deal! All in all, it was a much smoother operation than I anticipated at first, regarding all the classic issues with “hitting a moving target.” Yes, it was quite hard to code support for API while it’s still being changed, but I’m really happy that we went that way so early and also helped in designing the API itself.
Also, I have to point out that we’re not there just yet – some work is left to be done in both low-level and high-level optimizations.
How would you describe your experience with Vulkan in just one sentence?
Vulkan in just one sentence? The endless war between performance and portability is finally over!
Would you be willing to share your experience with Vulkan with other developers?
Absolutely! I’ll be more than happy to share Croteam’s experience, both the advantages and the challenges, on porting an engine from OpenGL or Direct3D to Vulkan. I’ll be giving a lecture about implementing Vulkan in Serious Engine at Reboot Develop 2016 in Croatia in April. Hopefully, I’ll be one of the speakers at the Vulkan panel at GDC 2016 in San Francisco in March, but we’re still in talks about that one.