GameSalad

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Lite-version vs In-App-Purchase

Hey!

I have this app, which has been out for about 1 year. It sells fairly well but I'd like to have a free version for ppl to evaluate the app before buying it.

Either I create a Lite / free version with limited functionality or I'll change the current version to free with limited functionality and sell "full version" functionality from with In App Purchase.

I'd love to go with the second choice: In App Purchase (to keep current app store statistics and reviews).
But I'm unsure of how I'd go about not to piss off my current users.

**Is it possible to give current users "Full version" status without having them buying it from inside the app?
**

Does someone else have any thoughts on this matter? I guess I'm not the first not to have thought about this from start.

Thanks!

Comments

  • ArmellineArmelline Posts: 4,733Member, PRO
    edited July 2016

    Yes, it's possible. But not flawlessly. (This is true whether you're using GameSalad or programming it from scratch.)

    You're presumably using at least some game attributes or tables to store some kind of progress. If not, then it's a lot less possible!

    Let's say you're using game.HighScore to store the player's high score. Which attribute you use doesn't really matter as long as it's one that will definitely be set to something if the player owns the game.

    When the player updates or downloads the game, you check the current value of game.HighScore. If that attribute is set to 0, it's safe to assume the player did not already own the game, and you set the game to "free version". If there's any value in that attribute, the player owned the game already.

    You need, however, to make sure you don't do this check the next time they open the game. So you need another new attribute, let's call it game.ExistingGame. When you perform that previous check, you set game.ExistingGame to true. And you only perform that check if game.ExistingGame is false.

    The end result of this is that when the game is opened, it checks if game.ExistingGame is true or false. If it's true, nothing else needs to be done. If it's false, it check if game.HighScore is 0 or a value. If it's zero, the game presumes this is a fresh installation. If it's a value, the full version of the game is unlocked.

    There are two potential pitfalls, though. One is if someone bought the game but doesn't actually play it before running your new update. The other is if a player then deletes the game. Any new installation will presume it's a new user as there will be no data saved due to the fresh installation.

    You can give old players the ability to reinstall the game AFTER they've installed the update by using a free IAP that's offered to them if the game recognises an existing installation. But that doesn't help people who downloaded your game, deleted it, then download it again after the update.

    Ultimately the only way to avoid ANY users losing their progress is to have two different versions of the game - the paid one and the free one. But even big publishers rarely do that. I've got several top 10 paid games I paid for and now are riddled with ads because the developers made the game free and didn't even bother to take existing users into account.

  • Braydon_SFXBraydon_SFX Posts: 0Member, Sous Chef, PRO, Bowlboy Sidekick GameSalad Employee

    This is a question I get asked a lot and @Armelline did a great job explaining one way to approach this. Great info!

  • PhilipCCPhilipCC Encounter Bay, South AustraliaPosts: 1,390Member
    edited July 2016

    Elegant solution above.

    @Armelline said:
    Ultimately the only way to avoid ANY users losing their progress is to have two different versions of the game - the paid one and the free one. But even big publishers rarely do that. I've got several top 10 paid games I paid for and now are riddled with ads because the developers made the game free and didn't even bother to take existing users into account.

    A question here is, do you still play those games, or are the ads too annoying, or, like me, did you only buy them for market research?

  • sethmansethman Posts: 15Member

    Armelline. That was an absolutely awesome answer! Well, I'd rather you'd have said there was an easy way to do it flawlessly, but this will suffice.

    This was what I kind'a suspected when I've been mulling it over.

    I guess I'll be heading for the high score road on this, though I actually don't have any functions of that kind. (The game is rather an app to help for parents to get their kids brushing their teeth, not really a game that is)

    I'll set a save attribute for every "app start" in a first update and then later use that to see who's a pro user and who's supposed to buy the upgrade. But I guess there is going to be a couple of angry users though.

    Thanks for a terrific answer!

Sign In or Register to comment.