Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Is the copyright protection and enforcement of Android apps written in Java sufficient or should I be relying on a native implementation to use machine code obfuscating techniques in order to prevent piracy of my game?

Please provide an answer with supporting examples of games which use either technique.

share|improve this question
1  
I don't think you should worry with that. If someone wants to reverse engineer your application, it can be done either way, just as in the PC. But for the simplicity of the usual android applications and games, plus the additional difficulty of the handheld nature, i think it is even safer to leave your code as is. I don't think people actually bother protecting android code, unless it is a blockbuster from a major AAA studio. But even those can be broken anyway.. –  Grimshaw Jun 24 '12 at 15:31
1  
If your game's revenue model can be hurt by piracy, then it won't succeed on Android. –  Crashworks Jul 6 '12 at 23:25

3 Answers 3

up vote 7 down vote accepted

I don't have examples readily available, but obfuscating your code will not really provide any significant advantage in preventing piracy of your application. Piracy is typically accomplished through hacks that bypass copy protection or DRM checks, which can be done at the machine code or VM opcode level.

No amount of obfuscation of the higher level code prior to letting it get compiled to machine code or the intermediate representation used by a VM will help you at that point.

I would not bother.

share|improve this answer
    
I guess I had in mind something like en.wikipedia.org/wiki/Self-modifying_code#Use_as_camouflage. That and the deterrent factor of introducing all the idiosyncracies of lower level coding. On the strength of your argument (and profile) I can discount the former and the latter is a double edged sword at best. Thank you. –  John Jun 24 '12 at 18:47

If you are still interested the Android SDK provides a native offuscation tool : ProGuard.

And during Google IO 12 they have announced a new “application encryption” feature (DRM) but detail are still unknown.

share|improve this answer
    
+1 Even though I agree that you shouldn't worry too much about piracy, ProGuard is pretty easy to learn and use. I think it's better than publishing your stuff wide open. It's not foolproof but it will keep the novices from ripping you off. –  Rubber Mallet Jul 7 '12 at 1:03

to add onto the other answers, the way to get people to pay for your game (not pirate it) is one, use ads, two, make people want to buy it: make it good and give them a free trial so they can see if they like it. That could even mean giving it out for free and letting them 'donate'. You could also use things like in app purchases (they could be circumvented, but its trickier) and online features that require purchasing to take advantage of; to name a few.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.