Slashdot Mirror


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?"

11 of 79 comments (clear)

  1. CrystalSpace by Aztek · · Score: 5, Informative

    check out http://crystal.sf.net its good library to start you on the road of game programming in 3D

    --
    AZTEK
  2. Allegro by MBCook · · Score: 4, Informative
    I used to program for Allegro, which was nice. I haven't touched it in quite a while (got busy with other stuff), but it does support quite a bit.

    Allegro Homepage

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    1. Re:Allegro by i0wnzj005uck4 · · Score: 4, Informative

      Actually, it's been moved here. 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.

      --
      - Cloud
    2. Re:Allegro by cjellibebi · · Score: 3, Informative

      Actually, Allegro's official homepage is http://alleg.sourceforge.net/ Allegro started off on DOS, but there are now fully fledged ports to Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. One of the differences between Allegro and SDL is that Allegro is a higher level library than SDL, meaning that it takes less code to accomplish certain tasks at the expense of some (but not much) control. Also, there's more to Allegro than SDL (such as data-file managment and a GUI, although the Allegro GUI looks awful, but you can substitute your own GUI). In fact, there's even been talk of porting Allegro over to SDL so that it runs on top of SDL. Allegro is truly excellent for 2D games. It's built in 3D is somewhat lacking, but there's a tweaked version of OpenGL called AllegroGL available that lets you use some OpenGL functionality within Allegro. An example of a game written with Allegro is this re-make of "Head over Heels". It's an Isometric 3D game featuring shadow casting, real-time lighting and transparency. Sound, graphics and coding are done by professionals in the gaming industry. Allegro is a Sourceforge project and the development is very active. Some of the core developpers have jobs in the industry and work on Allegro in their spare time. In fact, an Allegro community has sprung up and can be found on the following website: http://www.allegro.cc. As well as many lively discussions, there's also a vast collection of projects written using Allegro and other members of the community get to rate the projects.

  3. The best game dev site by Henry+V+.009 · · Score: 4, Informative

    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.

  4. OpenGL Widgets by Tyreth · · Score: 4, Informative
    I highly recommend you check out the GiGi library if you are using OpenGL. It provides you with a set of widgets to use in your OpenGL project. It works very similar to Qt with a slots and signals system.

    GG

    As the sourceforge site says:

    GiGi is a small, efficient, and feature-rich C++ GUI for SDL and OpenGL. It is uses frame-based rendering and has fully customizable graphics, making it ideal for use in low- or high-frame rate applications and games.
  5. Programming Linux Games by Phleg · · Score: 4, Informative

    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.
  6. pygame by iradik · · Score: 3, Informative

    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.

    1. Re:pygame by Jellybob · · Score: 3, Informative

      I'll second the vote for pyGame, if only because writing games in Python makes it *fun* again, instead of the millions of lines of filler code doing it in something like C/C++

    2. Re:pygame by GiMP · · Score: 3, Informative

      I'd just like to note that pyGame is just an SDL binding for Python. It absolutely rocks, of course, but it doesn't give you anything more than plain SDL (except python)

  7. pygame by Ramses0 · · Score: 3, Informative

    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.

    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 ); ...*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. :^)

    --Robert