Welcome to Indie Game Programming

What does it mean to be indie? Ironically, independent game development's greatest weakness is also its greatest strength. When you are indie, you have no publisher, no budget, and few team members (if any). But it also means that you don't require publisher approval, and have complete creative freedom. With crowd source funding, online distribution, and many available platforms, it is an exciting time to try out indie development.

Why Java for Indie Games?

Java is not the most popular choice for game development.
But Java is a great choice for making games. Reasons for choosing Java include:

Java doesn't cost any money (great for indies)
Garbage Collection
Java manages memory, so learning how to make games is easier than a language like C/C++ that makes you handle everything yourself
Object Oriented
Java is an object-oriented language, which makes it easy to compartmentalize code for reuse
Statically Typed
Languages such as Javascript and Python are loosely typed, and errors with mismatched types are not caught until that code is run. Java catches these errors at compile time
Java has tons of documentation, tutorials, and example code available to teach everything about the language
Profilling Tools
Not only can the jconsole utility explore code, it has build in profiling for free
Help Available
Because it is such a popular language, help is only an internet search away
Mature Tools
Java has been around for a long time, and all of the most commonly used tools are fast and reliable
Current Java code speed is usually as fast or almost as fast as C++
Failsafe I/O
A super fast language doesn't mean a whole lot if you can't fix bugs. Java throws meaningful exceptions and has great debugging features. You can even connect to another machine and look at all the variables in memory with the jconsole utility
Java code runs on Windows, Mac, and Linux
Multi-threaded support
Java's threading support is built right into the language, so when you're ready, all the features are available without 3rd party libraries