I wonder for my own use and curiosity, how popular is Java in indie game development , in 2d and 3d? Are there any good open/closed source games done in java?
3 Answers
Java is the language used for Android games. (I believe there may be some other methods like using C++ but its usually Java). If you have an Android phone, you can test the top-downloaded games to see good examples.
I think it's good for indie development - in fact I am doing an indie game for android. There are many tools that Google provides for you - such as debugger, emulator, memory allocation tracker. You can also use the Eclipse IDE with it.
There is also a lot of code online and the StackOverflow site if you get stuck on a bug. Also, Android supports openGL for 2D/3D games (though you can make a 2D game without it - as I am doing).
-
\$\begingroup\$ Yes, but outside of Android, its use and scope is somewhat small, as @ZorbaTHut points out. \$\endgroup\$– NateCommented Feb 14, 2011 at 0:18
-
\$\begingroup\$ Maybe so, but I only wish to inform user3689 that mobile game development with Android is an option to indie developers. \$\endgroup\$– f20kCommented Feb 14, 2011 at 1:05
-
2\$\begingroup\$ Many many games in android are done using C++. :) \$\endgroup\$– GrimshawCommented May 8, 2013 at 18:52
It's not terribly popular, in my experience. There's a few problems. First off, Java isn't the most efficient language around (though better than many think), but that lack of efficiency isn't really compensated for by ease of development. Second, running Java is kind of a pain - it's gotten better recently, but it's still tainted by Java's legendary growing pains. Third, Java hasn't had particularly good graphics support in-browser, and if you're outside the browser, you may as well use something else.
It's not really a matter of Java being bad. It's a matter of Java not being particularly good for any game-related niche, and other languages actually being good. The language that does everything in a mediocre fashion loses to the languages that do something well.
There's a list of famous Java games on this very site, but, well, you can see how popular it is.
-
3\$\begingroup\$ So, instead of parroting common complains about java, please give links that support your position. In my experience, Java's efficiency is more than sufficient (say, using a good toolkit such as Xith3D or Ardor or somesuch) for almost any indie-caliber game. One overview of these myths is link or even from Stackoverflow link. \$\endgroup\$– ChrisECommented Feb 14, 2011 at 16:36
-
2\$\begingroup\$ 'Does everything in a mediocre fashion?' Because of this statement I don't really believe you have ever written or deployed any Java code, and are probably not in the best position to issue such sweeping conclusions. \$\endgroup\$– JamesCommented Feb 14, 2011 at 16:56
-
2\$\begingroup\$ Did you actually read my post? Java does almost everything adequately, but it does nothing particularly well. I'm not saying it's a bad language, but people tend to focus on the languages that are very good. Java just doesn't stand out in any fashion. It's not superfast, it's not supereasy, it's not supercompatible, it's not supercontrollable, it doesn't have amazing access to third-party libraries. It's a solid B. Solid B's don't win. \$\endgroup\$ Commented Feb 14, 2011 at 16:57
-
3\$\begingroup\$ Java is probably as fast as you need it to be, really easy to code if you've ever tried, and deploys to PC / Linux / Mac with almost no trouble. \$\endgroup\$– JamesCommented Feb 14, 2011 at 17:00
-
3\$\begingroup\$ It excels at readability, one of the most if not THE most critical attribute of a programming language. You only write the code but it is read repeatedly, up to hundreds of times for long lasting code. It is really strange how long it takes some people to figure this out. \$\endgroup\$– Bill KCommented Jul 11, 2012 at 3:46
Not quite answering the question, but javagaming.org has a non-exhaustive list of commercial Java games here.
much more sophisticated graphics for RuneScape
: news.cnet.com/8301-1023_3-57580221-93/… \$\endgroup\$