DirectX Basics

Street Raider

- What's the easy way to do <...> in Direct3D?
- Nothing in Direct3D is easy.
(talk in microsoft.public.win32.programmer.directx)

Being the coder of the Hugi interface I often receive messages with questions about DirectX programming. Of course I know a bit about this topic but I don't like to teach anyone because a lot of documentations and resources are available and I don't want to spend my time on retelling them. Anyway, I don't like speaking much... I'm not a writer, I'm just an ordinary coder. Here I want to give you a list of some available resources and a few comments of my own to help you start learning to code in DirectX yourself.

The first thing I want to say is that you took the right decision if you have chosen DirectX as a multimedia platform. I think it's one of the platforms with the most promising future perspective. It has a lot of advantages. The main disadvantage is that it's Windows 9x/NT only...

As DirectX is a native part of Windows it would be better for you to explore Windows programming first. It's not required but highly practical. If you like to skip that, you can use any sample as a template.

What language should you choose? I recommend to use C++ because it allows you to manipulate DirectX objects easily. But if you like you can also work with C or Delphi. It's possible but a bit awkward. I prefer Microsoft Visual C++ to write code and compile Windows applications. VC has a nice IDE (Integrated Developer Environment) that will help you code faster.

And you need the DirectX SDK (Software Developer Kit) to compile DirectX applications. VC 4.0 contains the DirectX3 SDK, VC 5.0 the DirectX5 SDK. The latest version of DirectX is 6 and you are free to get the latest SDK. Having downloaded an SDK, don't forget to add the paths to it in your compiler config. In case of VC, you can find it in the "Tools" menu. Click "Options", "Directories", "Include files" and "Library files".

At first it's better not to write one's own code but to look at some not too complicated sample, try to add something and view the results. When you try to build a sample, don't forget to link the DirectX libraries in order not to get "unresolved external" error messages from the linker. You have to simply add ddraw.lib or whatever to the list of libraries to be linked. Using VC you will find it in the "Project" menu, "Settings", "Link tab", "Object/library modules".

So, start exploring new lands. The following sites will help you.

 DirectX home page
 http://www.microsoft.com/directx

 DirectX Links
 http://www.devgames.com/XPlus/links.html

 DirectX Workshop
 http://www.divineweb.com/directx/

 The DirectX eXperience
 http://www.geocities.com/SiliconValley/Way/3390/index.html

 Journals of a directx junkie
 http://www.angelic-coders.com/bpshea/

 DirectX at Game Programming
 http://www.gameprog.com/directx.htm

 Visual C++ Developers Journal
 http://www.vcdj.com/

 Win32 Demo Programming Links
 http://www.tbl.org/w32links.htm

 The Win95 GPE
 http://www.geocities.com/SiliconValley/2151/win95gpe.html

 Win32 Demo Programming Links
 http://www.tbl.org/w32links.htm

 Internet Resources for Windows Developers
 http://www.r2m.com/windev/

 The Game Programming MegaSite
 http://www.perplexed.com/GPMega/

 The Game Developer's Resourcium
 http://www.resourcium.com/main.html

 The Game Programming MegaSite
 http://www.perplexed.com/GPMega/

 Strange Creations
 http://www.strangecreations.com/

 Prometheus Truecolor
 http://www.zip.com.au/~gaffer/ptc/

 Reliable Software Programmers
 http://www.relisoft.com/

 Internet Resources for Windows Developers
 http://www.r2m.com/windev/

 Game Programming Galaxy
 http://www.geocities.com/SiliconValley/Vista/6774/

 Creating Hot Games
 http://www.cs.hmc.edu/~tsemple/games/

 3D Engines List
 http://cg.cs.tu-berlin.de/~ki/engines.html

 Angelic Coders
 http://www.angelic-coders.com/

 DirectX SDK Download
 http://www.triax.com/ben/directx/

Updates of this list you will find at my home page: http://www.ucl.ru/sr/

- Street Raider // DDT. Ent.