




Is There Life Beyond DirectX? 79
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?"
CrystalSpace (Score:5, Informative)
Allegro (Score:5, Informative)
Allegro Homepage [demon.co.uk]
Re:Allegro (Score:5, Informative)
Actually, it's been moved here [sunsite.dk]. Also, Allegro's recently gotten a Mac OS X port. If you're only really interested in 2D game creation, Allegro is King in my book. However, its 3D routines are all software-based, and getting OpenGL working with it is a bit of a pain (google for Allegro GL). This will change, I think, as there's been a lot of talk about massive changes in the lib for version 5.
There's also OpenPTC (don't feel like looking for the link right now), which IIRC is massively cross-platform.
Re:Allegro (Score:3, Informative)
Re:Allegro (Score:2)
If it now finally works under windows and other platforms, I'd definitely recommend it.
SDL is great, too. It really is very easy to use (for 2D, at least) and quite portable.
Allegro (Score:1, Redundant)
The best game dev site (Score:5, Informative)
Really it depends on what sort of game you plan to be developing. If you are going to try out life as a small independant designer, you might want to try out some Flash stuff. I'm serious. Some people crank out a bunch of shareware Flash games. They're fun and easy to distro.
If you are looking at bigger projects, or trying to learn the coding side to things, you can pick apart one of the game engines in the above site. If you want to learn the real technique behind graphics, then you need to learn DirectX or OpenGL. That is where the real stuff gets done at the moment.
What a broad question (Score:2, Informative)
Related to your question, a good compromise between low-level OpenGL and a full game engine [crystalspace.org] (or even a commercial one here [garagegames.com]) would be GLUT [xmission.com]. Instead of giving a piss-poor explanation of what the GLUT library is all about, I'll just point you to their FAQ [opengl.org]. For sound there is OpenAL [openal.org] or the ubiquitous FMOD [fmod.org].
Depending on what you're looking fo
OpenGL Widgets (Score:5, Informative)
GG [sourceforge.net]
As the sourceforge site says:
In a word: CG (Score:2, Informative)
Still, if you want a unique game, with a unique feel, you'll probably end up writing some assembly, and mostly C/C++ for OpenGL.
Re:In a word: CG (Score:2)
I'd probably personally prefer C with OpenGL, but such is life.
Re:In a word: CG (Score:2)
Programming Linux Games (Score:5, Informative)
It goes over SDL in depth, and shows how to integrate OpenGL into it as well. As well, it touches on some other APIs of note, such as SVGALib, GGI, ClanLib, OpenGL, Plib, Glide, Xlib (for video), GTK+, TK, Fltk, Qt, and SDL_gui (for menu widgets), OSS, ALSA, ESD, and OpenAL (for audio), and cl, Guile, and Scheme (for scripting).
pygame (Score:3, Informative)
obviously if you need every single cpu tick to count, you shouldn't use this. but, it can do 30 frames per second if you write good code.
Re:pygame (Score:3, Interesting)
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 [sf.net] which generally boosts Python code performance by 4x or so.
just Mod? (Score:3, Interesting)
Realistically? (Score:4, Interesting)
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.
Re:Realistically? (Score:1)
I don't know if anyone's done such a thing, of course, or how fast/slow sdl is.
java (Score:4, Interesting)
Sun has recently started paying more attention to java as a gaming platform and has been pushing java along with OpenGL as their solution.
Re:java (Score:2)
It's an easy path to cross-platformness, and has some good deployment options (i.e. web start).
Does anyone have solid experience with Java 2D, Java 3D, and the Java Sound API? These would probably be the make-it-or-break-it aspects of Java for gamers.
java3d (Score:1, Informative)
There are some tutorials on using the built-in collision detection routines (these are behavio
Indie developer game code (Score:2, Informative)
I haven't worked with it personally, but I have looked over the feature set and demos and it appears to be a very capable game development platform.
Just remember, you need a game design, good artwork, and competent coding. There's more to game creation than "wouldn't it be cool if..." (though that's where good games start!)
Good luck!
Re:Indie developer game code (Score:2)
Not sure if the engine and license is worth it, there are more open licenses and engines out there. Garage games does help you sell the game thou, might be a good trade off.
OF course its only 100K USD for Unreal2003 license.
Re:Indie developer game code (Score:2)
Re:Indie developer game code (Score:2)
Gotta ask (Score:3, Interesting)
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.
Re:Gotta ask (Score:4, Funny)
Wine X post in 3.. 2.. 1..
Nor does it run on... (Score:2)
The big problems will come when your game has to be RMS/DRM-compliant to run at all.
Re:Gotta ask (Score:4, Funny)
I know you're joking, but Linux isn't the platform I'd develop an indie game on. It'd be kind of like advertising viagra on Slashdot. You have to think about how big your audience would be here...
Re:Gotta ask (Score:1)
Re:Gotta ask (Score:4, Interesting)
Depends. Linux might be a better market to develop games on. It has a bunch of users are might be interested in a game. The origional Galatic Civilizations was a good game, but wouldn't have gone near as far if they targeted Windows instead of OS/2. By targeting a small system you can get a large percentage of users, while targeting windows means you only get a small percentage of a large number. Depending on how things work our exactly the latter can be much less than the former.
Remember there are few linux games. Those who run linux may be willing to buy a few games, and they only have a few games total to buy, so they can buy most of them. With Windows you have many different games to choose from, so those willing to buy games only buy a small number.
If you are making the next doom or MYST (by which I mean a game that explodes and everyone gets it, not any partular catagory of game) then target windows because you will get more sales. If you are making a standard game you have to set realistic expentations. Why would a windows person buy your ok game vs some other ok game? With linux it is why would someone buy your ok game vs not buying a game at all.
This is a marketing decision. If your expectations are reasonable you can make better decisions than if they are wrong. Of course it goes both way. If you make a game that could explode except it is limited it to linux you just lost a lot of potential sales.
Cross platform development makes a lot of sense. You target one platform, and once the game is out you do market research. Find that something else would make enough sales, and you port to that. In theory it is easy, in practice a little more difficult.
Re:Gotta ask (Score:1, Redundant)
Therefore, by that reasoning, putting viagra in the hands of slashdotters would result in them living 'active' lives.
Re:Gotta ask (Score:2)
Is that how big each person in the Slashdot crowd is, or how many would find Viagra useful?
Re:Gotta ask (Score:3, Interesting)
Re:Gotta ask (Score:3, Insightful)
* You may not *like* portions of it. There isn't a very convincing reason to use a single combined API to do both 3d graphics and sound (at least that I can think of). If you use smaller, more modular APIs, you can use precisely what you like the most.
That being said, it's well supported and tested by Microsoft, and it's free.
Re:Gotta ask (Score:2)
I guess you didn't read the part where I said I wanted to be educated on the topic. It's hard to call me an idiot when I'm openly saying "enlighten me".
"Second of all, DirectX might as well be called Direct ProprietaryStupidOnlyWorksOnWindowsX and actually that's what I'm going to call it from now on because the whole idea of it makes me sick to the stomach."
BFD. That's Microsoft's perogative. If it bugs you so much, help the OSS team develop a rival
Re:Gotta ask (Score:2)
I didn't lump anybody together. I said he uses Linux. Read the clarification bit I wrote right after I said that.
Nice try.
Re:Gotta ask (Score:1)
ehm... NeverWinter Nights.
Re:Gotta ask (Score:1)
Re:Gotta ask (Score:2, Interesting)
I'll grant you my post was a teensy bit inflammatory. The point I was trying to make is that the use of DirectX ties you inexorably to Windows. By contrast a project developed with SDL can be ported relatively painlessly.
And yo
Re:Gotta ask (Score:2)
Who cares? You can sell half a milllion copies of a game on Windows PC's, and maybe 10,000 copies on Linux PC's. Even if it's easy to port, is it worth it? From the numbers above, the answer is no. Quake 3 sold millions of copies on Windows, and something like 40,000 on Linux. Ouch.
"And you are an idiot."
And what's your basis fo
Re:Gotta ask (Score:1)
Re:Gotta ask (Score:2)
We were talking about PC gaming. And I know for a fact you don't have many games for your Mac.
Re:Gotta ask (Score:1)
I've got to say, you're an idiot.
Second of all, DirectX might as well be called Direct ProprietaryStupidOnlyWorksOnWindowsX and actually that's what I'm going to call it from now on because the whole idea of it makes me sick to the stomach.
That makes you sound stupid.
And thirdly, you are still an idiot.
People in glass houses shouldn't throw stones.
And you know if you use GLUT with OpenGL I'm pretty darn sure you can get all the mousey, keyboar
Compared with SDL+OpenGL... (Score:3, Interesting)
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.
Re:Gotta ask (Score:2, Interesting)
i haven't looked too much into DX9, but historically (right up through DX8), the interfaces DirectX provides are convoluted and difficult to use. in fact, initialization for DirectX (in DX8) took over 800 lines of C++, IIRC.
by contrast, OpenGL only requires about 100 lines of C.
and that's just for initialization. DirectX has other issues, such as its coordinate system (opposite that of OpenGL) and its matrix system (transposed from that of OpenGL), which make it very difficult to write code that uses bo
Re:Gotta ask (Score:3, Interesting)
Handedness of the coordinate system is also relatively arbitrary. The DX LHS is a good match for computer-generated data, particularly for mapping 2D coordinates into a 3D space. One is not "more correct" than the other, and conversion is trivial.
MFC sucks, but as of DX9 the relationship is trivial at best if you're programmin
Re:Gotta ask (Score:1)
Re:Gotta ask (Score:5, Insightful)
Not well supported. Doesn't work on MacOS, PS2, or GameCube. That's millions more machines. Because it's proprietary, it's unlikely to ever be supported on those playforms.
Apples to oranges. That's like saying, "OpenOffice not only handles word processing, but spreadsheets and presentation graphics as well. It's just not something you get from Microsoft Word."
DirectX is just a big label covering a number of different technologies (DirectSound, DirectDraw, Direct3D, DirectInput, DirectPlay, and other). The ties between them are minimal. OpenGL's match is Direct3D. If you want a similar package that provides a wide variety of support, look to toolkits like the SDL.
DirectX on the whole has largely stabilized. This is actually good, it means that developers can spend less time worrying about the API of the week a focus on writing games. The only part that is in heavy flux is Direct3D. Direct3D's more open counterpart, OpenGL, is also in heavy flux and manages to keep apace of Direct3D's new functionality.
Ultimately, the big problem is that DirectX is proprietary. If you want move to another system (like the growing Mac market) your use of DirectX becomes a burden to rewrite.
Re:Gotta ask (Score:2)
What API does work with PS2 and GameCube?
One great thing about SDL (Score:4, Interesting)
[your.sig] Zeuxis... (Score:1)
> Criticism comes easier than craftsmanship. -Zeuxis, 400 B.C
Heh, I wonder who he was criticizing when he said that. I can almost see him turning up his chin as he said it...
pygame (Score:4, Informative)
Seriously. I made a graphical mp3 juke-box player (like for drunk people at parties), and my code to keep music playing looked something like:
def keep_music_playing():
if !pygame.sound.is_busy():
song = get_song()
pygame.sound.play( song )
else:
pass
def main():
thread.start( keep_music_playing, 5000 );
--Robert
Re:pygame (Score:4, Informative)
Re:pygame (Score:1)
Re:pygame (Score:1)
Re:pygame (Score:4, Informative)
Re:pygame (Score:1)
Brian
http://www.thebrokenjoystick.com
Q by Qube Software (Score:4, Interesting)
Q 3D Engine [qubesoft.com]
(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.
TinyPTC (Score:1)
It offers three basic functions, open() close() and update(), which is all you acually need, and it's very simple.
Homepage [gaffer.org].
Re:TinyPTC (Score:1)
I'm the dumbfuck here? (which by the way is not one word).
You have your pixel drawing function, which is the only requirement to do 3d on a 2d-screen.
All it requires from YOU is some maths.
Is There Life Beyond DirectX? (Score:1)
Great OpenGL site (Score:3)