3DNow! Drakan: Order of the Flame Interview
Introduction
I had a chance to talk to Stuart Denman, Lead Programmer at Surreal Software, about their latest game Drakan: Order of the Flame. He was more than happy to share with me his experience programming for 3DNow! and how it was used to enhance the game.
Interview
We use the instruction set to optimize our real-time 3D shadow code and our single-skinned skeletal animation system.
AMD helped us out a lot, they basically wrote the 3Dnow!-specific optimized code from our C++ code and we just popped it in. Thanks to Williams Kern at AMD for his help on this.
No, we used macros and in-line assembly in Microsoft Visual C++, so we used the same compiler for all our code.
When there are lots of animations and shadows, we are seeing as much as a 10% frame rate improvement with 3Dnow! enabled on the K6-2. It's not so much on the K7, though, since it already has such good basic floating-point performance.
Yes, you can specify "-no3dnow" on the Drakan command-line to disable 3Dnow! optimizations.
Yes, this is added to the patch which should be available next week. Just specify "-fpstest" on the command-line and Drakan will dump a text file with the average frame rate into the Drakan folder. This is compatible with benchmarking utilities such as 3D GameGauge.
Yes, but now that hardware is starting to support transformation and lighting, we will let the drivers handle these 3Dnow! and hardware optimizations more and more in the future. This is easier for us, and it allows the hardware OEMs to optimize their drivers for both 3Dnow! and their specific hardware.
All logos are trademarks of their respected companies.