This whole Java development page is rather interesting since I used to be a C++ programmer before converting to Java. Java does not suck as a language, the amount of tests and routines I tried on it allows it to be a very good platform for game development. It is very well documented, allows you to deliver games solidly cross-platform, and is easier to use than C++. But, despite this, Java just has a lot of stuff working against it.
- Most of the world PC’s use Windows.
This is really hurtful because Microsoft basically controls the gaming market for PC’s. C++ is the language of choice and if you are going to affect 70% of the users, who cares about the 30% who get left behind. This mental picture was painted into a lot of my professors and colleagues minds. Support is just better for gaming in Windows and C++.
- You must do it Java’s way…
This is major. You can’t avoid the JVM, you can’t avoid naming classes with filenames, you can’t avoid the GC. Yes, there are ways to improve the performance of Java, but in the end, you end up doing about the same amount of work to cut off time, as you would to build the program from scratch in C++. Indie gamers will flock to it because the concept is easier to grasp than C++. Indie gamers love easy to learn concepts. But, to get the true speed out of Java, you really have to put in the extra effort required for C++/C. I specifically found it rather difficult to argue which language was superior.
- Popups
The one complaint I got from users the most was “Why the pop-up?” People just want fast deployment. Indie gamers usually never take the route of packaging the JVM, making things a lot worse since every time, you’ll eat the pop-up. In reality, the “Java is slow” mantra has spread more than just comparing it to C++.
The users are basing it on how long it takes for when you click the application, to when you actually get to run it.
So, if the deployment time is stopped by a loading screen, a certificate pop-up, and a request to download the latest JVM. It doesn’t feel as intuitive as just click .exe program and run. Java might be a lot faster in processing speed, but deployment still seems to be tearing Java’s sails. Users immediately think pop-up = bad! (thanks a lot spam) so it works against Java.
I continue to use Java because it has a user community that actually cares about the language. Also, you are never short of documentation on how to get something operating. Its connection to Android is really a deal maker, and I think Java should push itself more into gaming platforms (like Playstation & Wii) and phones (iOS) if possible. I hate the fact that people think of Java as niche software for making quick simple applications. Java deserves more than that. It is a very capable language now, and I think if we don’t give up on it, it has great potential to be the next C++.