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?

24 of 576 comments (clear)

  1. the reason is... by emn-slashdot · · Score: 2, Insightful

    Everything in OpenGL is different for different cards. If you code in DirectX, at least it will work on all cards, even if only on Windows (so far). If something doesn't work right with a card in directx, it's the card driver's problem. It's universal in the Windows world.

    OpenGL is freaking amazing. I love it. Unfortunately, card makers want to write OpenGL extentions specifically for thier cards so you have to have aset of code to do the same thing for each card.

    When will people come together to agree on non-MS-specific standards? Probably never. Maybe we should support

    --
    -EvilMonkeyNinja
    Mild Mannered Host by Day
    Wild Hammered Programmer by Night
    1. Re:the reason is... by swcrissman · · Score: 2, Insightful

      This is patently wrong. If it weren't, how would you explain the existance of Alice for the Mac which obviously isnt using direct x, since it doesnt exist on the platform.

      To use your own words, nice with the almost-come-backs. :/

      -swc

  2. Isn't it obvious? by TummyX · · Score: 5, Insightful


    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?


    By the sheer amount of DX games out there, isn't it obvious that the game industry doesn't find DX clunky and hard to program in. And remember DX offers MORE than just graphics. It also does sound, input and networking.

    As we've seen this year, game companies don't care whether DX limits them to windows or not because:

    1- Almost everyone uses windows to play games on.
    2- If they ever did want it ported to other platforms, there are companies (you know who they are) that will do the porting for you (yes, that includes porting DX games).

    1. Re:Isn't it obvious? by evvk · · Score: 2, Insightful

      > By the sheer amount of DX games out there, isn't it obvious that the game industry doesn't find DX clunky and hard to program in.

      But those who make the decisions don't do the programming, in general?

    2. Re:Isn't it obvious? by b0r1s · · Score: 2, Insightful
      Remember two things:

      This is slashdot, nothing's ever obvious (look back at some of the past "ask slashdot"'s).

      This is slashdot, everything is an anti-linux conspiracy.

      Best tool for the best job, that's directX on windows for gaming. Period. Maybe someday that will change, but not any time soon.

      --
      Mooniacs for iOS and Android
  3. Because of two things... by G-funk · · Score: 3, Insightful

    1. DirectX is changing. It's updating, moving with the times, and incorporating new developments in graphics card technology in a standard way, there's features some cards don't support, but they're parts of directx, and they'll be on future hardware. On OpenGL, if you use the nvidia extensions, they're not going to be there on ati cards, even a few generations down the track when the same features are standard across platforms.

    2. Since dx5, it's been a good environment. It took MS a while to get it right, but they're constantly updating it, which yes, means there's a continual learning curve, but that's what makes game programming the fun it is! OpenGL is controlled by comp scientists, DX by money, which means DX will always be quicker off the line with the features developers and customers want.

    I know that MS makes it, and as a whole, MS is bad, but the company's tactics don't make the technology suck, and joe sixpack who wants to just go play unreal doesn't care if MS bundles ie to make his life easier or to kill netscape, cause it makes his life easier. There's one constant in life these days- people as a group, are cronically and terminally lazy. Most people view money less important than effort, and even their time less important than effort... Somebody would rather take 2 hours to do a 15 minute job if it makes it seem like less work to them.

    </rant>

    --
    Send lawyers, guns, and money!
  4. Show 'em the money by TVmisGuided · · Score: 2, Insightful

    You're not going to find many altruistic coders or designers working for companies that put boxed games on the shelves at Egghead or Best Buy (sidenote, that last is most definitely an oxymoron. But I digress.)...game programmers who work for big software houses are in it for the bucks, and the only OS/platform that they see as paying the bills is WinXX. So they write for WinXX, and right now, that means primarily using DX APIs. If there were a bigger demand (read: potential revenue stream) for other platforms and OSs, OpenGL would probably make more sense to them...and I'm willing to bet my lunch that the games that are still OpenGL-capable have also been ported to the Mac platform (not that I've looked, since I don't own a Mac, ergo don't need to examine the offerings for it).

    In short...DX makes more economic sense, simplicity of coding notwithstanding.

    Just my two cents' worth...save up the change for a root beer float or something.

    --
    All the world's an analog stage, and digital circuits play only bit parts.
  5. XBox by SubtleNuance · · Score: 4, Insightful

    With XBox drawing near, and XBox's adoption of Direct** APIs - we can seriously expect to see this trend accelerate.

    MS is providing a bridge, via XBox for PC games programmers to get their apps on a console. If the rumours that consoles are the sole future of gaming are correct - then we can expect to see our PC Game developers very happy to have this new area to sell to.

    But, considering this, what does this say *REALLY* about M$ and its XBox? Arent they in fact cutting off PeeCee sellers from a market - the would-be-desktop-computer gamers market? Isnt M$ REALLY competing with its own customers in this case? With M$ focusing on realeasing a box themseleves - wont that mean decreased sales for their own customers?

    I see M$ XBox as being its most obviously brazen move yet. I understand M$ has been into hardware for sometime, but brand-ed mice and keyboards arent at this level.

    What does this have to with directX? It means that once again, M$ is using their weight in one market (pc gaming os) to move into another (console manufacture). I really wonder what Compaq, IBM and Micron think about this, wont this mean a drop in their sales of Electronics-boutique level machines?

    Imagine for a moment, with Sony talking about making PS2 a Linux Computer (with HD, Keyboard, Mouse etc) wont this invite M$ to do the same? Will the XBox become a "Microsoft Desktop Computer"?

    With PC developers looking at the XBox as an opportunity to expand their marketplace - you can bet they are not going to be too eager to use OpenGL and cut themselves off from the XBox-platform.

  6. Another wrapping by halftrack · · Score: 5, Insightful

    OpenGL only offers graphics, dx offers: graphics, joystick, sound, forcefeedback, mousecapturing.

    There are libraries giving you all these features using GL graphics, but they are not made full time and/or they are made by hobby programmers. The keyword here is time. MS have employed programmers to create, maintain DX. This means better time, and resources making a better product overall. Not just the graphics part. The graphics part of DX is not better than OpenGL, it's just everything around it.

    --
    Look a monkey!
  7. Re:OpenGL and DirectX in simulation apps by emn-slashdot · · Score: 3, Insightful

    fairly widespread, but people are starting to see the light.

    a co-worker of mine has a buddy that does simulations of large ceramic ovens. They used OpenGL for visualization on SGI machines for over 15 years. When they realised they needed to upgrade thier system they were faced with 2 choises: a linux cluster with OpenGL (MesaGL) or a Windows cluster with DirectX. After a demo on of each on identical hardware, they got 2x the performance on the Linux cluster. They went from starting a simulation in the morning and getting the results the next morning to starting one before lunch and having it ready before they got back :)

    If OpenGL will do what you expect it to be needed to do, use it on Linux. It's awsome. It will rock your world (especially on 2.4 linux SMP machines)

    --
    -EvilMonkeyNinja
    Mild Mannered Host by Day
    Wild Hammered Programmer by Night
  8. OpenGL has one real problem - lack of games. by Flabdabb+Hubbard · · Score: 3, Insightful
    While OpenGL is very cool for things like advanced 3d design, and modelling and the like, today's fast paced games do not require its generality, or its ivory-tower purism.

    The modern games developer will use DirectX over OpenGL every time. Incidentally, the incredibly poor support for DirectX in Linux is one of the reasons it is failing in the games market.

  9. Producing Games by fizban · · Score: 2, Insightful
    If you're a game developer and you're trying to make money, the only platform you're going to write games for is Windows (or a gaming device, like the Playstation, et al.), because that's where the masses are (Food on the table is a very good thing). And if you want to use the most features of the graphics cards on Windows in order to beat your competition, you're going to use DirectX, because OpenGL just doesn't cut it for the latest hardware acceleration features.


    The question should not be "why aren't game developers using it?" but "why aren't the video card makers supporting it?"


    And that, dear friends, is where market power comes into play, and the one with the power in this market is Microsoft.

    --

    +1 Insightful, -1 Troll. What can I say, I'm an Insightful Troll.

  10. Um....yeah, volum also brought us x86 by Mifflesticks · · Score: 3, Insightful

    You say that sheer volume proves it's easy. ASM on x86 isn't exactly the nicest thing. Or, do you _like_ being limited to 8 general purpose registers, and a crappy FPU stack?

    If we go by sheer volume, x86 must be a freaking dream to write software for, and it must be some heavenly architecture!

  11. Who wants to game on anything other than windows?? by lukegalea1234 · · Score: 3, Insightful

    I think some people are missing the point.
    The big argument against DX is it only runs on windows. The same things that make windows awful for most things makes it superior for gaming. Windows has such an incredible boost for foreground applications (especially ME/98) that it makes it much easier for gaming..
    How many times have you had an mp3 skip because something stupid is happening in the background on linux?? It's great that you can game or do multimedia on linux, but the fact is that what is the point of ramming the square peg into the round hole??

  12. Comparing Direct3D 8 to OpenGL by Forkenhoppen · · Score: 5, Insightful

    Btw, you're comparing apples to oranges here; DirectX is a gaming architecture, while OpenGL a graphics one. You should compare Direct3D with OpenGL. :-)

    Simple answer:

    Direct3D is now simpler to use, better supported by video card manufacturers, and more OO than OpenGL.

    Long answer:

    Up until recently, OpenGL was considered more advanced because it was more high-level. You didn't have to write as much OpenGL code to get stuff to work as you did in Direct3D. (Immediate mode, we're talking about here; only a complete moron would write Direct3D retained mode code, what with the overhead it causes.)

    However, with the release of DirectX 8.0, this has changed. Direct3D is now a lot cleaner and easier to use. No more does every card have all these annoying mode bits for every single little thing; the market has consolidated in such a way that the major players all support simultaneous use of the most important stuff. (In the olden days, you had to check mode bits to see if you could use alpha blending and bilinear filtering at the same time, for example. Some cards did it, some didn't. You had to have a work-around in case each of these things failed. This is no longer a problem.)

    Additionally, Direct3D 8.0 takes OpenGL's way of looking at things, adopts, extends and surpasses. Ever heard of vertex shaders? Pixel shaders? In OpenGL, these are just extensions that are implemented differently by the video card manufacturers. (If they're available at all..) In Direct3D, they're an integral part of the API. And they'll become even more important in years to come. Here's why:

    Anyone remember back before video cards could do stuff on their own, when you did everything on the main processor and pumped it to the video card raw? Well, we're in those days right now with video card design. These processors have very specific things they do; if you want to make a dynamic texture, you'll have to ship it back to the main CPU to process it there. Weighted vertices that use in excess of a certain number of matrices (I'm talking about skinned animation systems here) have to be done on the CPU. The message here is that what the video card can do is very limited, and is "hard coded" in the hardware. There isn't much flexibility here.

    Enter "shaders." These are little applications (more like scripts, though, since there are no branches in execution) that you can run inside the video card. Instead of going through all the vertices on the CPU and transforming 'em or whatever on the CPU, you can write a little program called a vertex shader which'll do it for you on the video card. And pixel shaders will do the same for your textures; now you can have zoom effects, warp effects.. heck, you could probably implement Photoshop as a set of pixel shaders. (In fact, I don't doubt they're looking into it as I type.)

    You see, the graphics API's no longer just a one-processor API with DirectX 8; Direct3D has become an operating system unto itself! Vertex shaders and pixel shaders are like specialized mini-drivers that you load to access the additional functionality. It's really quite neat! I can't wait to see what the demo scene does with these things; the possibilities are endless! :-)

    As for the OO thing, have you ever considered just how many games are OO? Considering OpenGL's very C-ish nature, C++ programmers are easily going to gravitate towards Direct3D, simply because of it's C++ OO design. (And lets not even get started on what happens whenever you throw more than one monitor into the mix. I mean, with DirectX, all you do is use another pointer; what do you do in OpenGL..?) Add in the fact that you'll need DirectX for input and audio either way, and..

    Wrapping things up, until OpenGL catches up to Direct3D in terms of it's integration of vertex and pixel shaders directly into the API, (programmers are lazy; they don't want to have to go searching for a frickin' function pointer to access an extension..) it'll be playing second fiddle to Direct3D in the minds of developers. Especially with the X-Box coming out, and everybody and their cow wanting to port to it.

    Anyways, carry on..

    James

    1. Re:Comparing Direct3D 8 to OpenGL by Canis · · Score: 4, Insightful
      Somebody mod Forkenhoppen's post up some more, it's the truth.

      I'm a professional PC videogame developer. I used to use OpenGL, about 4 or 5 years ago: At that point, Direct3D was the clunky, awkward, slow, difficult thing that people have labelled it as elsewhere in this thread, and OpenGL was a lovely, simple, pure thing. And so I used OpenGL instead of Direct3D, and lots of other people did too. The most famous examples in gaming are QuakeGL/Quake2/Quake3 (Quake1 at retail was software-only).

      But OpenGL stood still, and Direct3D moved on. Sure, it took then about 4 or 5 revisions (I think they were on D3D version 3 at the time, now they're on version 8.1, but there was no version 4*), screwed up quite a few things along the way, but they got there in the end. Over the years we've either used OpenGL or suffered the vagaries of Microsoft's repeatedly-changing API. But it's settled down now, matured, and become not only usable, but actually much much better than OpenGL. Sorry, but it's true.

      Part of this reason might be "The Farenheit Misdirection" -- basically Microsoft said, "Yes, let's work together on a new API, neither DirectX nor OpenGL, called Farenheit, with the best parts of both, and it'll be great!". And SGI, it seemed, believed them, having not learnt the lesson from IBM and OS/2.

      Course, you don't hear much about it now. :P

      Another reason is the OpenGL review board, which (as I understand it from the outside only, perhaps someone else could fill in more detail and/or correct me) is not making much progress on new spec due to infighting between rival board manufacturers who obviously want the spec to match up closely with their hardware, and for preference, match up as badly as possible with their rival's hardware.

      A few people have mentioned the X-Box thing. Certainly, I doubt anyone will use OpenGL on the X-Box, and any game with both X-Box and PC SKUs will use DirectX too, but I think that's a bridge which is only now being crossed; whereas OpenGL has slacked off for about 2 or 3 years now.

      * which is a different Ask Slashdot: why is there no version 4 of so many things? No DX4, No Palm 4, no Voodoo 4, no Borland C++ Builder 4 ... all skipped straight to 5... go figure

  13. Gamers perspective by notext · · Score: 2, Insightful

    Since I do not program games but do play them I will throw in my 2 cents. Other people may not agree, good for them. This is only for FPS games. I don't play RPG or RTS so I can't say how it is in those genre's.

    It's hard to explain these things without being vague so bear with me.
    First, the mouse movement in every d3d game I have played has sucked, at least for me. The only way I can explain it is that it feels sloppy.

    Second, d3d games always look glossy or shiny. This is another point that is hard to explain. I really with I could explain this in better detail as this is the problem I have always hated this. It looks like everything has a nice shiny clear coat finish, if thats any better explanation.

    Maybe opengl is going away in games and that makes me sad. If my only choice is the sloppy mouse and shiny graphics in d3d then I would probably only play ones that are very heavy on storyline, which narrows it down to 1 or 2. I wouldn't play any mp deathmatch, ctf, etc.

  14. For OpenGL to succeed... by FrostyWheaton · · Score: 4, Insightful

    It must do one, and only one thing:

    Work better than Direct3D

    It is that simple. As many people have pointed out DirectX runs on 80%-90% of all home pc, so switching to Open GL to capture more marketshare is only feasible if the cost of development are the same. The problem is: they are not.

    Microsoft has poured unknown millions into the development of DirectX and has produced a universal set of API's that work on any video hardware. Until OpenGL or MesaGL etc. can function out of the box with the same (relative) ease development houses will stick with DirectX.

    In simple economic terms, DirectX and OpenGL are not close substitutes. One is well known entrenched and universally supported, the competition resides more on the margins and has universal compatability problems. And these compatability/extension issues drive up the price of developing with OpenGL so it becomes an even less attractive substitute.

    The OpenGL/Direct3D battle is no different from the Linux/Windows or IIS/Apache or any other open source/proprietary battle. It is not won with principle, or good intentions, but with results. If people want to see OpenGL succeed make it better, and cheaper to develop with than the proprietary offering.

    --
    Comments should be like skirts. Short enough to keep your attention, but long enough to cover the subject
  15. We don't need no stinking games... by Mongoose · · Score: 2, Insightful

    OpenGL is used for scientific modeling, film fx, and tons of other things. DX ( D3D ) is only good for one thing and that's *PC games. PC games are nothing, since they can't even compete with consoles. DX on Xbox is also a moot point.

    The point then? The point is GL will always be what modelers and the R&D depts will use, because it's a stable and modular API.

    As for GL games? If you have a game based on GL, it will support more card features months before DX. However you can't use a cookie cutter engine like lilthtech and the like. There sure are more DX games, but they're mostly swill to be honest.

    Would you rather have a dozen lithtech based games or something based on UT, Q3A, or etc?
    -------

    Please remember when you post the PC gaming market has nothing to do with GL's "life and death".

    May the mongoose save your soul!

  16. No OpenGL games?!? by Glock27 · · Score: 2, Insightful
    Id is still using OpenGL for Doom3, and there are scads of games using the Quake* engines. Soldier of Fortune is a particularly excellent example. ;-)


    Its true that XBox is giving DirectX a second platform, but OpenGL is doing well, and the preferred 3D API everywhere but WinWhatever (the Mac being a notable example).


    There is intensive ongoing work on both APIs, and don't think for a minute that Direct3D would be what it is today without OpenGL driving it.


    By the way, Direct3D is precisely nowhere in the higher end 3D marketplace...games are by no means the only 3D application. I doubt they're even the major money maker - I suspect CAD/CAM has that honor.


    We'll see how things look going forward...I expect OpenGL to be around for a good, long time.


    Just take a look at the Official OpenGL Website to get a feel for how lively the OpenGL world is...the laptop version of the NVIDIA Quadro2 professional GPU looks pretty sweet!


    186,282 mi/s...not just a good idea, its the law.

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  17. Re:Not that klunky any more with DX8 by Anonymous Coward · · Score: 2, Insightful

    This is exactly what John Carmack and Chris Hecker predicted would happen way back when DirectX 3 (the first with Direct3D) came out.

    They predicted Microsoft would pay developers to use the crap they put out, and slowly improve it by copying OpenGL. This finally leaves them with a functionaly clone of OpenGL with a propritary interface solely under their control.

    And surprise surprise, that is exactly what happened, and us game developers had to suffer through DirectX 3, 5, and 6 before it really stopped sucking, when we could have been using the end product immediately back in 1998!

  18. Real problem: OpenGL ARB doesn't care about games. by kbonin · · Score: 5, Insightful

    I write 3d game engines for a living, and have been fighting this issue for a decent part of my career.

    The OpenGL ARB really doesn't give a crap about games. Sure, there are a number of vocal game advocates, but the majority of the membership is far more interested in maintaining backwards compatability to older SGI and Evans and Sutherland hardware than keeping up with accelerator progress.

    If the ARB did care about games, there would be a concerted effort to standardize on vertex and pixel shader instructions between card vendors, and a move to get these into the standard AS FAST AS POSSIBLE, and a push to actively participate in ongoing features. Instead, it took them years to drag in a few interesting extensions, and Microsoft has assumed the unifying role in the gaping vacuum.

    As a game developer who has spent too many man-years fighting abysmal M$ API bugs and design limitations since Win 3.0, even I will admit that Direct3D has completely exceeded OpenGL as a 3d game development platform. Why should I invest six+ months tuning seperate nVidia and ATI shader support engine features under their respective OpenGL extensions, knowning that this GL code is barely reusable and is tied to a VERY limited set of cards?

    Add to that M$'s role at the ARB, and the influence they throw around with their money to keep other members in line (remember Farenheight?)

    Unless the ARB makes tremendous changes in its policy of staying 3 years behind the hardware, I strongly feel OpenGL is relagated to the niche BASIC fell into. Sure, you can get it on all platforms, but its so slow and feature poor, why bother?

    I wouldn't hold my breath...

  19. Re:I don't think it's really been established... by John+Carmack · · Score: 5, Insightful

    > I think it's only been established that Id didn't do well with the Linux gaming market

    All linux games sales EVER don't add up to one medium selling windows title. We are one of the creditors that aren't likely to see money that Loki owes us, so we have some idea just how grim it is.

    That isn't saying that it can't change in the future, or that doing linux ports isn't a Good Thing, but it isn't an economic motivator at the present time.

    John Carmack

  20. Re:I don't think it's really been established... by BrerBear · · Score: 2, Insightful

    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?

    Forget all of those. Consoles are where's it at now. I say this as an avid gamer of 10+ years who used to play the hardware rat race with all the others. Every year a new $300 video card, constantly upgrading processors, memory, sounds cards. Who needs it.

    I'm totally sold on consoles now, and I'm addicted to my PS2. The only thing that PC games really shine at these days is better video resolution, but at what cost? (Used to be networking, but the consoles are catching up there.)

    Judging by all the dying PC game companies, the slowdown in PC-only titles, and the lack of innovation there, I think the PC gaming market is becoming irrelevant.

    So I don't really care if I can't play games on my Mac or Linux box. I don't play them any more on my Windows box, either.