Console Programming Languages and Graphics APIs

Started by
6 comments, last by swiftcoder 16 years, 1 month ago
Hi all, I'm looking to enter computer games programming and I was wonderingif anyone could tell me what programming languages and graphics API's are being used by game studios (i.e. not homebrew) on the major consoles. I've had quite a search on the net, and the few results I've got haven't been that definate. I'm looking for what languages & gfx apis can be used on the following: PS3 Wii X360 NDS PSP Thanks for taking the time to read this
Advertisement
Quote:Original post by mvi
I'm looking for what languages & gfx apis can be used on the following:


I've shipped games on all of the below but NDS so...

PS3 - Mostly custom, proprietary libraries provided by Sony.
Wii - Mostly custom, proprietary libraries provided by Nintendo.
X360 - Direct3D with proprietary extensions and additional libraries from Microsoft.
NDS - I'm not sure, but we can both probably guess where this is going.
PSP - Mostly custom, proprietary libraries provided by Sony.

I say "mostly" because sometimes developers implement direct hardware level interfaces for some of the above consoles based on documents provided by the manufacturer. It's much more common to use the provided APIs, though.

If you're looking to learn one of the above, the closest you can come is D3D, possibly in conjunction with XNA (I haven't looked into it, so I'm not sure how close it is).
Thanks for your help. Do any of the consoles use any form of OpenGL?

I've used both D3D and XNA, there's a fair amount of crossover between the two.

Also do you know what programming languages can be used on each? i.e. C, C++, C#, Java?

Thanks again
Quote:Original post by mvi
Thanks for your help. Do any of the consoles use any form of OpenGL?

The PS3 some derivative of OpenGL ES, but I don't know how much they have modified it.
Quote:Also do you know what programming languages can be used on each? i.e. C, C++, C#, Java?

C/C++ out to do you fine on all the platforms except the XBox360, where C# is likely to be preferred (though managed C++ may still be possible). Java you are unlikely to use, although it is a popular choice for mobile phone development.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

I'd say C/C++ is the most commonly used programming language on those consoles. Also the PS3 has the PSGL rendering API which is a modification of OpenGL ES 2.0 and uses Cg for shaders.
Yeah, NDAs, but I don't think any of this information is exactly secret...

PS3 has an API that's essentially OpenGL ES, but very few developers actually use it. Most bypass it and use the lower-level (custom) API from Sony.

As was stated, it's D3D9 (with extensions) on 360.

Wii has a custom API that is very similar to OpenGL (but is *not* OpenGL), although the GPU is fairly strange, so much of the graphics programming is not what you'd expect.

NDS also has some libraries shipped by Nintendo, but we (and most other people, I imagine) bypass them and just build DMA lists for the GPU directly.

PSP comes with an OpenGL-like API (again, not really OpenGL, but similar), but again ... most people don't use it. Everyone just builds DMA lists for the GPU.

Official console projects are written in C/C++. You can do hobbyist stuff on 360 (with XNA) using C#, but that's not actually allowed for retail games yet. Even if it was, people aren't likely to use it unless they're *only* targeting 360.

As for graphics ... almost none of this matters. Unless you're starting a new game company, and writing the graphics libraries for your brand new engine from scratch, you're unlikely to ever deal with any of these APIs. You'll get a job at some game developer, where they'll be using an existing engine (either internally built or licensed), which will abstract away all of this. You'll just have some generic materials renderer or scene graph. No one would get anything done if people had to write the same code 6 times these days.
Thanks all, very informative

With regards to a pre-built licensed engine, any recommendations with what to learn?
Quote:Original post by mvi
With regards to a pre-built licensed engine, any recommendations with what to learn?

It largely doesn't matter - most engines are quite similar in most respects, so learning to use any engine will be beneficial. When you are working on a commercial game, you use whichever engine the management licensed, so you may well need to be flexible.

If you are looking for an inexpensive engine to get started with on Windows/Mac/Linux, then the C4 Engine comes highly recommended.

If you want to dive straight into console development, Torque has a kit for the XBox 360 (via XNA), and for the Wii (I am not aware of the licensing terms with Nintendo for this though).

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

This topic is closed to new replies.

Advertisement