I am currently creating an android game using Unity 3.4 Android. I was just curious how you would go about making my app a “trial” version with an option on the android market to purchase either a full version unlock key, or a product key. I figured one way was to just release a demo version of the game that only had a level or 2 included with it and then release a full version of the game that the user would pay for. Any thoughts?
I think the general approach is the latter one you mentioned. I see apps behave that way on the market all the time - where there’s some kind of free “appetizer”-version, and then a full version of the same program that costs something. It’s almost never unlock/key based.
I think restricting the available levels to one or two is probably a lot easier for you to program as well - You can simply make a build where you remove check marks from those Scenes in the Build Settings. If you make the solution unlock/key based, then you have to add conditionals in the code that checks for the key all the time to make sure the user can’t access restricted material.
As a finishing comment, since the market distributes apps only and not files of data, you’d have to make the key an app, i.e. a key-generator that people would then pay to download. And once that’s done, what stops one user from sharing the generated key, or running the generator again to generate a different key? It would have to involve some sort of webservice-based security that makes sure generated keys are unique, and tracks a key’s status as either used or unused. Nah, screw that. Go with the 2-level trial.
I came across this answer while searching, and have since found what I think is a better solution as of 2014. So just posting this for future readers to save them time.
I believe that “In-App Billing” is a better solution now, because it is easier for your users to make “impulse purchases” – just a few clicks, they don’t have to find and download a different version of your app.
http://developer.android.com/google/play/billing/api.html
With V3 of the API you can query to see what has been purchased even without an Internet connection. True, since the info is saved on the device in a local cache, I’m sure there is some way for that to be hacked, but anyone will to do all of that work to save a few $$$ (unless your app is really expensive), probably wasn’t willing to pay for your app anyway – so no lost revenue.
The same model will also work for Windows Store in-app purchases API. Not sure about iOS as Apple charges too much for businesses to publish on their store, so I haven’t researched that one yet. (Google = $25 lifetime, Microsoft = free w/ BizSpark, Apple = $99/year and DUNS# required)