Proguard is also a pretty good shrinker, optimizer, obfuscator, and preverifier.

ProGuard doesn't really.. work! Last time I tried it, it wouldn't do anything to my code (I decompiled and checked) Then it told me to provide obfuscated names in some mysti-fysti-file-format and I gave up. Not really the most straightforward tool IMHO. I didn't read the manual but good software works for anyone without a manual! Right?! Riight?

Well, it is, really. Maybe not massively cheap or massively easy but certainly not the valuable scarce resource programmers like to pretend it is.

Cas

Code is as cheap as you allow it to be. Good code is a rare and valuable resource just like Albert Einstein was a rare and valuable resource, but it is only worth what you make it out to be.

Smart people tend not to make money from code because they don't take advantage of others like leaders do. Is the code on a killing machine valuable? Hell Yes It Is. Is code you give away valuable? Yes, but you will you not make money from it.

So good code is not only going to become expense it will become a necessity soon.

You could also write your game in a non-Java language and then compile to bytecode. Doesn't stop decompilation, but most people would attempt to decompile your program into Java. So having it written in Ruby or Scala would throw them (and maybe even brake the decompiler if it's doing something non-Java).

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org