OpenGL's Successor... The Vulkan API - has anyone checked this out yet?

DirectX is made by Microsoft, for Microsoft. There are some Linux emulators in the pro version of Wine. But best shot is still a Windows PC or XBox with a modern graphics card (currently Radeon has the most up-to-date drivers with all modern DirectX features and some special hardware in it). To use the latest DirectX (v.12) you are forced to also use Windows 10.

History:
During the 1990s some early 3D APIs emerged. One of the first was OpenGL which was made by a consortium of companies and first released in 1992. It was mainly pushed by 3D research, e.g. in Virtual Reality labs (e.g. IRIX running Unix workstations) and in some games (Quake, 1996) used it too.
In the 1990s Microsoft was part of the OpenGL ARB (the consortium - today known as Khronos group), but then they created their own 3D API called Direct3D and left the OpenGL consortium. Direct3D is/was a subsystem of the DirectX framework (there are some more things like audio, game servers etc.).
Since games were now almost all sold on Windows from the mid 1990s onwards, this was a simple coup, a good old company-will-dominate-whole-market thing.
Since the 2000s, OpenGL was mainly found in research (Virtual Reality labs) and CAD applications in 3D workstations, whereas all except Sony (and maybe some other companies) used DirectX now.
One of these “other companies” was id software (Wolfenstein3D, Doom1, Doom2, Quake1, Quake2, Quake3, Doom3, Quake4 - all beginning with Quake1 were using OpenGL). They pushed OpenGL in terms of gaming (e.g. Doom3 was the first game that made heavy use of normal maps and stencil shadows).

Even today still over 90 percent of PC based gamers use Windows (and hence DirectX). People playing on Linux is a very small minority. People playing on Mac (e.g. in the U.S.A. where Apple seems to have a significant market share) are still a minority (but a growing one).
Smartphones (except maybe Windows Phone) use OpenGL ES, Steam Machines, Playstation, maybe Nintendo don’t use DirectX - so it has returned to that more balanced situation during the last 5 years - but only if you include phones and consoles.
On the gaming consoles far more than 50% (more like 70 or 80) do not use DirectX. This is because Playstation4 sold better than XBox and there are some other consoles not using DirectX.

It’s all an up and down and history will tell what kind of 3D API will dominate the future (might as well be OpenGL or one of it’s successors like Vulkan). :chimpanzee_smile:

1 Like

Thanks for the information, but I believe OpenGL was created by Silicon Graphics

Silicon Graphics Inc. (SGI) started developing OpenGL in 1991 and released it in January 1992;[6]

From there OpenGL Architecture Review Board - Wikipedia

The OpenGL Architecture Review Board (ARB) is an industry consortium that governed the OpenGL specification. It was formed in 1992.

So it seems that the ARB took over after the initial release, but credit should definitely be given to Silicon Graphics.

Now the Kronos Group is taking it over, which is nice that it’s being kept by such a big OSS Company.

Lol of course, that’s what they do best, take ideas, and make it theirs… Sad…

Interesting about Quake and Doom, those were big games for sure.

According to Usage share of operating systems - Wikipedia

Linux takes up 1.6% total share, and Mac OSX is 9% total share… So yes, 90% of PC users use Windows.

As for smart phoens, the data is also there, mainly 50% Android usage.

The thing is, last I remember Iphones don’t even allow OpenGL (not did they allow Java). I think Java was finally allowed, and looking at this quick Google search it seems GL ES is used on Apple so Idk…

I would think that anything other than Microsoft would use OpenGL, since DX is proprietary… Plus… You probably have to pay to use DX hardware or whatnot in your systems, so they probably opt for the “Free” and “Open Source” OpenGL.

I don’t understand why OpenGL would NOT be available on Windows Phone, but who knows…

It’s funny because Vulkan doesn’t seem to be related to OpenGL at all, so I don’t see why it’s called a “successor.” IT seems that Vulkan will utilize OpenGL and it’s Shader Library, but it doesn’t seem to be connected in any way.

Maybe it will take over OpenGL, but I honestly don’t see OpenGL going anywhere for awhile, especially for those applications written so long ago, that still are in use, or even us, who are using GL for JME, and otbher OpenGL programmers that are developing games and 3D Applications, I doubt are going to switch so fast. Like Empire_Phoenix said, we have to wait at least for stability OPenGL 1 was the argument, but I would hope that we learned our Mistake with OpenGL 1, and that Vulkan will be very stable and good right out of the box.

But who knows… right? Could be a flop like Mantle :slight_smile:

I always am wary of the hype. Granted I haven’t really heard much Hype with Vulkan surprisingly, but it’s probably out there, if I looked…

Probably stuff like “THE OPENGL KILLER…” LOL!

