Dobar način da zaštitiš kod je i upotereba optimizacije pri kompajliranju.
To podesiš u kompajleru ali molim te nemoj to da radiš

Dokle god kod nije optimizovan dotle se relativno "lako" može razbiti...
Nisam koristio profesionalne obfuskatore ali sam analizirao kod onih za koje predpostavljam da jesu.
Tu su uočljive tri stvari:
1. Obfuskacija (kod gubi čoveku logičan smisao)
2. Optimizacija (kod se iz Jave pretvara direktno u instrukcije virtuelne maišine tako da ga nije moguće automatski niti potpuno dekompajlirati nazad u Javu barem koliko sam do sada video)
3. Enkripcija stringova (u kod se ubacuju (optimizovane) metode koje vrše enkripciju (šifrovanje) stringova)
Ima još nekih sitnijih caka npr. (kod tačke 1.) gomila klasa i objekata koji ne rade ništa već ti otežavaju anlizu koda itd...
Ukoliko se "optimizacija" ne uradi dobro npr. u tački 3. metodu je moguće (nakon delimično uspešnog dekompajliranja klase) razmišljanjem i logikom napisati ponovo u Javi tako da radi istu stvar kao i instrukcije virtuelne mašine pa se zatim piše obrnuta (inverzna) metoda koja vrši dešifrovanje stringova i ako kod nije na drugim mestima u istoj klasi optimizovan program je "razbijen" tj. tu ne pomaže više ni obfuskacija jer praktično haker ima kontrolu nad "svim" bitnim parametrima programa ako mu je to cilj...
Upotreba mrežne komunikacije je još jedan od načina na koji se štite igre u obliku Java apleta. Aplet čeka da mu server pošalje određenu poruku i igrica neće da krene

Naravno većina ovakvih "zaštita" je odrađena toliko jednostavno da mislim da nisu ni pravljene sa ciljem da odbrane kod igre već da spreče bukvalnu fizičku krađu apleta od strane običnih korisnika.
Što se tiče komercijalnih rutina koje koriste tzv. "proprietary format-e" fajlova (npr. umesto .jpg slika neki drugi privatni format) tu moraš da učiš od onih koji to već rade čitanjem koda npr. njihovih appleta. Ni malo lak posao... Srećno!
BTW lično sam maštao da znam više o samom "Java Mašincu" tj. da umem da pišem Java bajt kod pa ako se neko time bavio zamolio bih da postuje makar nešto ovde u vezi gornje teme. Molim i napomene o korišćenom softveru.
Takođe me zanima da li je neko video, čuo za, probao ili pravio dekompajlere koji mogu da dekompajliraju i optimizovan bajt kod.
Što se tiče patenata to je ubedljivo najbolja zaštišta koja dobro "uteruje strah u kosti" svakome ko zna sa čim ima posla i kakvim se rizicima izlaže. Naravno za patente treba imati dosta novaca i dobre advokate. Npr. ako zaštitiš tehnologiju u USA (ili EU gde su stvari liberalnije) tada koliko je meni poznato "niko" ne može da koristi datu tehnologiju ukoliko ti ne plati licencu čak iako je kod "potpuno otvoren". Npr. u USA može da napiše i drugačije algoritme ali ponekad i to ne vredi sve dok se ne napravi nešto potpuno drugo ili plati licencu za ono što je neko već patentirao... Doduše to i od samog patenta zavisi tako da nije sve baš ovako crno pa je npr. dovoljno samo napisati drugačiji algoritam (pogotovo u EU). Naravno postoje "igrači" koji recimo prebace web sajt na server u Kinu pa onda odatle pokušavaju da prodaju patentiranu tehnologiju ali čitao sam za praksu da u tom slučaju kompanija koja je vlasnik licence tuži ili preti kupcima (tj. korisnicima softvera) tužbom.
U nekim ekstremnim slučajevima dovoljno je samo napraviti tržišno konkurentnu tehnologiju i čak i ako imaš npr. patentna prava a nemaš dovoljno novca za advokate da platiš da te brane na sudu u slučaju bilo kakve tužbe praktično gubiš spor odn. tržište. BTW pod udar ovakve sudske prakse dolazi se tek onda kada je količina novca koja se zarađuje tolika da neko poželi da ti ga uzme ili da spreči da mu ga neko uzme (npr. konkurencija u istoj industrijskoj grani)
PS: Ovo o patentima sam pokupio sa mailing lista iz oblasti patentiranih multimedijalnih tehnologija kao i čitajući poneke članke sa interneta o pojedinim sudskim sporovima. Lično sa tim nemam iskustva niti sam radio u firmi koja štiti svoja patentna prava niti sam pravnik već je to sve moje subjektivno mišljenje da u stvari treba biti oprezan a sve u zavisnosti od posla kojim se neko bavi.