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?"
check out http://crystal.sf.net its good library to start you on the road of game programming in 3D
AZTEK
Allegro Homepage
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
Here is the mother lode: http://www.flipcode.net/
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.
GG
As the sourceforge site says:
CG is C for Graphics. You can use it write really awesome graphics directly to DirectX or OpenGL. http://www.nvidia.com/object/cg.html
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.
Check out Programming Linux Games, by a Loki developer by the name of John Hall.
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).
No comment.
you might try getting strated with pygame, a wrapper to sdl for python.
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.
Torque appears to satisfy most of what you are looking for. It's the Tribes 2 engine available to indie developers for $100/programmer.
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!
Gamedev.net has a TON of resources relating to game development, including a giant reference section which points to a lot of information about anything game-related.
Related to your question, a good compromise between low-level OpenGL and a full game engine (or even a commercial one here) would be GLUT. Instead of giving a piss-poor explanation of what the GLUT library is all about, I'll just point you to their FAQ. For sound there is OpenAL or the ubiquitous FMOD.
Depending on what you're looking for, a library probably is out there just waiting for you to find it. Instead of asking very general questions like this, I highly recommend you check out a little search engine called Google to find libraries or engines that suit your specific needs. Cheers!
I'm sure other people have pointed it out, but pygame is an excellent choice to get started. Python is fun and easy (*criminally* fun and easy), and a lot of the wrapper classes will use similar names as the real-deal c/c++ libraries.
...*so* much is taken care of for you already. Don't trust my code, as I haven't untarred my 10gb home directory backup (and I'm not going to) in order to tell you how easy PyGame makes things. :^)
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
I've used Java3D extensively for some CAD prototypes. It is very easy to use once you get a feel for it; the latest version lets you start off with utility methods for creating a simple screengraph (with one method call). From there you just create Shapes, define their geometry, add them to the scenegraph, finally add the scenegraph to a Canvas3D, open a Frame (aka Window) with the Canvas3D in it, and you're done.
There are some tutorials on using the built-in collision detection routines (these are behaviours, so need some tweaking for use in games, as they may only fire after you've passed through a wall). You can configure the scene for head-mounted displays, etc.
Mostly it's just easy to use and you'll find a lot of material in discussion forums. It's also easy to install and get started.
On the negative side, I've heard a rumor that Sun is no longer developing Java3D, meaning that it is as it is from now on. Can anyone confirm this bit of rather shocking news?
There are two versions of Java3D: a DirectX and an OpenGL version. I use the OpenGL version and it works well; some way the DirectX version is faster but is missing some features.
www.java3d.org is an enthusiast website with a number of tutorials that would be useful to you.