Empire Phoenix said something in my “Vulkan thread” too. Bad feelings about Vulkan/Mantle/Metal/DirectX12 - #6 by Ogli

It’s really interesting and yes, Vulkan is meant as a successor to OpenGL which will totally replace that, but the GLSL (high level shading language from OpenGL) will stay for a while even after Vulkan has become the new Standard.

You can compare Vulkan to Mantle and to DirectX12 and to Metal - but Mantle was a one-year-fly that had been dropped by AMD before even reaching a standard status. Metal might have chances just like DirectX12 has chances, but Vulkan aims to become the only cross-platform next-gen 3D API (Metal is for iOS / OSX and DirectX12 is for Windows, XBox, Surface, Windows Phones).

And for the minor inaccuracies in my history etc. post - I wrote that all from my memory. So yes, it’s clear that there might be some minor glitches in that text.

Your post was otherwise excellent so I didn’t want to nit pick but some of us are old enough that we followed every little snippet of information that came from id software trying to emulate what they did. (Mike Abrash articles were pure gold.) So I felt it important to say that Quake 1 was a pure software renderer. They later came out with GL-Quake which was a port to OpenGL.

That’s how amazing those guys were.

In 1998 I finally was able to create my own software-rendered Quake clone in Java. Very educational. You can read about it here and download it:

I never really did anything with it but it still works. :slight_smile: Not very impressive anymore, though. I did create my own little level for it.

5 Likes

Interesting read, thank you. So you seemed to be in the boat of wanting Vulkan to die, and OpenGL staying the standard? I feel a lot of people are scared to learn new languages, and are stuck with “I love this language no matter what” syndrome. I used to be like that with Java, but other JVM Languages, like Scala, can do a ton of great things, so I think the important thing now is to adapt, but not necessarily stop using the old language. I’m sure OpenGL and Vulkan will work together for a lot of things, so us OpenGL programmers wont be SOL.

I found it interesting that Vulkan is 80% Mantle API… wtf? If Mantle died so fast, why would they take so much of it? I’m assuming it’s 80% Updated code so that the issues that caused Mantle’s downfall, wont be repeated.

I read that it’s a successor, but also read that it’s supposed to be separate from OpenGL. I guess I’m thinking of it as “Will this replace OpenGL?” “Does this mean OpenGL Development will stop?” etc, so maybe I’m confusing that with the term “Successor.”

Just figured I would mention it, thanks for the history lesson.

That’s why you’re the JMonkey Big Boss.

So there were very few OpenGL mainstream games created then?

What did companies like “Blizzard Entertainment” use for their earlier games into the Warcraft, Starcraft, and Diablo series?

Mantle had no real downfall, but it was redundant with the planned then not release vulcan, so better drop it fast, before something serious runs on it.

In short, they felt it was better to boost a free open api, than to push their own stuff onto people.

1 Like

Interesting. I don’t know anything about Mantle, but from the few Google Searches on Vulkan, there were mentions of Mantle just poofing, and it just not being anything.

I guess it was something good then, and the APIs being ported will make Vulkan a great API?

Thanks for the tips Empire :slight_smile: .

@pspeed I recently found a website where someone made a little Java programm that could render Comanche maps from the old helicopter voxel terrain game. It’s antique today, but still very nice to look at. The amazing thing was, that his code had only 100 lines or something like that…

Well I don’t know much about why Mantle disappeared (I guess it’s just that AMD did not want to maintain 3 different APIs but only 2 different APIs - DirectX12 and Vulkan).

What I do know is that what they tried to achieve was quite revolutionary and gave good performance boosts in the first few demos and games made with this new type of 3D API - Mantle basically made the rock start to roll…

Hah, they basically painted into a 2D image buffer and used some sprites on top of it! :chimpanzee_closedlaugh:
Basically very similar to how the C64 made it - but with ten times the RAM, some extended memory and more then 20 times the CPU power.

Warcraft 1 was really a very great game. In terms of atmosphere it was better than 2 and 3 (okay, maybe even with 3) and it had a much less comic-esque style (I loved this, it was so dark and cineastic).

Warcraft 2 used some 2D API from Windows 95. It looked awful.

Warcraft 3 had low-poly comic 3D style - quite revolutionary, but not as good as games like Total Annihilation Kingdoms (in my opinion).

