Search Unity

I am worry about using IAP

Discussion in 'General Discussion' started by Shayke, Sep 14, 2018.

  1. Shayke

    Shayke

    Joined:
    Dec 8, 2017
    Posts:
    352
    Hi, i am about to release another game but this time i want to make an IAP system.
    I am a bit worried about selling things in game, i don't use any database and the game may reset when removing it and downloading it again.
    What do you recommend?
     
  2. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    Don't worry too much. it happens. Some people complain but many just understand that's how it is.

    Alternatively if you can make your IAP non consumable then you can simply restore those purchases after a re-install.

    We offer an account login system but many people don't even after buying an IAP even though the app clearly explains why they should (to keep purchases safe in the cloud). Some people prefer to remain anonymous than to signup to anything.

    If you're really worried about it then you could try making it clear to the user that deleting the app and app data will delete their progress and consumable IAP as it's an offline game with no cloud save.
     
  3. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,145
    Use a service to backup customer data. I haven't looked too deeply into the Google Play developer requirements but I can definitely tell you that Apple requires you to have a way to restore IAPs in the event that the customer's device loses them.

    https://developer.apple.com/app-store/review/guidelines/#in-app-purchase
     
  4. Shayke

    Shayke

    Joined:
    Dec 8, 2017
    Posts:
    352
    Thanks for the explanation!
    Btw your game become one of the top games, it is amazing!!!
     
  5. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    Apple only requires that you retore permanent purchases. They don’t care about consumables
     
  6. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    Well If I was a player and bought a boatload of virtual currency with real cash, then re-installed the game and lost it all, I'd be pissed. 1 star review right there!

    In today's games market, player data is expected to be persisted.

    Also if you're only storing player virtual currency locally it makes it really easy to hack your game.
     
    Ryiah, zombiegorilla and Antypodish like this.
  7. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,769
    Agree.
    As an example, anyone should do everything opposite, to what Fallout Shelter was made.
     
  8. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,051
    Indeed. F2P games only make money on iap and usually a bulk of it is consumables. That should all be persistent outside the app itself, both to take care of your players and and prevent hacking.

    Additionally, it’s rare that paying players arbitrarily uninstall an app directly. Most often a loss of locally stored data is due to a device change, either upgrade or replacement. They shouldn’t be punished for things like that. If you are going to sell virtual content, you need to make the effort to maintain it.

    I would recommend not using iap if you aren’t going to it correctly.
     
    Kiwasi, Meltdown and Ryiah like this.
  9. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    If people are buying virtual currency then they’re unlikely to uninstall and reinstall. And if they do it’ll be months later. If it becomes a large issue then patch in a system where people can redeem virtual currency woth a code you give them when they complain.

    I’m not saying it’s not a good idea to persist player data but i think it’s actually a fairly minor issue. Id much rather see if the game is popular and fun and cost effective first
     
  10. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,051
    Redemption codes are no longer allowed in the App Store.
     
  11. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,769
    This approach in not solving the major issue. Only leads from one problem to another. And higher maintenance cost.
     
  12. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    Oh ok. Lame. Well in my case i have a system where people can login and i credit their account. It is useful but it also cost time and money to maintain. And in fact I’ve probably had more bugs and complaints about lost data from people using the persistent cross platform system than from people who don’t
     
  13. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    My point is that the OP should not worry about IAP. The benefits in terms of likely success of your app far outweigh not having IAP because it’s not a perfect system.
     
  14. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,769
    Thats fair enough.

    Just out of interest. We know world is not perfect, nor fair. So there is certain amount of "scammers", which are trying claim refunds etc. when currency is involved Are you able to identify approximately, what ratio is of genuine claims vs fake ones? Of course, if you have any kind of such data?
     
  15. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    I don't get false claims, I use PlayFab so all receipts are validated. That's not to say people can't hack the app though, they definitely still can with an online profile system.

    My problems came from bugs in my code that didn't merge data correctly in some situations. Doing an online save system is not simple, it takes a lot of time and testing and you're more than likely have more bugs than people complaining about deleting their app and IAP. That's my experience.
     
    Antypodish likes this.
  16. bart_the_13th

    bart_the_13th

    Joined:
    Jan 16, 2012
    Posts:
    498
    why not using integrated cloud save from the platform? I dont know about apple's game center but doesnt google play service have save game data feature?
     
  17. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    Yeah, that and iCloud is another way to do it, but that too has it's own issues. I still had people in my old game complaining that they had saved in iCloud but couldn't access it on Android. :/

    Implementing platform specific cloud saves makes it more complicated to migrate to a cross platform solution later. but that's up to the OP as to if that's ever in the plan or not.
     
  18. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,051
    You shouldn’t have to do platform specific saves. All you need is a remote backend that saves critical data. When the player purchases items or currencies, validate and store on the backend, same with using and spending. When the session starts, pull that info from the backend. It’s always synced and persistent across installs. Hacking becomes very difficult, and more importantly, highly visible.
     
    Ryiah likes this.
  19. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    @zombiegorilla you are making games for which a million downloads is probably considered a massive failure. Its of course a no-brainer, and the story is similar quite a ways down the food chain. But at some point it doesn't necessarily make sense.

    For a small release integrating and paying upkeep on a game backend may turn IAP in to a net negative. Particularly if you want cross platform support which also implies something more than a device id (email accounts or social login). Then you have to start to take in to account how you introduce these features (do you make all users sign up? that could lose a lot of users at step one if its a casual game).

    There's also a risk that the back-end service disappears (happened to me during a release, not fun).

    Admittedly its getting much easier and cheaper these days, but there are alternatives: AppStore, Steam and PlayStore all allow restoration of purchases, so if consumables are only a small part of your game you could simply handle it with customer service (i.e. some one complains just give them what they ask for :) ).

    Not saying this is the way forward for most games, but for some suitably small games it needs to be considered.
     
  20. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,145
    PlayFab has a free tier with fixed price options.

    https://playfab.com/pricing/#plan-essentials-desktop

    Firebase has a free tier with both fixed price and flexible pricing options.

    https://firebase.google.com/pricing/

    GameSparks only incurs a fee once you pass 100,000 MAUs.

    https://www.gamesparks.com/pricing/

    For someone willing to build their own solution you can pay as low as $5 with a VPS.

    https://www.digitalocean.com/pricing/

    PlayFab is Microsoft. GameSparks is Amazon.
     
    Last edited: Sep 16, 2018
  21. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    I don't think either of the services offer an out of the box consumable management (admittedly its about two years since I researched in detail, but a quick google didn't show any obvious changes). This means you need to implement your own layer. You also need to tie in the authentication, account management, etc, which itself implies a bunch of game design decisions which can cost you (e.g. do you force everyone to sign up with a social/email account, or do you device anonymous logins which then leaves you to build account merging flows).

    Building a good solution for this is non-trivial, for an experienced team its probably a day of design a few days of implementing/test and then a few refinements over the life a project. For someone new to it all, they probably hack it together, and end up making a bunch of mistakes which are edges cases sure, but then changing device can be considered an edge case too.

    If your doing a niche game which might make say 50k over its life, do you actually gain anything from all this. Its quite possible that it doesn't make sense commercially.
     
  22. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    I would say a big company aquisition is as much a warning is a small company in this regard. They often make acquisitions as a chance to get some core tech or to hire some key people rather than with the intent of keeping a service alive. They can also shut things down on the turn of a dime if they aren't profitable, aren't' aligned with strategy, etc.

    Don't believe me check out Parse of stackMob. Want something more game specific: GameDonia was acquired by GSN and although they didn't technically shutdown they stopped taking new customers and they stopped fixing bugs/keeping up with changes to external APIs like IAP and social.

    Not that I think either of the mentioned services are going away. But it certainly can happen.
     
  23. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    Anyways, thats enough from me, the point was simply that going all-in and mirroring the big boys isn't always the right decision, and I think this is an example where in some cases you can comfortably and profitably skimp on costs. You don't have to agree.
     
    Last edited: Sep 16, 2018
  24. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,051
    As @Ryiah pointed out, it doesn't have to be expensive. Granted it isn't trivial, but little about game making is. You don't need logins, you tie the data to player id provided by the platform. Though some use google/facebook for larger social integration, but there are apis for that. Additionally, you will find some of the biggest games on app store rely on (or at least leverage) social network logins, it doesn't seem to be an impact to games on that scale. Certainly going the IAP route requires some effort, but doing it half-ass doesn't really pay off. If it is too hard for the OP, they should stick to ads, or IAP unlock for full version which can easily be set up via the the store SDKs. Purchases are (at least on the App Store) is something that needs to be restored, failing to violates their terms and runs the risk of removal, and of course lack of player confidence.

    This isn't a viable solution. If you don't have a real backend, you can't just fix their account. You can't use codes in game to award things. And there is a hard limit on vouchers from the store, which ideally you want to use for promotion. If you run out of vouchers fixing problems, you can't fix things for more customers. I guess you could solve the problem by buying them gift cards, but that isn't really a smart business move.
     
    Ryiah likes this.
  25. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    I very recently went through this process with a studio (they are niche but have survived for 10+ years, so I think reasonable to say they are seasoned professionals).

    The original feature set was anonymous + email + steam + FB, although through design and testing it was decided to go to Anonymous + FB for mobile/web and Steam only for Steam. We supported device switching and account merge, but isolated the steam (you can't merge your mobile account data in to steam without contacting support). IAP included consumables and upgrades and we included purchase restoration, as well as server side validation of consumable use.

    We used BrainCloud BaaS which does a lot of the heavy lifting.

    End to end to get this done there was around 50 days of design (and re-design), art, development, testing, and bug fixing. Getting everything feeling smooth for the users was quite a challenge.

    For a hobbyist building a simple game this level of effort doesn't make sense. If you are weekend warrior this would add 6-12 months to your dev time.

    ---

    To be clear I'm not disagreeing most of the options provided are viable and worthy of consideration, I just don't think its correct to throw the 'ignore it' option off the table. Certainly if you can get away with ads only or persistent IAP then go for it (you can restore purchases without a server on both iOS and Android). But if you deem consumables as key to the game, then I really don't think you need to go all in.

    And what kind of people are most likely to be taking this advice? Its not going to be the people with experience who know how to get things done, its mostly going to be the new people for whom implementing even a simple server based solution may be a significant challenge. A large portion of them will probably never produce a game; they get stuck trying to implement everything, and end up releasing nothing.

    ---

    MVP's are a thing, I'm almost certain I remember @zombiegorilla and @Ryiah commenting positively about them. If consumables are core to your monetisation then they are required in an MVP, but features like restoring or validating consumables are not.

    As long as your game is not a pile of spaghetti, adding this kind of capability later is generally quite easy. Do it when you prove that someone will actually spend money on your game.
     
    Ryiah and Kiwasi like this.
  26. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,041
    PS Will put my money were my mouth is. I'm paying someone to build a game that has an energy mechanic (consumable lives which can also be purchased).

    I'll not be releasing with a server based validation solution. Lets see if I end up losing a bunch of revenue due to disgruntled users or cheaters :)
     
  27. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,145
    Last edited: Sep 19, 2018
  28. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    I think we scared off the OP already. haha.
     
  29. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,051
    I guess for me it’s about simplicity and reliability. I’ve never been a fan of 3rd tools or solutions/services, always seemed to have replace or change them for a variety of reasons out of our control. Having our our own backend is pretty cheap, and gives us full control. Regardless of platform, everything uses the backend and beyond data storage it allows us to live updates to content and such. Also since our games are all real time multiplayer, the communications layer was already a need.
     
    Antypodish likes this.
  30. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    I agree but it also seems like overkill when all you really want is apple and google to allow people to restore consumables.... if only...
     
  31. CDF

    CDF

    Joined:
    Sep 14, 2013
    Posts:
    1,311
    Recently faced this problem, made worse with COPPA and GDPR compliance.
    In the end we used firebase, auto generate user login and password, ensure no collisions with existing ids with some backend goodness, then convert username to a 12 digit code and kindly asked the kids to remember it. We've had a few users complain about missing purchases after uninstall, some remember the code, others don't. Luckily, because our app is tied to real world toy scanning and qr codes, we can lookup a users game data by the codes they scan. Without that, we'd have a lot of digging and back and forth to do.

    I don't think there's a perfect way to do this, requiring a login is a showstopper for some people. And a no go for COPPA. Anon login is messy and requires some action from the user. Cross platform support, and all this stuff about data collection just makes it worse.
     
    Last edited: Sep 19, 2018
    zombiegorilla likes this.