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

13 of 79 comments (clear)

  1. just Mod? by Lord+Bitman · · Score: 3, Interesting

    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
  2. Realistically? by Time+Doctor · · Score: 3, Interesting

    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!
  3. java by BortQ · · Score: 3, Interesting
    Depending on the game you plan on making you should consider java as an option. It's an easy path to cross-platformness, and has some good deployment options (i.e. web start).

    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
  4. Gotta ask by NanoGator · · Score: 2, Interesting

    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."
    1. Re:Gotta ask by Joe+Tie. · · Score: 2, Interesting

      As someone who used to do a lot of development with DirectX, I can attest that this can be a pretty bad thing. Not so much that it doesn't work on Linux, but that it only runs on Windows. This isn't a big deal if you don't think you're ever going to use anything else. But if something better suited to ones needs does pop up one day, there's going to be a lot of porting from DirectX to do. I switched to Linux a couple years back, and I've still got code I need to port. But using SDL and OpenGL now, if I should ever want to change to another operating system, it'll be trivial to take my code with me.

      --
      Everything will be taken away from you.
    2. Re:Gotta ask by the_greywolf · · 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 both APIs. and added to that, DirectX is a class system inherited from the MFC. i don't know about you, but IMHO, MFC is a pretty badly-botched job.

      honestly, i don't see why anyone writes even one line of DirectX code. it's too messy.

      --
      grey wolf
      LET FORTRAN DIE!
    3. Re:Gotta ask by trouser · · Score: 2, Interesting

      I didn't ask if DirectX was free, which it may or may not be. I asked if it was Free, which it isn't. It is closed, proprietary, you may not see the code, you may not change the code, you may not port the code. It only runs on Windows which, as I noted, is an OS I don't (won't) run.

      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 you are an idiot.

      --
      Now wash your hands.
    4. Re:Gotta ask by zero_offset · · Score: 2, Interesting
      I get so tired of the "lines of code to initialize" argument. I have an init routine in a DX9 D3D C# program that only requires about 20 lines of code. Big deal. It proves nothing.

      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 programming in C++ and if you're fortunate enough to be able to target the .NET managed infrastructure, the MFC relationship doesn't exist at all.

      A better argument would be the recent MS announcement that they haven't slated any new releases for the foreseeable future. DX9 is the end of the line for the time being.

      --

      Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005

    5. Re:Gotta ask by bluGill · · Score: 3, 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.

  5. One great thing about SDL by Joe+Tie. · · Score: 3, Interesting

    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.
  6. Compared with SDL+OpenGL... by leonbrooks · · Score: 2, Interesting

    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
  7. Re:pygame by fredrikj · · Score: 2, Interesting

    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.

  8. Q by Qube Software by CrosbieFitch · · Score: 4, Interesting

    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. :)