Some working notes and links for getting into DirectX this weekend. I’m looking primarily for an architectural overview of how everything fits together.
Microsoft’s official “Getting Started” docs…as a starting point, not very useful. Like a lot of programming guides, it’s not a “big picture” document beyond a cursory mapping; it’s like a bad tourist map that leaves out the critical contextual details that make navigating easier. For example, a tourist map of Boston should note one-way streets, and point out which roads are the main drags for getting from place to place. Like a lot of bad online documentation, it tries to start out with a basic description, only to get lost in a hyperlinked mess of information. Because of this, the information just doesn’t flow…it’s like talking to someone who constantly digresses from his digressions, losing sight of the main point. So while hyperlinking keeps the number of sections down, making them easier to keep technically accurate and consistent, it makes for terrible reading. I guess I want “The DirectX Story” to be like Lord of the Rings; instead, I get The Silmarillion
One nice thing about DirectX is that each interface can be learned independently of the ones that came before it. Usually, APIs tend to build up over time, until they collapse under the weight of accumulated bad ideas. With DirectX 9.0c, I just need to learn version 9c of the API. There’s no need to also know version 8, 7, 6, 5, etc. That simplifies things considerably, as version 9 of the API is hopefully is more refined compared to earlier versions.
I browsed through the DirectX Reference Section to get an idea of how many interfaces, methods, and objects there area. Maybe 50-100 total…that’s not bad. Of course, I don’t yet have a clear sense of what the creation order is and which ones are “critical path”, but I can probably now find a basic tutorial and start from there. Time to make a reference guide!
Hm, should I actually just skip Direct3D and go with Simple DirectMedia Layer? That would give me a clean API to work from, and cross-platform capability to begin with. That is, if I want to do games right away. I actually want to get a little more immersed in the Microsoft Application side of things, just to become familiar with it, so I think I’ll stick with Direct3D for now.
While looking for information on .X file exporters for Blender, I came across Toymaker, which looks like a cool, no-nonsense resource for game makers. What I particularly like is that it makes recommendations and has a “voice” in the form of Keith Ditchburn.
This FAQ provided me with a pretty good sense of what the state DirectX is in and answered some basic questions about loading 3D files to boot.