I understand that C++ is generally considered better than Java for games (at least larger-scale games). Why is this?
What is keeping Java from being competitive in this field? Which reasons against using Java for game programming have the most basis, and which ones are myths?
EDIT: Am a bit unfamiliar with C/C++, and did not think to differentiate between the two at line 1 >.<
C++ C++ is the foundation of most major console and Microsoft Windows games. It's an object-oriented programming (OOP) language, meaning it organizes code into self-contained, reusable units. Those objects are designed to be reusable and movable, so you can code complex games without building everything from scratch.
Gaming platforms: Ironically, the Java slogan “Write once, run anywhere” doesn't quite work in the world of video games. The most popular game consoles simply don't have a Java Virtual Machine. There are no fundamental or technical limitations for porting JVM on a console.
C++ helps to include lower memory footprint as it has no garbage collection. C++ can compile all C programs virtually allowing the developer to reuse C software. On the other hand, Java programs run faster than C++. Java code is compiled to Bytecode and is saved in .
C# is best suitable for Windows applications and video game development. It is often used for web applications and enterprise software too. While Java performs great for web apps and Android apps but also is known for its application in scientific and other high precision software.
The reason Java (and C#/.NET) is not a viable option for AAA titles at this point is the established game engines and their toolchains are written in C++. Game development is all about getting a title on the market in the shortest amount of time, and budgets don't allow for piddling in things like a new language/engine when several are already available, work well, and have an extensive set of editors and tools backing them.
Moving to Java (or C#) would also require a new performance-driven JVM (or CLI) across the big-3 (PC, X360, PS3) or big-5 (add Wii, iPhone). It's technically doable, but not financially viable.
Edit: Anyone with low-level knowledge of both virtual machines and the current state of game engines can tell you that a JVM or CLI could unquestionably be implemented with a new game engine to beat the performance of current C++ engines. The preventing factor is time and money, nothing more and nothing less.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With