It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
dirtyharry50: I am not familiar with the Linux world in any detail for a long time but it is pretty safe to assume that Apple will remove OpenGL support from OS X in the future. I really doubt anybody developing for OS X will be using anything but Metal for graphics apps and games in a few years.
We'll have to see how well Apple will play with the rest, but they are not new to lock-in, same like MS. If they'll support Vulkan - it would be good for developers. If they won't - the mess of supporting multiple APIs will only increase. Same as with DX12 on Windows, there is zero practical need for Apple to use Metal when Vulkan will be released. Except for lock-in. At least Apple are part of the Vulkan working group, but it doesn't guarantee their good will.

Another major unknown at this point is Sony and PlayStation / Orbit OS. Developers surely don't appreciate this mess and extra burden, but vendors rarely care.
Post edited July 08, 2015 by shmerl
avatar
shmerl: Not as low as it sounds. Costs is actually the most common reason why developers say they resort to all kind of wrappers instead of making proper native versions. DX basically is the biggest bone in the industry's throat now.
Your point (or at least of the section you linked to on Wikipedia) was that MS artificially increases switching costs with deliberately dirty and convoluted design that increases the effort of supporting other OSes (and in this case presumably APIs) and that just can't be said about DirectX, including Direct3D, especially in the early versions when the features were limited and the implementation quite straightforward and presumably similar to other APIs (unless the other 3D APIs back in the 90's were really shitty which MS would be hardly to blame for). It's been a while but I did write a few simple DX programs, basically "gameplay-less" 3D games, as part of my education (admittedly with focus on audio engineering). I remember that there were some quirks, according to our tutor exclusive to D3D, but I can't possibly imagine that especially back in the 90's it was the D3D implementation that would keep a company from making their game cross-platform.
Post edited July 08, 2015 by F4LL0UT
avatar
Goodaltgamer: provided for 5 years

So what did you have to say?
avatar
Egotomb: I'll assume the reason I can't see the four years you previously spoke of in there is because I'm too dumb to understand EULA's.

Oh and try not to gloat so loudly in your next post... Seriously, it made me cringe.
avatar
Egotomb: You can't make reasonable arguments using arbitrary numbers like that.
Troll

If 4 or 5 years, that is not arbitrary

Check up on your words, before you respond.

If somebody made an arbitrary comment it wasn´t me..

Have a good day

EDIT: And we all know what a law abiding company MS is.
Post edited July 08, 2015 by Goodaltgamer
avatar
Goodaltgamer: Troll

If 4 or 5 years, that is not arbitrary

Check up on your words, before you respond.

If somebody made an arbitrary comment it wasn´t me..

Have a good day

EDIT: And we all know what a law abiding company MS is.
Sorry about misusing the word arbitrary, clearly, I was just talking out of my ass.
Post edited July 08, 2015 by Egotomb
avatar
Johnathanamz: Keep dreaming DirectX 12 will be way more advanced than Vulkan and Vulkan is the Mantle clone. AMD said they gave the Khronos Group Mantle for Vulkan.
I imagine that both API's will be at about the same level. The main benefit DX12 has is that devs are already using it.

By the way, an interesting quote: "About 600 lines of code are needed to write a basic triangle program in Vulkan."

Another nice quote from here:

In its early days, OpenGL benefited in many ways from being a "forward-looking" API that exposed far more functionality than was implemented by graphics hardware. Software that used those features got faster throughout the 90s with no rewriting needed as that functionality became available on GPUs. (Of course, software like games that wanted to be fast now just avoided those features.) When graphics hardware started to include features that hadn't been anticipated in OpenGL, things got messy and stayed messy.

Now that the feature set of graphics hardware is very stable and uniform across different vendors' hardware, the APIs are needed to solve an entirely different problem from what they were invented to do.
avatar
amadren: I've seen on many reviews and website that OpenGL was faster, better looking and cross compatible. So why everyone keep using DirectX if OpenGL> DirectX?
Both OpenGL and Direct3D have their various pros and cons and each of them can be perceived as being a better choice for a given solution with a particular set of goals/priorities. This wikipedia page gives a fairly good higher level comparison between the two on a number of points, including aspects that relate to game development:

https://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D

There are many other factors beyond what that Wikipedia article covers though too, and one is the availability and flexibility of various developmental tools for each API. Direct3D has traditionally had much better tools available than has OpenGL, however in recent years that has been changing a bit such as some of the stuff Valve has provided for game developers.

In the end though I don't believe there is one single tool that is best for every job universally, and that a game developer will choose the tool that they think best meets their own personal needs on the bullet points that are important for them, which includes availability of features, development tools, and possibly other factors. If there is a particular feature that they absolutely need and only one of the APIs provides an acceptable solution, then they might choose that API and consider the other unsuitable perhaps. For example, if a developer is targeting multiple-platforms on a wide variety of hardware from the start, they might end up deciding that OpenGL is the right choice if OpenGL otherwise meets all of their other needs (not to mention there aren't really any other options for cross-platform support out there). In that case their need for cross-platform support may dictate the API they use. Likewise, if Direct3D provides them with some unique feature, tool or other aspect that they evaluate to be of greater importance to them, then they're likely to choose that API.

So there are reasons to choose either one of the APIs depending on what a specific developer's own specific needs are for a given project. The reasons why a particular developer might have chosen Direct3D over OpenGL or vice versa may vary from developer to developer or project to project however so one would have to get first-hand information about that for a given game directly from the game's developer.

Personally, I would use the OpenGL API because I strongly favour open standards and cross-platform development from the start on any project I work on, and I myself use multiple platforms every day. Additionally, Linux is my development platform of choice, so anything I write evolves on Linux first and with platform-neutral best coding practices before considering building/porting to other platforms. Cross-platform support might not be important or might not be the most important thing on a developer's radar when developing a new game however.

There are other websites and articles online that discuss this topic as well which are worth web searching and perusing, and provide additional insights direct from developers who use the APIs (which is better than random non-developer comments/opinions ultimately).

Hope this helps.
Just found an interesting commentary which is a comparison between OpenGL and Direct3D as they evolved over time since inception and the ups and downs both interfaces have had over time which ultimately lead developers of particular software to choose one API over the other depending on what their needs and priorities were.

https://programmers.stackexchange.com/questions/60544/why-do-game-developers-prefer-windows?answertab=votes#tab-top

It was last edited about 2 years ago so doesn't include changes that may have occurred with each since then. Both APIs continue to evolve of course, and I think that cross-platform APIs like OpenGL are going to become more in-demand in the future whether a game or piece of software decides to use OpenGL exclusively, or support both it and Direct3D. It's pretty much mandatory to support OpenGL if you're making your application cross-platform for Linux/Mac or just about any other OS really.

The OpenGL ARB has an opportunity right now, the same as they did when Vista/DirectX10 came out as discussed in the above article. They're currently working on both OpenGL as well as Vulkan, so there is a possibility they could get things right this time and also get it _on_ time, preempting DirectX12 becoming popular. With Windows 10 very near release now though I wonder if there's time left to get OpenGL and/or Vulkan to that state short term. Hard to say.

One thing I think everyone can take to the bank though, is both OpenGL and DirectX will be around for a very very long time either way.
avatar
dirtyharry50: I am not familiar with the Linux world in any detail for a long time but it is pretty safe to assume that Apple will remove OpenGL support from OS X in the future. I really doubt anybody developing for OS X will be using anything but Metal for graphics apps and games in a few years.
avatar
shmerl: We'll have to see how well Apple will play with the rest, but they are not new to lock-in, same like MS. If they'll support Vulkan - it would be good for developers. If they won't - the mess of supporting multiple APIs will only increase. Same as with DX12 on Windows, there is zero practical need for Apple to use Metal when Vulkan will be released. Except for lock-in. At least Apple are part of the Vulkan working group, but it doesn't guarantee their good will.

