slides here: http://adrienb.fr/blog/wp-content/uploads/2013/04/PortingSou...
So if you have rolled your own DirectX-only engine this is awesome of course, but do people really do that?
That's completely wrong. PS3 never used OpenGL and PS4 doesn't do either.
Unreal while having somewhat working Mac port is usually ported via Cedega and not the Mac version which is largely unmaintained. The Linux port of Unreal was never merged back either. Presently there is no reasonable OpenGL renderer. CryEngine also does not use OpenGL.
It sort of does. PS3 uses OpenGL ES 1.0 with extensions and then there is a separate graphics library, LibGCM, that is lower level.
Details here (although this use says it doesn't use OpenGL and then says that its API is based on OpenGL + extensions, so it is a bit confusing):
http://scalibq.wordpress.com/2010/05/15/sony%E2%80%99s-plays...
EDIT: HEre is a PS3 developer saying that PS3 is OpenGL ES:
http://www.khronos.org/assets/uploads/developers/library/sig...
You are right that CryEngine doesn't use OpenGL it seems, but at least they are pretty close with PSGL and they also seem to be working on Linux support.
http://scalibq.wordpress.com/2010/05/15/sony%E2%80%99s-plays...
Never understood how it got born.
i'm pretty sure it would have worked at some point because the docs indicated that it had. however - writing a gl like layer over the top of the rsx stuff is not a particular challenge - the functionality maps extremely well.
I think a lot of games featured in Humble Bundles used to be that way. A lot of games used to be (and some still are) initially only released on Windows with Mac/Linux ports released later.
I always wrote them so that all DirectX and Windows specific code was abstracted behind platform-agnostic generic interfaces. So, in theory, OpenGL support would be as simple as coding an OpenGL implementation of my generic graphics API. Probably a day or two's work, but I haven't had a compelling reason to do the OpenGL implementation yet.
But yeah, this is awesome. As a side note, developers who want to make games run on OSX and Linux should just stop targeting DirectX. This is good for already-existing games and port them over, but in 2014 if you're still writing games in DirectX, you're most likely doing it wrong.
No, you are not. There is no wrong and right, it's just a stupid statement. OpenGL is years behind D3D (not DirectX, it's not comparable!) in many areas, and writing using the whole DX stack can be much nicer than setting up a GL stack with a lot of different libraries.
http://programmers.stackexchange.com/questions/60544/why-do-...
But this lib is for those countless DX9 games already in existence. Valve is making SteamOS ports as easy as possible.
It is better if the game does GL directly, which is why something the game can link in works better.
Wine is a reimplementation of the WinAPI on Linux, so Windows applications can use the same functions in WinAPI even if they are on Linux.
Also, most AAA engines (such as Unreal Engine) already have an abstraction layer for OpenGL and DirectX so their games can run independently of which one is missing.
i have to say its good to see this but i'm mildly disappointed too... DirectX --> OpenGL is one thing, but a properly cross platform rendering interface that will work with DX, its flavour on 360, the novelties of Win8 and Xbone as well as PS3 gcm and gx/gx2 on nintendo platforms whilst dealing with the quirks of desktop vs. es gl? that would still be a pretty run of the mill technical achievement of no particular note.
aside from that i don't like the code. singleton class instance? why not use the static keyword so the compiler knows what you want and can optimise accordingly and save you the potential to shoot yourself in the foot. and when did 2500 lines become an acceptable file size for a header? also did we forget that you can nest folders, or name files with modern 1990s style filenames...
i need to open source my stuff...
i mean, there are more open source games that use OpenGL than DirectX, and are already cross platform as a result. similarly, i would imagine if a AAA game studio wanted to do such a thing, they would roll their own (or just use GL in the first place).
perhaps i'm being too cynical (but this is hacker news..)
there are already DX->GL compatibility layers, although most of them are in house, by companies that produce ports (ala Feral Games).
yes, i entirely agree with you.. almost. ideally, i'd like DirectX to.. go away, forever. proprietary APIs that result in lock in to a software or hardware platform are seriously holding back computing in general. and i'd never recommend anyone use AMD's Mantle for the same reason (which is a massive waste of everyone's time)
In fact, it's MIT: http://opensource.org/licenses/MIT
Even the latest version of Wine patched with the Command Stream WIP is 5 times faster.
This is a library, intended to be used in your application in lieu of calling the APIs directly. You cannot take a full application and ask this library to run it.