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.
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)