Is java good for games

Sorry for incoming long post. TL;DR - It's more about you than the tools. Great things can be made in Java, but if you're only interested in game development there are better options.

Generally it's more about the end product and project size than the tools you use. Generally. Java is perfectly fine for indie projects. Minecraft, one of the most successful games of all time, was written in Java (which is not to say that it's a paragon of Java game programming, I'm just saying successful games can certainly be made in Java). For larger or more complicated projects, C++ may be better, but honestly if you're writing a game that size or in need of blazing performance, it's going to take a team and high budget, so it really depends on what is beneficial for you as a programmer.

If you're learning Java for other things as well, use it for game programming; there's no reason not to. If you're just learning it for game development, there may be better options out there, such as Unity (which uses C#, a very similar language to Java). If you're wanting to get into development professionally for desktop/console games you may as well start learning C++ (or at least C#) since it's an industry standard.

There are also engines and frameworks that make game development in Java much easier, such as LibGDX and JMonkeyEngine. These are great tools that save you a lot of time in way of engine creation, and though they're probably not quite as "useful" (subjective, but at least as productive) as frameworks like MonoGame (C#), Unity (C#/UnityScript/Boo), or Unreal (C++).

That's just my opinion from what I've learned in the last year of looking at game development on the side. Take it with a grain of salt. Just remember that the quality of the project will depend more upon you than the tools you choose. Some of the greatest games were written in Assembly for NES and SNES, and some truly bad games have been written in C++ on the latest iteration of the Unreal Engine. What are your needs, and how can the tools be used to accomplish your goals?

/r/learnjava Thread