View Use MDX 1.1
DirectX for Dummies
Keeping track of the process so I can document this later for the rest of the team...
Update: I've switched to XNA. It is cleaner and easier to use (once you figure it out)...notes are at my public study forum.
Base Assumptions
- We're using DirectX 9, not DirectX 10.
- We're using Managed DirectX (MDX) 1.1. May migrate to XNA later.
- We're developing using Visual Studio 2005 (MSVS) with C# (Managed DirectX implies C#)
Installation
DirectX 9 and several of the examples I'm using assume the DirectX 9 SDK organization. The last version of this SDK is the August 2007 version. The November 2007 version of the SDK is DirectX 10, and has a different layout of the various library, utility, and include files. So I'm installing the August 2007 version now. We're using DirectX 9 because it's better documented than the very new DirectX 10 SDK. We are not yet using cutting-edge hardware, and stability is more important than speed...we're re-evaluate in 2008.
- Acquire SDK from Microsoft's website. Search for August 2007 DirectX.
- Double-click to extracting SDK...ugh, it uses the awful WinZip self-extractor, and it ends up it ` a Temp directory in my user folder, where it will no doubt hog hundreds of megabytes of files forever and ever. 3457 files unzipped! On clicking OK afterwards, it automatically runs the installer. Accept the terms, install everything (include redistributable files, for when we test deployment).
- The setup app unpacks to
C:\Program Files\Microsoft DirectX SDK (August 2007). This will be the base for our path setup in MSVS. - Now we test our framework sample (c++) and our two MDX samples (tutorial4, tutorial6). Launched the .csproj files with launched MSVS, then had to "Clean Solution" and then "Build Solution". Testing ("Start Debugging") worked. Make sure to go to MSVS > Tools > Options > Projects and Solutions > VC++ Directories and update the paths to the include and library files, if you are compiled C++ files.
Looking around at other MDX Game Engines
I'm looking for a simple framework to start dissecting and understanding. First I just took a peek to see what's out there in terms of "managed directx engine" development:
- List of Engines using MDX @ http://www.thezbuffer.com/categories/engines.aspx
- Microsoft Coding for Fun @ http://blogs.msdn.com/coding4fun
- Community for Managed DirectX @ http://www.mdxinfo.com/
- DirectX9 for C# Tutorials (good) @ http://www.riemers.net/eng/Tutorials/DirectX/Csharp/series1.php
Building our framework is, in some respects, an enormous undertaking. However, we're going to bite off little bits of it right now. The major elements to understand right now are:
- Useful Framework
- Loading a Model
- Rendering a Model
- Controlling the Camera
- Manipulating the World
That's the first skeleton of understanding that we'll put in place. There are TONS of different ways to do this, and we've looked at a bunch of different possible engines. We're going to pick one and do something very basic in it. That will be enough for today.
I'm now looking at the program.cs file to derive the base structures from it. I had started to do this before in my DevJournal for the project.
A Look at the DirectX 9 MDX Framework
Which is not very well documented. Or rather, it's documented and commented in code, but like a lot of programmer documentation the descriptions themselves lose all their conceptual back references.