Another major unknown at this point is Sony and PlayStation / Orbit OS. Developers surely don't appreciate this mess and extra burden, but vendors rarely care.
I think it is not realistic to expect there will be a singular graphics API that personal computer operating systems and console operating systems as well will all use. That is very unlikely to happen.

So far as Apple goes, Metal as you may know began its life on iOS and was designed initially with maximizing the potential of the hardware iOS runs on. Some impressive looking games run on iOS now due to Metal which is nice for those playing games on iPads, iPhones and even the iPod touch.

It made sense to bring Metal over to OS X for the performance gains there as well as for easy portability of leading iOS apps to OS X as well as potentially some OS X apps to iOS.

Apple is not going to be implementing Vulkan. It would be redundant when they already have Metal.

Microsoft has a decade plus lead with Direct X and that isn't going anywhere anytime soon either. This is why I assume Vulkan is likely to be most significant in terms of gaming for Linux and by extension SteamOS.

My expectation is we are going to have a world of three graphics APIs not to mention console operating system and graphics APIs and games will continue to be ported between platforms as economics allow and encourage.

As a Mac user I was originally hopeful that Apple would adopt Vulkan, that SteamOS and Linux would as well and that this direct competition to Direct X would be a healthy thing and from my own perspective result in more games likely being ported to the Mac given it would cost less to do so in a world where many games are going to be available on SteamOS and therefore presumably use Vulkan. It is obvious now that isn't happening. On a bright note, I don't see Mac gaming receding either as Macs continue to sell well experiencing growth in sales while PC sales have been stagnating overall in recent years. Not that I have any delusions there. I've chosen a niche computer platform but that is fine. I like it a lot and that is why I chose it. I am very happy now that it would appear coming up that if i did want to build a gaming box, I could go with Linux considering what I think SteamOS and Vulkan are going to bring about for Linux gaming. And then there is the console option too. I am a Playstation fan.

Notice a theme above? I don't do Microsoft. I don't care about what anybody else wants to do nor do I try to sell them my point of view there but that's my own personal preference.

So I guess in summary I would not expect anybody to play well with anybody when it comes to major companies all competing with each other. Trying to get them to cooperate with one another and open source APIs is a akin to expecting the 1% holding the majority of this world's wealth to embrace socialism. It ain't happening, not even a little. I think it is good to just accept that reality and make one's own choices according to one's own preferences. Arguing about what is best, who is right or wrong, who should play what on what, what API everybody should use (that simply is not going to happen) is just an exercise in futility that leads to ill feelings between people who would probably be better off simply celebrating their shared interest in good games regardless of what system those games execute on.
Post edited July 08, 2015 by dirtyharry50
avatar
vicklemos: Why DirectX?

'Cause it's politics, man, politics.
:)
avatar
amadren: Haha +1

By the way, I just asked one innocent question and it actually ended up in a Microsoft vs Free softwares debate :(
Thanks! :)
It happens, bro. Thing is I'm quite excited about this whole Vulkan deal, since I love multiple ways of delivering the same thing. That's one of the main reasons I stick to Linux.
avatar
ET3D: By the way, an interesting quote: "About 600 lines of code are needed to write a basic triangle program in Vulkan."
Here is the end of that quote that you forgot to post: "However, much of that line count will be boiler-plate code that can be re-used or setup for the programmer by various libraries."

The source:
https://www.phoronix.com/scan.php?page=news_item&px=LunarG-Vulkan-AMA
The original post:
https://www.reddit.com/r/IAmA/comments/2ypils/we_are_lunarg_funded_by_valve_to_improve_steamos/cpbsbrh
Post edited July 08, 2015 by vv221
avatar
shmerl: Not as low as it sounds. Costs is actually the most common reason why developers say they resort to all kind of wrappers instead of making proper native versions. DX basically is the biggest bone in the industry's throat now.
avatar
F4LL0UT: Your point (or at least of the section you linked to on Wikipedia) was that MS artificially increases switching costs with deliberately dirty and convoluted design that increases the effort of supporting other OSes
Yes, that's what I'm saying. Not necessarily with convoluted design, but with Windows only APIs. D3D is clearly Windows only, and the only way to bypass it is to rewrite engines which use it, or to resort to wrappers. Both approaches require effort and resources. I.e. the overheard falls on developers. Many can't afford it, and it suits MS lock-in all the same.

avatar
skeletonbow: Just found an interesting commentary which is a comparison between OpenGL and Direct3D as they evolved over time since inception and the ups and downs both interfaces have had over time which ultimately lead developers of particular software to choose one API over the other depending on what their needs and priorities were.

https://programmers.stackexchange.com/questions/60544/why-do-game-developers-prefer-windows?answertab=votes#tab-top
This was already linked above :)

avatar
dirtyharry50: I think it is not realistic to expect there will be a singular graphics API that personal computer operating systems and console operating systems as well will all use. That is very unlikely to happen.
Why not? Modern GPU use pretty common logic which abstracts pretty well with APIs like Vulkan. If you paid attention, both Metal and DX12 are very close to Vulkan in design. Not just because they all used Mantle as their base, but also because that's how GPUs work. I.e. those APIs abstract the common hardware design of modern day GPUs. So there is no reason why there can't be one common abstraction.

avatar
dirtyharry50: Apple is not going to be implementing Vulkan.
Only if they are jerks (which they often are). So far they didn't however say they are against Vulkan, so time will tell. May be they won't behave crookedly. Not implementing Vulkan will serve Apple's lock-in and will be a spit in the face of developers. I personally have very low respect for Apple precisely because of this kind of behavior. Apple have a chance to redeem themselves at least in this aspect. As I said, unlike MS they are at least in the Vulkan working group.

avatar
dirtyharry50: It would be redundant when they already have Metal.
Apple are free to kill off Metal if they worry about redundancy. It will help everyone, and developers primarily. AMD are killing off Mantle now, because they see Vulkan as a clearly better single alternative. But as you know Apple have a very strong NIH bend a lot of times, so I personally doubt they'll kill off Metal.
Post edited July 08, 2015 by shmerl
FYI: http://home.seekscale.com/blog/the-future-of-graphics-programming-the-vulkan-api
Thanks for the link, interesting read. Incidentally it includes a statement that delivers a point I meant to include in my pro-DX argumentation:
"But actually we welcome healthy competition between open standard and proprietary APIs – as it pushes both forward."
avatar
F4LL0UT: Thanks for the link, interesting read. Incidentally it includes a statement that delivers a point I meant to include in my pro-DX argumentation:
"But actually we welcome healthy competition between open standard and proprietary APIs – as it pushes both forward."
I agree with it, but the key is healthy, which I understand as competition on merit. I.e. when both APIs are available on the platform, developers can choose between them depending on what benefits those APIs provide. When APIs are barred from some platforms artificially (like MS not letting Vulkan implementation on Xbox, or Apple not letting it on iOS and etc.) - it's not a healthy competition.
Post edited July 08, 2015 by shmerl
http://www.shamusyoung.com/twentysidedtale/?p=23079

http://www.shamusyoung.com/twentysidedtale/?p=26269

"OpenGL pre-dates graphics cards. At least, it pre-dates cards as we understand them today. There were industrial-grade cards in 1991, used by render farms and CAD stations. I don’t know enough about that hardware to know how OpenGL worked at the time, so let’s just ignore all of that stuff while I make broad, hand-wavy gestures. The point is that the world of consumer-grade graphics acceleration sort of grew up around OpenGL, and over time it adapted to give us programmers a way to talk to all that fancy graphics hardware. OpenGL also pre-dates the widespread adoption of C++ as a programming language. Also, it was devised long before multi-threading was part of normal development. This means that OpenGL has a lot of things about it that just don’t make a lot of sense to game developers in 2015. It’s a system that uses crusty old C code, it doesn’t play well with multi-threaded approaches, and it’s filled with legacy systems that nobody is supposed to use anymore. "