Its all about DirectX and OpenGL?

Started by
19 comments, last by Promit 10 years, 4 months ago

Hi guys,

I don't even know it is the right place to post my question, but.. lets go.

I was wondering if all the platforms supports DirectX and or OpenGL.

Let try me clarify my doubts:

I know the Windows support DirectX ( also support OpenGL), as do XBOX and Windows Phone ( maybe ).

As far as I know, the other platforms like: MacOS X, iOS ( iPhone, iPad, etc ), Android, Linux, etc supports OpenGL ( or OpenGL ES for mobiles ).

But, how about PlayStation 3, PlayStation 4? Play Station Vita? Wii, Game Cube, Nintendo 3DS etc etc etc?

What is its drawing API? It support some kind of OpenGL? There is other drawing APIs for consoles? Some proprietary API for each platform?

I know the most engines will convert code to platform native code, like Unity3d, you write your game with Unity and it compile your code and generate all the native code ( or something like that ) for iPhone, Xbox, PS, etc... but.. I want to know at low level... what Unity like engines use to convert code to platform specific?

And if you use something like 'PlayStatin SDK' ( I dont even know if it exists ), how do you develop your graphics?

Well, thanks in advance for any replies.

ps: Sry about my english, I am not a native speaker/writer.

KrinosX

Advertisement

Playstation 3 provides SDK which you have to use to make games for it. Chances are it's not DirectX nor OpenGL (I don't have it so don't know), probably same situation with PS4, PSVita and other consoles. They use more or less same GPU architecture so it'll have same theory: vertex buffers, index buffers, shaders, etc.

Thanks for your reply Zaoshi!!

So, its a good idea to write a 'wrapper' layer to graphics API if you want to write a cross platform game engine... right? :)

Someone who use Playstation SDK and/or some 'Nintendo SDK' may share some knowledge??

Thanks!! :D

KrinosX

Thanks for your reply Zaoshi!!

So, its a good idea to write a 'wrapper' layer to graphics API if you want to write a cross platform game engine... right? smile.png

Someone who use Playstation SDK and/or some 'Nintendo SDK' may share some knowledge??

Thanks!! biggrin.png

yeah, you want to have your own wrapper around the different graphics apis (libgcm for ps3, libgnm for ps4, dx11, dx for xbob, ogl, etc.)
Coming up with the right level of abstraction can take some time, you need to learn the differences in between the APIs pretty well to get it right, but overall not too difficult.

As Zaoshi mentioned, the constructs are pretty similar in between all major graphics apis. Some things are still a touch different such as constant management (gles2 vs dx11 /ogl3+ vs consoles), console graphics apis also usually expose alot more than is typically available on pc through dx and ogl.

The "western" console uses an enhanced version of their known graphics API and the "oriental" one uses its own completely new API, nobody can disclose more, I'm afraid:D Dunno about the other "oriental" console. However the concepts are really the same, also the shading languages are extremely similar, so you can wrap it and port it quite easily.

Humm, interesting... with the names given by ATEFred I was able to research something ( 'googled it' ) and found some references to LibGCM for PS3...
It is a derivation from OpenGL ES 1.0 as far as I was able to find... so... its a 'OpenGL like' library... with its differences I imagine, but no something complete new...
Sometime ago I read something about programming graphics for old consoles ( Atari, Master System, etc ) and it was very.. hummm how can I say... primitive way to develop... OpenGL and DirectX were a big evolution, but I think they are the 'top of mind' technology for now...
I am a bit curious about what cannot be 'disclosed' for now as pcmaster says... but I think the 'insiders' ( the pro game developers, the guys who works for the industry ) may know some new platform coming... hope someday it become public and or I can find my place in game industry smile.png
Thanks guys for the information given!!
much appreciated!

KrinosX

I would guess xbox one uses some sort of directx11 api (not sure, just based on the used hardware and microsoft being the manufacturer :)) I believe it was similar with the xbox 360, that used xna.

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

http://en.wikipedia.org/wiki/PSGL

Humm, interesting... with the names given by ATEFred I was able to research something ( 'googled it' ) and found some references to LibGCM for PS3...
It is a derivation from OpenGL ES 1.0 as far as I was able to find... so... its a 'OpenGL like' library... with its differences I imagine, but no something complete new...

As linked above, you're talking about PSGL, not GCM. GCM is the native API. PSGL is a wrapper around GCM, which makes it look more like a GL-like API.

I am a bit curious about what cannot be 'disclosed' for now as pcmaster says...

Whenever you're working with private SDKs, you have to sign a non-disclosure agreement, which basically means that in exchange for access to these tools, you have to treat them as being top-secret. Breaching the secrecy agreements will get your company's licence revoked, and/or yourself fired.

In general, developers have much lower-level access to graphics programming constructs than on less-specialized platforms like PCs, tablets, or smartphones. So, rather than having an API which gives you nice calls for drawing collections of vertices and which takes care of graphics memory management and threading in its own special way (in conjunction with the OS, Drivers and Hardware), instead you get to do things like building raw command-lists and DMA'ing them to the GPU, and being responsible for managing graphics memory on your own, and ensuring all your threads play nice together. Its this free-wheeling quality, together with less abstraction overhead that allows game consoles to perform several times better than would a PC with identical hardware.

AMD's upcoming Mantle API is supposed to bring many of these abilities to the PC-space, although Mantle will necessarily have to play well with the OS/driver model, and pay a higher--although less than D3D or OpenGL--abstraction penalty than consoles do. I expect the mantle programming model to fall somewhere just past the mid-point between PC APIs and console-style APIs, and performance benefit to fall at about the same. I also expect that such a model is much more difficult to grok than D3D or OpenGL for the average graphics programmer, and that the naive graphics programmer will be able to shoot himself in the foot with far more frequency than with D3D or OpenGL--so performance wins will in no way be guaranteed.

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement