Slashdot Mirror


What is Happening with OpenGL?

Trapped In Windows Hell asks: "I was just at the local game store looking for a new game, and I noticed the absolute lack of ANYTHING other than DirectX games. Where has OpenGL gone, and what does this mean for games on GNU/Linux? If DirectX is so hard to program in, so clunky to use, and limits the game to being sold on only one OS, WHY do so many programmers use it? It seems logical (to me, at least) that programming as portably as possible, as simply as possible, and using standards where possible, leaves a lot more sales options open for the future... and DirectX seems to close all options *but one*." OpenGL use in Windows gaming has decreased dramatically in favor of the use of DirectX which is improving with each release. Will OpenGL continue to mature on the Windows platform (which arguably is the platform that drives most of the mainstream demand for graphics) or will it continue to stagnate as game and driver developers concentrate on the offerings from Microsoft?

25 of 576 comments (clear)

  1. Drivers and improving releases by mopic · · Score: 4, Interesting

    Kudos to Cliff for not just taking the anti-MS-at-all-costs FUD from the questioner as gospel. DirectX improves a LOT with each release. DX3, or even 5, was a nightmare, but DX8 is pretty easy to use.

    The more significant reason is driver quality (from the hardware company), and the 3D-graphic card industry is so cutt-throat that even a momentary falter into, admittedly, a non-mainstream-for-games OS like Linux can be fatal. Of course, they COULD release enough specs to allow OS drivers... but there are trade-secret issues there (with actual hardware, that don't apply, in my mind, to software).

    1. Re:Drivers and improving releases by masq · · Score: 2, Interesting
      Kudos to Cliff for not just taking the anti-MS-at-all-costs FUD from the questioner as gospel.

      It's not anti-MS FUD, the guy just wants to know why everybody limits the portability, and therefore possible marketshare, of their games by using platform-limiting products like DirectX. If you have a choice between something portable and forward-thinking, or something tied strongly to one system (even a very widely-used system), the intelligent thing would be to leave all possibilities open and not get tied down yourselves, since it doesn't affect your sales to the larger group and serves the smaller group better as well.

      And what's wrong with wanting games on Linux? Developers could be a lot more Linux-friendly simply by using tools which *include*, rather than *exclude*, this rapidly growing market. In my mind, game developers should start using cross-platform tools now, to position themselves for the day when Linux is a major player in the gaming market, even if it's only on the Sony Playstation with the Linux HD addon. Otherwise, we'll have coders who don't know anything but DirectX, and therefore prefer DirectX, because it's what they've been fed for so long, and thus can't get off Windows. Just like how my friend's mom only knows IE because it's what she's been fed by Microsoft, and fearfully refuses to even look at other browsers. If she'd learned Netscape first, she'd be more flexible and ready for change, as Netscape is more cross-platform, and she could take her familiarity with Netscape on Windows to her son's Linux box, for example.

  2. How well is it supported by the video cards? by stripes · · Score: 3, Interesting

    How well is OpenGL supported by the video card drivers? If it is slower or buggier then DirectX then people won't be so thrilled to use it. Remember non windows boxes are less then 10% of the market (Apple had 5% at the start of the year, I doubt Apple+Apple's growth+Linux+BSDs can top 10% -- if the PS2 or GameCube use OpenGL my 10% guess is wrong though).

    Plus DirectX handles input, and some non-graphical output. And I think sound. As far as I know OpenGL only does drawing.

    OpenGL is what Apple recommends using for 3D game on their platform (at least under OS X), but they have their own APIs for sound and input, and hopefully force feedback (and one would hope that to the extent that DirectX "got it right" Apple copied it). So OpenGL isn't dead, unfonturely it give MS an even bigger reason to fight it.

  3. DirectX doesn't suck anymore by gblues · · Score: 4, Interesting
    If DirectX is so hard to program in, so clunky to use, and limits the game to being sold on only one OS, WHY do so many programmers use it?
    Because DirectX is not so clunky to use anymore. Sure, it was a pain in the ass in its first few incarnations, and Direct3d was a joke in DirectX 2.0-5.0, but DirectX 8 is the ONLY API that will let programmers take full advantage of that GeForce 3 (or GeForce 1 or 2 for that matter) without any extensions needed. For OpenGL 1.2, if you wanted extra features beyond the spec, the driver writer has to implement it as an extension. This puts developers right back in 1993, having to write specific interfaces for each video/sound card.

    OpenGL 1.3 closes the gap quite a bit, but DirectX 8 still has a higher featureset and will gain more features sooner than OpenGL will.

    It seems logical (to me, at least) that programming as portably as possible, as simply as possible, and using standards where possible, leaves a lot more sales options open for the future... and DirectX seems to close all options *but one*.
    Game programmers don't give a rat's ass about portability. All it has to do is run on their target platform at an acceptable speed.
  4. OpenGL and DirectX in simulation apps by Anonymous Coward · · Score: 3, Interesting

    Just an observation here. I was in South Africa last year, working with some companies in the simulation/training market. Most of them are developing their apps for DirectX--OpenGL was not used much at all. When I asked why, I was told that the reason is that DirectX apps will run reliably on cheap Windows boxes, which is what they're using; OpenGL is seen as something running on high-end UNIX machines. I wonder how widespread this viewpoint is?

    1. Re:OpenGL and DirectX in simulation apps by t · · Score: 2, Interesting
      Is this the new math program that Pres Bush wants to push?

      Q. A simulation takes 24 hours to run. A new version of the simulation runs 2x faster. How long does it run?

      A. 1 hour!

  5. there is hope. by mickeyreznor · · Score: 4, Interesting

    Some companies are doing things for linux gamers. Bioware is releasing Neverwinter Nights, which could arguably be the best rpg ever released, is going to be released for linux as well as windows, and most likely it will use opengl(is there another graphics api that does 3d in linux?). Nvidia is giving full OpenGL support in their chipsets. And let's not forget the guys at ID love opengl as well. Even if their numbers are few, there are people who still want to keep OpenGL alive, and they are pretty big names is the gaming industry.

  6. Re:Because... by delta0 · · Score: 2, Interesting

    It's a conspiracy!!

    Companies like Sony and Microsoft and Nintendo all try to arrange contracts with the game companies that are exclusive... the contracts are worth more to the game companies if the developers then write for one platform exclusively. Some sort of Microsoft like corporate agreements, except there isn't a total monopoly. I don't think hardware manf. want an open framework, then they would loose that barganing ability.

    --
    --- Delta0.. makes no difference.
  7. The law of diminishing returns... by Aaaaaargh! · · Score: 2, Interesting
    is one good reason to code in DirectX. Let's say that your company develops games. Is it safe to say that 80-90% of the market for computer games is for Windows? --you betcha!

    What are the advantages to using OpenGL? If you're trying to capture about 10% of the remaining market for your product, and having to sacrifice the quality of the product to do it, you're going to lose a proportionally larger customer base from the Windows users than from the Unix/Linux/OSX users.

    Porting to other OSes is going to cost time and money. Sure, having OpenGL as your 3D API makes that aspect easy, but what about sound, input devices and such?

    I haven't seen a single game that uses only the standard OpenGL API that could match a DirectX game. Who drives the OpenGL spec? Who drives the DirectX spec?

    OpenGL is a nice, clean API (except for so-called "extensions" by video card manufacturers). DirectX is hairy to work with (at least when I last looked at it... DX5) but, it _works_ for games. If I'm writing a serious application (visual modeling, CAD/CAE, etc), then I'd choose OpenGL. If I'm writing the newest FPS, then I'm going with DirectX.

    --
    Give them an inch and they'll take a foot. Much more than that, you won't have a leg to stand on.
  8. Re:the reason is... by 0xdeadbeef · · Score: 2, Interesting


    You're a twit, and still a worm compared to the guys who signed this.

    My graphics background is stale and academic, so I'm not too familiar with the differences between the new cards or the current state of OpenGL vs. Direct3d. If you may humble yourself I have a question.

    Riddle me this: Why would anyone write a game dependant on the features of a particular card? Even if Direct3d can emulate them in software, woudln't that kill the performance of the game?

    I suspect the popularity of Direct3d has little to do with advanced features and everything to do with the fact that it is a de facto Microsoft standard. Why bother learning OpenGL when you're going to be stuck using Direct3d anyway. It will only raise your support costs to use a non-native API that is decidely hostile to Microsoft's agenda.

  9. Re:the reason is... by havachu · · Score: 3, Interesting

    Now try to make a 3d engine with the features of Alice or Anarchy Online in OpenGL with OpenGL.

    Erm, Alice uses the Quake 3 engine, which is certainly using OpenGL.

  10. Neverwinter Nights will use OpenGL by bnavarro · · Score: 4, Interesting

    Bioware's next game, Neverwinter Nights, will use OpenGL for cross platform compatability. (They will ship for Windoze, Mac, Linux, and BeOS, and all on the same CD to boot!) If the game is a success (and averyone expects it to be), then maybe this might turn a few heads in the gaming industry, and a more serious look at cross-platform gaming (and thus using OpenGL) might happen.....

  11. Re:XBox by Anonymous Coward · · Score: 1, Interesting

    wait a minute. I thought Nvidia has stated that there will be full OpenGL for the XBox?

  12. Don't underestimate power of gaming by Anonymous Coward · · Score: 1, Interesting


    If I could play my games in Linux I would delete windows from every P.C. in my house.

    Lately my drug of choice has been evercrack.

    It really confuses me why Sony Supports Microsoft by only releasing this game for windows.

    If Sony came out with a linux version it would give Four hundred THOUSAND game players a choice at an alternat O.S.

    PLEASE do a /. poll:
    Everyone who keeps a Windows machine around to play games raise your hand!

    WOW POT is now the default. Nice going /.

  13. 2 Reasons why DX is more popular than OpenGL by Anonymous Coward · · Score: 1, Interesting
    The majority of games/graphics developers are really bad coders!
    It's a sad fact, but it's true! All the good developers get jobs doing CG for films in hollywood, so
    we are left with the retards developing games :)

    How much innovation have you ever seen in a DX game? Practically none! Look at the few OGL developers tho.. ID and Bioware, two extremely innovative companies
    who are also supporting multiple platforms!

    Microsoft has continuosly been updating DX and it has come on in leaps and bounds
    during the last few years, while OGL has been left stagnating leading to incompatable extensions being added by card manufactures!

    If OGL is going to succeed/win/stay alive, it's going to have to compete!!! Adapt!!! Change!!! Something it has possibly forgotten how to do!

  14. Re:the reason is... by j7953 · · Score: 3, Interesting

    Ummm, almost everything in OpenGL is the same for different cards, and for different platforms. This is a huge advantage of OpenGL.

    However, when a graphic chip company creates a new functionality, it usually creates its own OpenGL extension. But this will evetually (if it succeeds, that is) become a standard extension (i.e. ARB extension) and later become part of the OpenGL standard. Many games don't even use some of these features, because the market share of the hardware supporting them isn't large enough yet. (Though gamers are fast to upgrade their hardware.)

    Also, don't forget that you have to write hardware-specific code even with DirectX, because you really don't want DirectX to use the software rendering for you. You'll have to check if a certain feature is hardware supported, and you usually need a slightly different algorithm in case it's not.

    I think the main reason for DirectX's success is that most games are Windows only anyway, and that DirectX is more than Direct3D. If you write a Windows game, you'll have to use DirectInput, DirectSound etc. anyway, because it's the only standard API offering input, sound etc. functionality for games on the Windows platform. But if you have to use DirectX anyway, why not use all of it?

    Yet another reason might be the object-orientation hype that's going on. Obejct orientation is marketed as an extra feature, not as a design choice. (Whether the design choice is justified I don't know, I'm not a 3D developer, though I've played around with OpenGL a bit.)

    --
    Sig (appended to the end of comments I post, 54 chars)
  15. Re:So, write for the Itanium. No M$ there. by Clowning · · Score: 2, Interesting

    Games were a major part of Microsoft's rise to power in the first place. While there may be little use for the Itanium in a desktop now, a new game title that took advantage of the power of that chip would shorten the time until the chip hits the desktop mainstream. And while M$ may be planning a realease of Whistler for the new chip, I'm sure DX is nowhere in sight for it. This is an opportunity to take back a major part of M$'s allure. Any takers?

  16. Re:the reason is... by Anonymous Coward · · Score: 1, Interesting

    sorry about the AC post, but I'm too pissed off to take the time to login.

    Ok, seriously, this is nonsense.

    DirectX may support all of the latest hardware features NOW, but DirectX also has capability bits. Pretty much nothing in DirectX can be relied upon. Potentially anything can be unsupported by a driver, and if it's unsupported, you are NOT getting emulation of it. Period. End of story.

    OpenGL has a guaranteed feature set (which can be extended per driver with extensions), and no matter what you do within the confines of standard OpenGL it is GUARANTEED to work. It may be slow if it's not in hardware, but it will work.

    Long story short, in my (professional game development) experience, the time you spend coding every single special case in a Direct3D (yes, even DX8, which is actually pretty cool to program for) engine is at least equal and often greater than the amount of time you spend coding only the SPECIAL workarounds your app needs due to extensions in OpenGL.

    Driver support may be there for DirectX, but actually supporting a wide range of hardware with it is hella hard...

  17. Re:the reason is... uh-uh by orange7 · · Score: 5, Interesting
    One word: Bollocks.

    I see this "If you code in DirectX, at least it will work on all cards" canard repeated so often, I can only marvel at Microsoft's propaganda machine and the essential stupidity of mankind. Why do you think so many new DirectX games fail to work under a number of cards until they release patches?

    As someone who's coded in both (and Direct X for a game that must support a wide range of cards), an OpenGL program is far more likely to work on a given range of cards if you haven't coded in explicit support for those cards. The equivalent DX program will require far more setup and test code.

    People don't seem to understand this about Direct X: It supplies a feature set, but different cards implement different parts of that feature set. You have to *explicitly test* almost any feature you can name to see if the card can support it, via "capability bits". Try getting hold of the DX caps viewer, and you'll be able to see just how many of them there are.

    In fact, it's worse than that. Because old drivers often lie about their caps. (Hello Virge.) Also, the caps, especially the texture caps, often don't map nicely to a card's capabilities. So the only real way of seeing whether a particular texture stage setup will fly is to try it, and see if the driver rejects it. Plus there are the weird-arse ones like the NVIDIA 8-stage setup where they jump through the hoops of the DX API to expose their register combiner functionality. (Functionality that is directly exposed in OpenGL, BTW.) Cards also have different capabilities depending on which release of direct X their drivers support. So the same card can report completely different caps depending on driver version. It's a support and programming nightmare.

    The only real way to deal with all this is know what each card is capable of, read the manufacturer's release materials, and spend time on the DX mailing list. You spend a lot of time programming a particular effect in a number of different ways, and hope like hell all your combinations cover all the cards out there. You cannot guarantee a particular card will work with your app until you test it.

    You may assume that DX provides fallback paths for some features, but you'd be wrong. Or where it does, it does it in a braindead way; because your card lacks fabby next-generation feature X, and you requested it, wham, it emulates the *entire* pipe in software instead of just feature X. You lose T&L, and your framerate slows to a crawl. Then you either code your own pipe to do feature X on the CPU and then hand off properly to the card, or you just go without. Either way involves a lot of testing code. OpenGL is much, much better about falling back gracefully.

    I'm also not clear on why people think DirectX has a technical edge. Microsoft do a fine job of going to the current hot hardware vendor, incorporating their upcoming features in their API, and then making a lot of noise about it. But you could access vertex shaders on the GeForce3 from OpenGL on the Mac before you could ever use them from DX. The OpenGL extension mechanism means that when a part comes out, you almost immediately have access to its new features, rather than having to wait for the next DX rollout. (Remember, NVIDIA had to install a "back door" to provide access to the full register combiner functionality of geforce1-2 cards from DX. Many people don't even know it exists.) Go to NVIDIA's web site and ponder how many of their tech demos these days are in OpenGL.

    The only thing DirectX has going for it, its so-called unified API, makes no difference at all in the end. You end up doing exactly what you'd do in OpenGL -- testing for certain cards, and using their exposed abilities if they exist. Writing a lot of fallback code. In the end, you're better off going with the card manufacturer's APIs, IMHO.

    Think of it this way: rather than exposing a unified API, DX exposes *every possible API*. So many wonderful standards to choose from! If you're a unix guy: DX8 is the X11 of the 3D graphics API world.

    A.

    P.S. Sheesh, I haven't even touched on the headache that is resource management in DX.

    P.P.S As someone who has to deal with all this shit (card compatibility), I'm a mite touchy on the subject =)

  18. Nice FUD of your own by Anonymous Coward · · Score: 2, Interesting

    1. WHQL has compliance tests for D3D implementations too. And OGL compliance tests only cover what's in the standard, which doesn't help much if you are relying a lot on extensions that haven't made it into the standard yet.

    3. Querying D3D capabilities bits is fundamentally no different than querying for support of GL extensions.

    4. Card manufacturers have offered APIs for using their own special (non-D3D supported) features in D3D, just as they have written their own GL extensions. And basically everything you wrote about vendors extending GL happens in the D3D world too. The only real difference is that MS tries to get the vendors to standardize as much as possible by keeping the extensions unofficial and updating the spec frequently. The OGL ARB moves very slowly, so competing extensions for doing the same thing hang around too long before being reconciled. Developers generally don't consider this to be a good thing.

    There's a lot of history in the D3D vs. OGL war. D3D didn't really need to exist in the first place, it was only created to lock game developers into the Windows platform and hurt Mac gaming. And in the earlier versions, it was technically inferior to GL as well. I agree that life would be better if D3D was never created.

    But it *was* created, it *has* improved greatly, and right now it's a pretty damn fine API.

  19. direct x will die on windows by Anonymous Coward · · Score: 1, Interesting
    wanna know why? because in order for ms to sell the xbox they have to kill desktop windows as a gaming platform.
    • ms releases xbox to lackluster sales, short life is predicted.

    • direct x updates start to lag on windows, and show stopping bugs seem to frequently work there way in, video card makers have a harder time writing drivers due to declining documentation. ms' self supported drivers for the xbox of course do not suffer.

    • xbox becomes the platform of choice for pc games due to xbox only extensions to direct x, and better compatibility. developers who want to have there games run under windows are forced to port the direct x code to opengl.
  20. Re:Isn't it obvious? by PurpleBob · · Score: 3, Interesting

    I think these "hardcore gamers" have been lying to you. Saying they use Linux makes them look more l33t. It's better for serving, definitely - but in terms of actually playing games, there's no advantage to using Linux and several disadvantages.

    There are lots of things that Linux absolutely blows Windows away at. Gaming isn't one of them.

    --
    Win dain a lotica, en vai tu ri silota
  21. Business model questions trump the API question by Allen+Akin · · Score: 2, Interesting
    Rather than ask "what's happening with OpenGL," I'd ask "what's happening with the business of 3D graphics platforms?"

    The big open question at the moment seems to be whether the general-purpose PC is dead as a gaming platform. The royalty-based revenue stream from consoles is more attractive to platform developers, the configuration consistency of consoles is more attractive to software developers and support organizations and publishers, the hardware and software support for intellectual property protection is better on consoles, and the higher volume of game sales on consoles is more attractive to nearly everyone in the supply chain. Then there are the "we want to own everything from the character concepts to the titles to the delivery platform" business strategies from folks like Sony.

    It's possible that the PC will remain a delivery platform for traditional scientific/technical/business applications, but not for entertainment applications. In that case OpenGL would continue to play a role for the "professional" apps even though it might not play a role for the "consumer" apps (except possibly on MacOS X and Linux).

    I'm also curious to see how D3D evolves if XBox succeeds. Does the PC become the leading-edge development platform, with console designs occasionally spinning off from the current 3D environment on the PC? Or does D3D on the PC stabilize, getting major revisions only when new console hardware justifies a fresh release?

    There are many other things to consider. The next couple of years should be interesting.

  22. Anyone remember Fahrenheit??? by Chatz · · Score: 2, Interesting

    Anyone remember the day SGI sold their soul to M$ if an attempt to ensure the survival of OpenGL with Fahrenheit.

    --
    There is folly and foolishness on the one side, and daring and calculation on the other. - Admiral Pellew, Hornblower
  23. Re:I don't think it's really been established... by RatBastard · · Score: 2, Interesting

    John Carmack is simply telling the truth. Look at the gaming market. How many Windows games do you see? How many Mac games? How many Linux games?

    I run a website about The Sims ( http://www.thewageofsim.com/ ) and I was one of the first (if not the first) established The Sims websites to embrace the Mac community and convert all of my content to Mac compatible when the Mac version of The Sims was released.

    My traffic is 95% Windows users. 95%.

    --
    Boobies never hurt anyone. - Sherry Glaser.