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?

13 of 576 comments (clear)

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

  2. 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!
  3. 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.

  4. 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!
  5. 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
  6. 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.

  7. 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!

  8. 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??

  9. 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

  10. 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
  11. 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...

  12. 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