Question

Can I use RMI to thwart android game piracy?

Was it helpful?

Solution

In short, DRM is bad. If someone did pirate your app, what makes you think they would buy it? They'll more probably just unninstall it and be done with it. DRM has plagued the PC games market already, no need to do it for Android.

A pirated copy does not mean a lost sale!

And yes, piracy will always happen. Let me tell you some examples:

  • World of Warcraft, an MMO. Check.
  • Assassin's Creed 2, had a client/server structure that required you to be always online in order to play. Check.
  • Every game on STEAM. Check.

In short, by implementing DRM all you are going to do is losing time that should be used improving your app. What I suggest is the following:

  1. Focus your efforts on the experience the paying customers get from the game
  2. Create a demo! Most people are not sure about buying a game they don't know
  3. Instead of charging full price, make the first levels free and sell the others via microtransactions

Does it feel bad having all your work robbed? Yes it does! But let me add a third possible outcome:

You decide to implement DRM and get lower sales and lower review scores complaining about your DRM.

So yeah, my suggestion? Raise your head, forget about it and think of the sales you made and how you can improve your app to sell more (hint: adding draconian DRM will not do that)

OTHER TIPS

However, it still burns my a**..

There are products to help with this.

:-)

I have an idea for my next game to utilize RMI or some other mechanism that will download a couple of levels worth of my code from my servers and run the freshly downloaded code.

Um, I think you think this is easier than it is.

First, RMI only matters for other processes, and you only have one process.

Second, Android does not have RMI.

Third, you can't install other APKs yourself without the user getting involved, at least to get through the "yes, I agree with the permissions" phase.

Fourth, if you attempt to get past those first three issues by trying to download DEX bytecode and use things like DexClassPath to dynamically introduce new code into your app, now you are opening up security holes in your app, if somebody performs a man-in-the-middle attack and substitutes in their own DEX files.

Fifth, anyone with the skills to get past your LVL stuff would be able to patch this up to incorporate your downloaded code into the APK proper.

There may be additional issues as well, but those are a starting set.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top