I would like to point out that a normal java program can be decompilied so that the source is all there and very readable (the variable and function names might be different though). Granted, all the comments are stripped, but any programmer could figure out what the code is doing w/out too much trouble. There are several decompilers out there - check this link out for more information on 3 of them
http://www.javaworld.com/javaworld/jw-07-1997/jw-07-decompilers.html
So 2 techniques I know of to thwart decompilation is to obfuscate your code or compile it to binary. Of course, if you are using Java for its intended purpose, the second option is not resonable.
Of course, if your game is open-source, then this is mood point. However, if its not open-source, then there can be distinct problems with people getting at your source especially if its multiplayer. Also, if you are selling the game then you don’t want people to get at the source either.
I would like to know what everyone does for there Java games? Do you concider this when you develop a Java game? What about non-multiplayer games? Multiplayer Games? Is there anyother way of preventing your class files from being decompilied?