Programming Languages for Consoles?

  • Thread starter ShinyLatios
  • Start date
ShinyLatios

ShinyLatios

Nintendo 3DS Legend
Towns Folk
Out of curiosity, what programming languages do the big 3 use for developing games for their consoles? Are there any that are simply not compatible at all, or are they relatively similar in this regard?
 
Out of curiosity, what programming languages do the big 3 use for developing games for their consoles? Are there any that are simply not compatible at all, or are they relatively similar in this regard?

They mainly use C++/C#. Sony can also use Java on the PS3, but this isn't confirmed for the PS4.

Also, I forgot to say this: For everything that is graphic and gives a nice effect to render, they use GLSL (OpenGL Shading Language), or anything that targets directly the graphic card (Like Assembler, but the ASM time is over now.)
 
  • Like
Reactions: Kaynil and ShinyLatios
They mainly use C++/C#. Sony can also use Java on the PS3, but this isn't confirmed for the PS4.

Also, I forgot to say this: For everything that is graphic and gives a nice effect to render, they use GLSL (OpenGL Shading Language), or anything that targets directly the graphic card (Like Assembler, but the ASM time is over now.)
Although Java is object-oriented, which can make things easier to program from what I understand, isn't C++/C# more efficient than Java? I've heard a lot about Java not being that good for processing certain things. Also, can't say I'm surprised that Java is usable for PS3 given I've heard similarities between C# and Java.

In any case, thanks for the info!
 
Although Java is object-oriented, which can make things easier to program from what I understand, isn't C++/C# more efficient than Java? I've heard a lot about Java not being that good for processing certain things. Also, can't say I'm surprised that Java is usable for PS3 given I've heard similarities between C# and Java.

In any case, thanks for the info!

I admit that I don't understand why Java is used for Video Games. Sure it's easy, and have a huge amount of libraries, but it's really slow ! And more the garbage collector (things that destroys things in game that aren't used) can freeze the whole game because of the slowness of Java and the multiple calls to it instead of a single, continued process.

That's why Microsoft and Nintendo sticks with C++ and C#. C# don't have that much library, but is easy, and C++ is the 3rd most used programming language, so it has more libraries than Java, and is way faster than C# and Java. (For info : C++ compiled becomes Assembler, while C# becomes MS-IL [.Net Framework Assembler] and Java becomes bytecode (.class files))

I hope that answer the whole question. Anyway, the three have the Object-Oriented paradigm, so they can be used to make games.
 
I admit that I don't understand why Java is used for Video Games. Sure it's easy, and have a huge amount of libraries, but it's really slow ! And more the garbage collector (things that destroys things in game that aren't used) can freeze the whole game because of the slowness of Java and the multiple calls to it instead of a single, continued process.

That's why Microsoft and Nintendo sticks with C++ and C#. C# don't have that much library, but is easy, and C++ is the 3rd most used programming language, so it has more libraries than Java, and is way faster than C# and Java. (For info : C++ compiled becomes Assembler, while C# becomes MS-IL [.Net Framework Assembler] and Java becomes bytecode (.class files))

I hope that answer the whole question. Anyway, the three have the Object-Oriented paradigm, so they can be used to make games.
Yeah, that does answer the question well. And yeah, makes sense that they wouldn't use Java if it really is that slow (I've seen for myself some examples of it being slow with some smaller things anyway like recursion stuff).

C# is a newer version of C isn't it?
 
Yeah, that does answer the question well. And yeah, makes sense that they wouldn't use Java if it really is that slow (I've seen for myself some examples of it being slow with some smaller things anyway like recursion stuff).

C# is a newer version of C isn't it?
It's a member of the "C language family", but it's the odd one out kinda. People tend to associate it more to Java or C++.

Also, Blu-ray Disc players come with BD-J, thus why PS3 had Java. I'd be willing to bet that the PS4 will also have BD-J, thus enabling Java.

Also C# has the same JIT compilation as Java but C# doesn't have as fast or optimized of a JIT as JVM. Fact. A lot of people just use it AOT (which is also possible with Java, but not by default) to make it run faster.

MS-IL (properly known as "Common Intermediate Language") is basically another bytecode like JVM has.

I work on JIT compilers, so I tend to know a lot about them, lol.
 
  • Like
Reactions: ShinyLatios
It's a member of the "C language family", but it's the odd one out kinda. People tend to associate it more to Java or C++.

Also, Blu-ray Disc players come with BD-J, thus why PS3 had Java. I'd be willing to bet that the PS4 will also have BD-J, thus enabling Java.