I played all three Warcraft games in multiplayer (yes, even the first one - via RS-232 connector! :chimpanzee_closedlaugh:slight_smile:

Warcraft III’s map editor was really good though. You could create your own models and such, and people would use really good models (not sure if imported or what) and add them to games.

I only wonder what SC2’s is like :drool:

Warcraf2, Starcraft1, Warcraft3 level editors are all really great. Still big idols for me.
I made some custom maps and even a little campaign for all three of them.
We played my maps in multiplayer also - for example I had a coop campaign where two players played twin-headed Ogre monsters - each had one ogre and then some mazes and forests like in Chaos Engine.
Also, since Warcraft2 you could insert your custom sound effects for units. Well, guess what our microphone put into that game (of course, some teenagers making funny jokes! :chimpanzee_closedlaugh: ).

Even for Warcraft1 I had a little modding tool and made a simple paper-scissors-rock style mod for our null modem cable battles. I basically balanced melee infantry, archers and knights against each other. That was even before Command & Conquer 1 came out. So I consider myself the first paper-scissors-rock RTS maker! :chimpanzee_closedlaugh:

The editor of SC2 - I only played the campaign and some custom maps and did not test the editor - but they basically have strong mod-support and many people made all kinds of games (FPS, cart racers, 2.5D side scrollers, etc.). I guess the editor is no less featurewise than its predecessors.

Regarding starcraft2 editor - it’s much much more powerful than anything I’ve seen before but not without great price on it and I’m not talking about money - it’s quite hard to learn for common level users due to some good design choices (for example, almost everything is separated and reusable), some not so good design choices and overwhelming possibilities.

Sorry for comment not related to thread theme but I had to say that.

1 Like

Thanks prog, good info!

Is there some advanced goodies for us coders? From what oogie is telling us, there’s 3rd party mod support, so I guess coders can have their fun too? :slight_smile:

@KonradZuse,
Not much really - only “galaxy script” support, no external code without illegal memory hacks. And it’s not really necessary in most cases - a lot of things are done using data editor, for example I did there turn-based game once using mere 10-20 lines of code (UI control mainly) and a lot of data editing.

But for real things JME is much better.

And I thing it’s really not a good place for this discussion.

SIGGRAPH 2015: 3D Graphics API State of the Union

2015 GDC - Vulkan- The Future of High Performance Graphics

So I’m curious if we will see Vulkan on the web right away, and how integrated it will be with things like HTML5.

Currently I’ve been working on a Project using “Voodoo.js” If people don’t know what that is, it was essentially a way to create WebGL content, using the HTML5 Canvas (I’m assuming). This would mean that you don’t need a seperate WebGL Canvas, and you would be able to essentially mix 2D and 3D content on your HTML page together.

It was a great project, but sadly, since no one really used it, it was abandoned. I personally found a use for it, and I’m surprised others could not.

I was curious if we would possibly see Vulkan on the web in this fashion?

@Empire_Phoenix you mentioned we should wait for updates and revisions, so I’m curious how long we should wait? I’m assuming there is no set time, and that we will have to wait for a stable version, and that could take a year or more (or maybe right away)?

I might still have to work with Voodoo for this project, but I figure if Vulkan would do the job, then maybe I should use that? But not sure what the best solution would be, as I might have to re-write it in Vulkan, especially since Voodoo isn’t around anymore.

By the way… Every time I hear the name, I think of Star Trek, and it’s odd… because I am not a Star Trek watcher. I wonder if this was named after Star Trek? :slight_smile:

Second mayor release in my opinion, (less if someone does all the work before :slight_smile: )
Just look like at JavaFX, first version was totally garbage, or Java, before hotspot it was a joke.
Or look at Mantle, it basically was open as well, but the api itself vanished kinda (well most parts are now used in vulca, but if you wrote a game against this it is game over anyway)

Not sure about the star trek thing, I could not find any official sources. But since one of the code names for it before was “Opengl the next generation”, it might be.

Yeah, I figure that we should wait and see, so I guess I’ll just redo it if Vulkan can provide useful for my needs, since it only took about 6 hours to learn some WebGL and get basically the finished product (except for some stupid texture issue where it makes textures look like crap if your computer’s resources cannot handle them or something, but it just craps out regardless)…!!!

FX1 seemed to serve some purpose, but it was a scripting language I believe?

FX now is very good, and 3D is going in an interesting direction as well!

Idk what Hotspot is, I tried Googling it and it says it was a VM? Is that what the current VM is based on or…?

AS for Mantle, yeah… It was AMD’s answer to CUDA I believe… But I heard that Mantle poofed, in order to get ready for Vulkan, since it wouldn’t make sense for Mantle to compete against itself.

As for Star Trek… that’s funny… next gen… They better be careful and not get sued now… :stuck_out_tongue:

They could have made a better name I guess…

OpenGL++ :laughing:

Current Oracle JVM. Known for its smart optimizing JIT compiler, which is why Java programmers are constantly advised to not try micro optimizing, unless tests prove that it makes a significant difference - most of the time, the JITter does a better job of that than you can.

1 Like

Your google-fu is pretty atrocious… :wink:

1 Like