Is Java viable for graphic intensive video games. More specifically could I recreate a game like Halo or Call of Duty where you need to have quick
input and output? Thanks in advance to your answers
Is Java viable for graphic intensive video games. More specifically could I recreate a game like Halo or Call of Duty where you need to have quick
input and output? Thanks in advance to your answers
Is Java viable for graphic intensive video games.
Yes.
More specifically could I recreate a game like Halo or Call of Duty
Doubt it. (Not that that has nothing to do with Java)
where you need to have quick input and output?
Yes.
Is Java viable for graphic intensive video games. More specifically could I recreate a game like Halo or Call of Duty where you need to have quick
input and output? Thanks in advance to your answers
The language choice is mostly irrelevant on the PC, especially if you aim to create something similar to old games like Halo or CoD (a modern PC is significantly faster than the previous console generation and even the current generation (PS4/XBOne), Graphics are primarily handled by the GPU and most of the fancy special effects will be written using GLSL or HLSL regardless of what language you use for your game logic.
That said however, Java has quite many issues that you will have to work around(The Java standard library is pretty awful for games so you will have to rely on third party libraries quite a lot) and it doesn't really provide any tools for fine tuning the lower level details nor is it expressive enough to make it easy for the VM to optimize things for you (You pretty much have to choose between high performance with a slow startup(server VM) or far from optimal performance and fast startup(client VM), i'd highly recommend going with C# instead. (its very similar but provides a saner way to interface with native code if it becomes necessary)
What do you mean with that?
The Java standard library is pretty awful for games so you will have to rely on third party libraries quite a lot
"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"
My journals: dustArtemis ECS framework and Making a Terrain Generator
The built-in Java libraries for graphics are based on the lowest common denominator. They were written with completeness and portability in mind. They were not designed around hardware acceleration.What do you mean with that?The Java standard library is pretty awful for games so you will have to rely on third party libraries quite a lot
Ohh I see, I asked because "Java for games" in my mind is Java + LWJGL, not Java2D precisely. By "standard libraries" I thought he was referring to the usual collections, networking, threading, and so on.
"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"
My journals: dustArtemis ECS framework and Making a Terrain Generator
Ohh I see, I asked because "Java for games" in my mind is Java + LWJGL, not Java2D precisely. By "standard libraries" I thought he was referring to the usual collections, networking, threading, and so on.
networking, threading, etc are included in the java standard library, LWJGL and JOGL are not. (They are third party wrappers around native, platform specific libraries).
Neither LWJGL nor JOGL are really optimal choices due to the JNI overhead (a proper engine will allow you to minimize the number of calls made through the JNI) but they are still significantly better than the Graphics classes provided by Java.
networking, threading, etc are included in the java standard library, LWJGL and JOGL are not. (They are third party wrappers around native, platform specific libraries).
But then OpenGL and DirectX are not part of the C++ standard library either and are also third party wrappers around native platform specific code.
I get what you are saying about the JNI overhead but then this isn't really a performance bottleneck that would prevent somebody writing a game like HALO or COD which are several years old and when released ran on much slower PCs than the average budget Dell that somebody can buy nowadays.