Hey guys, 🙂 Grappling Hook is written entirely in Java and based on the jMonkeyEngine, which is also a written in Java. I want to explain a bit, why I think that Java is currently one of the best programming languages for game development.

1. Java Is Fast

Yes, that is the truth. Many people think that Java is slow, because it was, in the beginning. But things have changed and when you look at current benchmarks Java is in average only twice as slow as C/C++.
When you want to make Crysis 3, then it would be no option to write the entire game and engine in Java. But competing with huge companies like Crytek, Epic or ID Software makes no sense for a small indie team at all, from my point of view.

2. Eclipse Rocks

I had to work a long time with Visual Studio and also tried some other IDEs and text-editors, but none of them was such a good, stable and helpful tool as Eclipse is for me.
Right now Grappling Hook has more than 100 source code files so I need a good tool, which supports me. Code completion, syntax-highlighting, refactoring and a powerful search function are essential for a high development speed.
And this features work perfect in Eclipse, not like e.g. IntelliSense in Visual Studio for C++. While working on one big project I had to delete the IntelliSense database every day by hand to make it working again.

3. Extensive And Stable Library

In game development you need different kinds of data structures and containers, like linked lists, vectors, trees… You also play much around with strings and need many mathematic functions. In the Java library all this and much more waits for you. You don´t have to search new libraries for all this basic stuff.
Most of it is has also a good interface and is easy to use. In the current Java version you didn’t even have to care about iterators and can use them like in Python:
for( Element e : list) {
// Do something with the element e
}
Thats really nice, because I iterate a lot through different kinds of data structures. ( But be careful doing this every frame multiple times, because every iteration needs a new iterator-object. )

4. Managed Memory

I am not the best C++ programmer and destroyed the stack of my applications multiple times. It took me hours to track the problem and in some cases I didn’t find it at all. In Java and every other language with managed memory you simply don´t have such problems.
Memory leaks are also not that bad, because of the garbage collection. Garbage collection doesn’t mean that you have no memory leaks at all, but they are not such a bit issue and with the built in memory profiler they are easy to track.

There are many other small points, why a like Java for game development, but that were the most important.
Java is not my favorite programming language for every task, but in game development I am 4 to 6 times faster than with C++. And being able to develop fast is very important to me.

What is your favorite programming language for game development and why?