Is There Life Beyond DirectX?
Zangief asks: "Almost any gamer has, at some point, the idea of making their own game. I am no exception, so I've been playing around with SDL, which appears to be the logical decision over the craziness of DirectX. However I have also noticed that other alternatives, such as ClanLib. There is something else? Are there any other libraries, dev-kits, or tools that would be good for indie developers?"
There are engines already built and out there, completely open for your use. Some of the best-selling games over the past couple years have been Mods built onto existing game engines. Why fuck with SDL/DirectX/ANYTHING when you can start off building a game, instead of an engine?
-- 'The' Lord and Master Bitman On High, Master Of All
SDL seems like the only choice. Unless you specifically want/need DOS support, or a few other platforms other libs will get you, SDL supports a large number and has gone beyond the critical mass of 1) things that use it 2) developers interested in it and 3) employed developers who spend time caring about it (Even if it's in their off time :)
SDL has also of course been used for a number of commercial games, I've used it myself with regard to two ports - One from windows which already used SDL and was extremely easy to port, and the other from Mac OS (not X) that was difficult to port and we added SDL to that so it can just as easily go to windows, BeOS, etc.
Check out ioquake3.org for a great, free, First-Person Shooter engine!
Sun has recently started paying more attention to java as a gaming platform and has been pushing java along with OpenGL as their solution.
A Multiplayer Strategy Game for Mac OS X, Windows, and Linux
What's wrong with DirectX?
From what I understand, it's a pain in the ass sometimes, but it's got some strengths that are hard to ignore:
1.) Well supported. Works across 98, 2k, and XP. That's MILLIONs of machines there.
2.) DirectX not only handles graphics, but sound and input as well. It's just not somethting you get from OpenGL.
3.) It's always growing. Supposedly they always have new features and stuff going into DirectX. Can't say I know how that compares with other API's, but it seems like Nvidia and ATI are always doing something with MS there.
For the record, I really am asking "what's wrong with DirectX", as opposed to using that as a clever way of saying they should be using it. I'm not the most informed person on this topic and I welcome some education on the matter.
"Derp de derp."
There's an SDL port to KOS, a small operating system which runs on the dreamcast. So most of your experience with SDL will translate into an easy path to developing for an actual console.
Everything will be taken away from you.
1) poorly supported; SDL+OpenGL does masses of platforms and targets (e.g. X, framebuffer, aalib) within those platforms that DirectX won't;
2) SDL does more with sound and input than DirectX, and handles stuff like enumerating CD drives, handles events that DirectX knows nothing of, and you can use parts of it (you needn't ship interfaces to all);
3) DirectX grows unpredictably and in directions ordained by Microsoft; SDL is GPL, make of it what you will.
Got time? Spend some of it coding or testing
And don't forget you can pair Pygame with PyOpenGL. By moving all the pure drawing to hardware, I'm pretty sure you could free enough CPU cycles to get a game like Doom or Quake running on a decent computer.
Yep, even in Python. It's commonly heard that Python can perform 100x worse than compiled C. But hey, computers are 100x faster today than they were when Doom came out.
And there's the JIT-like Psyco which generally boosts Python code performance by 4x or so.
If you're looking for something better than Direct3D, you should check out the Q engine by Qube Software.
:)
Q 3D Engine
(FREE DOWNLOAD for Windows & Linux)
You may be interested to note that this is produced by some of the same engineers who produced Direct3D. Can't be that bad then eh?
PS I once worked for Qube, so I'm probably biased.