Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

#ActualSerapth

Posted 22 October 2012 - 11:14 AM

The biggest problem with Java is everything is needlessly over-engineered.  It very much has the feeling of a language that is very popular with consultants ( it is, consultants love Java.   It's the language of choice for almost all the big consulting companies ) that bill by the hour.  Eclipse is one such perfect example... just take a gander around the Eclipse UI and tell me it makes any sense.  The everything and the kitchen sink program creates a brutal learning curve for a new developer... and you will encounter it almost instantly, as Eclipse has this horrible habit of using the JRE instead of the JDK ( welcome to another facet new developers are going to have to puzzle out... ), so you will have to configure your JDK almost instantly, which requires digging through about 6 levels of nested dialogs.  

Then there is the build system...  eghads the build system.  I really never fathomed that there was someone alive that said "boyo... make files just seem too easy.. let's make something even more convoluted!", and thus Maven was born.  Maven is powerful, maven can do everything you ever imagined and maven is an absolute utter complete pain in the ass when it breaks.  And it will.  Often.

So, for the love of all that is holy, if you are just starting out with Java, take my advice and stay away from Eclipse and Maven as long as you possibly can.  Try getting started with NetBeans or IntelliJ, both are freely available, and both are much more approach for a) new developers b) the sane.

There are a couple good game development libraries for Java.  Actually, this is an area where Java being unpopular for game development really helps you... not as much choice.

Basically you have Slick2D and Playn for 2D libraries.  PlayN is great, but to perform it's cross platform magic it uses Maven.  That means, when the build process breaks, you are in for a nightmare.  Oh and for an idea what you are in for, here are the PlayN installation instructions.  So, in other words, just starting starting out, start with Slick.

When things go 3D, your choices are similarly restrained.  There are two popular 3D engines, Panda which was mentioned earlier and jMonkeyEngine.  And... that's about it.  If you want to work a bit lower level, there is LWJGL.

It may sound silly, but this lack of choice is a very good thing, at least for a beginner.  It makes your decision making process incredibly simple.  Heck, it basically boils it down to pick an IDE and a library and go. I personally recommend Slick + IntelliJ to get started, and nicely, you can use this post to figure out the configuration issues.


To join the off-topic metathread for a moment, I highly recommend Lua as a beginners language.  Other than it's odd choice to be 1 based and defaulting to global, it is a very good language to learn programming and an exceptional one to grow with, as Lua is one of the most commonly embedded programming languages for games.  It is not an Object Oriented language, which can certainly be a good thing.  It is however powerful/expressive enough that you can add OO to your code if really needed.

Python and Lua however both suffer the same issue, community fragmentation.  Both released newer version ( 3.x and 5.2 respectively ) that the community simply haven't adopted for various reasons.  These has the affect of stagnating the language's development.

#1Serapth

Posted 22 October 2012 - 11:10 AM

The biggest problem with Java is everything is needlessly over-engineered.  It very much has the feeling of a language that is very popular with consultants ( it is, consultants love Java.   It's the language of choice for almost all the big consulting companies ) that bill by the hour.  Eclipse is one such perfect example... just take a gander around the Eclipse UI and tell me it makes any sense.  The everything and the kitchen sink program creates a brutal learning curve for a new developer... and you will encounter it almost instantly, as Eclipse has this horrible habit of using the JRE instead of the JDK ( welcome to another facet new developers are going to have to puzzle out... ), so you will have to configure your JDK almost instantly, which requires digging through about 6 levels of nested dialogs.  

Then there is the build system...  eghads the build system.  I really never fathomed that there was someone alive that said "boyo... make files just seem too easy.. let's make something even more convoluted!", and thus Maven was born.  Maven is powerful, maven can do everything you ever imagined and maven is an absolute utter complete pain in the ass when it breaks.  And it will.  Often.

So, for the love of all that is holy, if you are just starting out with Java, take my advice and stay away from Eclipse and Maven as long as you possibly can.  Try getting started with NetBeans or IntelliJ, both are freely available, and both are much more approach for a) new developers b) the sane.

There are a couple good game development libraries for Java.  Actually, this is an area where Java being unpopular for game development really helps you... not as much choice.

Basically you have Slick2D and Playn for 2D libraries.  PlayN is great, but to perform it's cross platform magic it uses Maven.  That means, when the build process breaks, you are in for a nightmare.  Oh and for an idea what you are in for, here are the PlayN installation instructions.  So, in other words, just starting starting out, start with Slick.

When things go 3D, your choices are similarly restrained.  There are two popular 3D engines, Panda which was mentioned earlier and jMonkeyEngine.  And... that's about it.  If you want to work a bit lower level, there is LWJGL.

In may sound silly, but this lack of choice is a very good thing, at least for a beginner.  It makes your decision making process incredibly simple.  Heck, it basically boils it down to pick and IDE and a library and go. I personally recommend Slick + IntelliJ to get started, and nicely, you can use this post to figure out the configuration issues.


To join the off-topic metathread for a moment, I highly recommend Lua as a beginners language.  Other than it's odd choice to be 1 based and defaulting to global, it is a very good language to learn programming and an exceptional one to grow with, as Lua is one of the most commonly embedded programming languages for games.  It is not an Object Oriented language, which can certainly be a good thing.  It is however powerful/expressive enough that you can add OO to your code if really needed.

Python and Lua however both suffer the same issue, community fragmentation.  Both released newer version ( 3.x and 5.2 respectively ) that the community simply haven't adopted for various reasons.  These has the affect of stagnating the language's development.

PARTNERS