Also C# has the same JIT compilation as Java but C# doesn't have as fast or optimized of a JIT as JVM. Fact. A lot of people just use it AOT (which is also possible with Java, but not by default) to make it run faster.

MS-IL (properly known as "Common Intermediate Language") is basically another bytecode like JVM has.

I work on JIT compilers, so I tend to know a lot about them, lol.

Sure JIT is speed, but it's resource expensive, sometimes...
As for the Java Speed, why don't Oracle uses the OpenJDK as an inspiration ? I mean, I remember when I used Ubuntu, I used the OpenJDK, as Oracle don't provide an official VM for the platform, and it's way faster !

As for the C# -> MSIL, I have heard that there have been some code floating around enabling the compilation of C# or VB.NET to ASM, just like C/C++.
 
Sure JIT is speed, but it's resource expensive, sometimes...
As for the Java Speed, why don't Oracle uses the OpenJDK as an inspiration ? I mean, I remember when I used Ubuntu, I used the OpenJDK, as Oracle don't provide an official VM for the platform, and it's way faster !

As for the C# -> MSIL, I have heard that there have been some code floating around enabling the compilation of C# or VB.NET to ASM, just like C/C++.
OpenJDK is a bit of an odd and stupid legal situation. There's different versions of the OpenJDK: specifically, HotSpot and IcedTea. The official OpenJDK is HotSpot, while IcedTea is the unofficial derivative made by Red Hat and other Linux companies. OpenJDK itself uses the same source code as the official Java, as it is simply the open source "developer" version of Java.

You're actually wrong about the official VM part. The issue is actually that official proprietary releases of Java are restricted by a licensing fee with Oracle, so they can't redistribute or distribute it without a hefty and unnecessary bill. The reason Java is faster on Linux is that it was originally built for Solaris (a UNIX system) and Linux is very similar to Unix. Linux is second to Solaris in optimization. However, IcedTea (the Ubuntu package of OpenJDK) features reprogrammed parts that increase portability with a dispute attached. The idea is that assembly (the language of large parts of Hotspot) isn't optimized as well as C++ code by AOT compilers like GCC/Clang/MSVC, so even though the same code in handwritten assembly will be faster unoptimized, it may be slower when optimization is considered.

Yes, Mono features it, and I believe they used LLVM, which should be fine on performance. My point was more that the JIT of CLR/.NET (CLR is another official name.) is inferior to that of JVM. Also, it uses DirectX on Windows, which I don't like at all.

Meanwhile I keep developing my LumineVM for Ekunia Fusion.;)
 
Yes, Mono features it, and I believe they used LLVM, which should be fine on performance. My point was more that the JIT of CLR/.NET (CLR is another official name.) is inferior to that of JVM. Also, it uses DirectX on Windows, which I don't like at all.

Meanwhile I keep developing my LumineVM for Ekunia Fusion.;)

Wow, you're making a VM ? Good Luck, I support you ! ;)
I admit that DirectX is a pain now. OpenGL targets all platforms, and is way better than DirectX. But Microsoft always want to reinvent the wheel with their way, which can lead to trouble (Like the fight between Sun and Microsoft, because of J#).

Anyway, good luck with your VM !
 
  • #10
I admit that DirectX is a pain now. OpenGL targets all platforms, and is way better than DirectX. But Microsoft always want to reinvent the wheel with their way, which can lead to trouble (Like the fight between Sun and Microsoft, because of J#).
It also doesn't perform as well, even on Windows, and it'd be more advanced if vendors kept their versions more up-to-date. For compatibility with most systems, OpenGL ES 2/3 (mobile etc.) or OpenGL3.3 (desktop etc.) should work.
Wow, you're making a VM ? Good Luck, I support you ! ;)

Anyway, good luck with your VM !
Thanks. I'm going to make a topic about it, sometime, if I haven't already done that.:whistle:
 
  • #11
It also doesn't perform as well, even on Windows, and it'd be more advanced if vendors kept their versions more up-to-date. For compatibility with most systems, OpenGL ES 2/3 (mobile etc.) or OpenGL3.3 (desktop etc.) should work.

Thanks. I'm going to make a topic about it, sometime, if I haven't already done that.:whistle:

Yeah, even though performances varies from platform to platform, as the specifications are different.
OpenGL based games and applications runs well on my actual laptop, and ran well on my EeePC too.

PS: For your VM, sure that I'll check it if you make a topic, it looks really interesting, and as a (still, but have some little experience) C++ beginner, it might help me getting better.

I'll stop here, I'm going off topic.
 
Back
Top