Professioal Game Development and D3DX

Started by
3 comments, last by ET3D 15 years, 11 months ago
Do professional game developers use the D3DX library? Particularly the math library, and texture loading functions? I've been developing a demo engine, and I've programmed my own math library (using SIMD instructions) and texture loading methods, but this all seems like a waste as most of the stuff is just a duplication of functions that are already available in the D3DX library anyway, I understand that there is a similar library available in the OpenGL SDK as well. So I'm wondering if all my programming has been a waste (besides the practice) or if professional game developers use the D3DX library to save time?
Advertisement
If you need your engine to port to non-DirectX hardware, then you'll want your own matrix class, which means you can't use the D3DX functions.

For DirectX-only engines, using D3DX is perfectly fine although you'll probably find that most professional game engines won't use classes like ID3DXFont, ID3DXSprite and ID3DXMesh because they'll have their own, more performant version of those classes.
There are some functions that are highly optimized (like all D3DXMatrix functions), but for mesh loading i use Vertex and Indexbuffer separately
Yeah I didn't plan on using the mesh or font functions, because I'm using a proprietary format for those. I had written my own texture loading methods, which implemented third party libraries like libpng and libjpg, and my own tga library that I had written a few years back, but after reviewing D3DXCreateTextureFromFileInMemoryEx this seemed to be capable of doing everything I was doing anyway, with DDS support as well, so I figure I'll archive the code I was using so that I can reduce the number of files that need to be compiled.

As for my math library, I'll keep it around for a while, as I have been using it for my physics engine and server, and I don't want my physics engine or server to require any Direct3D header files. I've also been playing around with AEGIA and Newton Game Dynamics which use their own math libraries, so if I ultimately decide on one of those for physics I'll probably drop my math library altogether.
Regarding math, every 3rd party library has its own vector and matrix classes and ways of doing math, and there's no great reason to use one over the other, and you need ways to convert between them, anyway. I find D3DX convenient mainly due to familiarity.

This topic is closed to new replies.

Advertisement