Timeline for Why isn't Java more widely used for game development?
Current License: CC BY-SA 3.0
16 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Mar 3, 2021 at 13:31 | comment | added | GuardianX | 'Java is primarily used in Android games these days, simply because it's the primary language for that platform.' Well, this is not true. The most popular mobile game engines - Unity and Unreal are compiling down to C++. Most proprietary internal engines are also C++. There is no place for Java slowness in the gamedev it is just as plain simple as that. | |
| Oct 25, 2016 at 21:24 | comment | added | Doval |
@Klaim It's also not possible with malloc or new, so if that's a concern you're going to implement pooling no matter what. Unrelated to that point, a big issue with Java is that it doesn't support value types, unlike C#.
|
|
| Oct 1, 2014 at 20:46 | history | edited | Aviv Cohn | CC BY-SA 3.0 |
deleted 1 character in body
|
| Feb 21, 2013 at 10:37 | comment | added | Sulthan | Also, programming OpenGL in Java is a big pain. Java 3D is still full of errors and too complicated. M3G available on J2ME devices is a joke. Even on Android people go for C when implementing OpenGL games. | |
| Feb 20, 2013 at 22:56 | history | made wiki | Post Made Community Wiki by user82044 | ||
| Oct 11, 2012 at 16:54 | comment | added | johannes | @WTP Technically: Yes, one could. Practically you'd have to port it to the platform, optimize it for the platform and and pay license fees (or deal with GPL) for being worth it Java would have to provide notable benefits. | |
| Oct 11, 2012 at 16:12 | history | edited | Robert Harvey | CC BY-SA 3.0 |
deleted 1 characters in body
|
| Oct 11, 2012 at 15:22 | comment | added | MrFox | Best answer IMHO. One thing I'd like to add is that it's much harder to keep memory footprint low in Java than it is in C++. When there's a lot of data invovled, JVM just bloats. Coding your way out of that can be very hard. | |
| Oct 11, 2012 at 14:04 | comment | added | deadalnix | Very good points. However, I'd add the fact that the GC can cause unpredictable pauses/load . If this isn't a problem for server apps, it is for a real time game. This is for instance visible in minecraft. | |
| Nov 28, 2011 at 21:52 | comment | added | Klaim | Predictability of performance is not possible with a JVM. | |
| Nov 28, 2011 at 16:22 | comment | added | user4595 | A JVM for consoles can be included on the game disc. I don't see the problem there. | |
| May 2, 2011 at 4:14 | vote | accept | Anto | ||
| Mar 6, 2011 at 4:46 | comment | added | JustinC | It's called XNA, which is currently subset of the .Net 2.0 framework. There are some other interesting frameworks in the wild: MonoXNA, MonoTouch, and XnaTouch among others. | |
| Mar 6, 2011 at 3:25 | comment | added | Uri | @JustinC: That's a good point. I haven't realized that the 360 had a .NET runtime, I thought that it predates the popularity of that platform. | |
| Mar 6, 2011 at 0:09 | comment | added | JustinC | +1 "Most consoles (e.g., 360, PS3) do not have a JVM, so you cannot reuse code from the PC version. It is much easier to compile C++ code to support various devices" If the device doesn't have the runtime, you won't see games developed based on that unavailable runtime. Xbox 360 and Windows phone have managed .Net runtimes, so game development using them is possible, and likely a growing trend. However, because the runtime isn't on the other major platforms (PS3, and to a much lesser extent, Wii), its hard to justify a completely seperate codebase. It really is not a performance issue at all. | |
| Mar 5, 2011 at 23:02 | history | answered | Uri | CC BY-SA 2.5 |