I'm making a mobile game and had the idea of using transfer codes for taking one account to another device.

Lately, I've seen this function being used in a lot of mobile games, you go to the game settings, issue a transfer code, input it in the new device and the game account is transferred. However it's not clear for me as to how this works? since many games I have seen with this function can't transfer premium currency between different OS, for example. Or some of them, after transferring the game disable the old device from transferring back the same account before certain time has passed.

I have been looking for some information about this system but haven't been able to find out anything. So I was hoping if anyone could point me into the right direction, specially in the point about currency transfer between different OS.

Edit: I'll try to be a little more clear about the issue. I want to have a feature where the user cas generate a code to transfer his account or progress to another device, that's it.

The other question I had was because this kind of systems do exist actually. Mostly on games developed in Asia. They allow you to transfer your progress this way to any other device BUT if you do this from one OS to another normally you can keep your progress intact but not the in-game currency. So I was wondering why

  • \$\begingroup\$ Hello, and welcome to gamedev.se! Could you please clarify your question? What issue are you trying to solve? Keep in mind that a feature of this site is to "accept" the most useful answer, and the way this post is written now, it's hard to determine what would one would need to write as an answer. \$\endgroup\$ – Vaillancourt Mar 27 '18 at 17:17
  • \$\begingroup\$ Are you referring to having a login and saving player data in the cloud so the player has access to it no matter what device they are playing on? \$\endgroup\$ – Jason Crosby Mar 27 '18 at 17:26
  • \$\begingroup\$ Ok I made an edit maybe this way it's clearer? \$\endgroup\$ – JMorales Mar 27 '18 at 20:49

It is generally not allowed to transfer currency between payment systems. If the price of Gold is lower on Android by a bit and you can transfer to iOS, Apple loses their 30% cut of any sales made on Android and transferred over.

  • \$\begingroup\$ Ahhh that makes sense to me, now I'm only left with finding how this transfer code systems work. \$\endgroup\$ – JMorales Mar 27 '18 at 20:56

Why is due to platform provide rules. Transfering certain content, is not allowed by Apple in app purchase guidelines:

3.1 Payments

3.1.1 In-App Purchase: If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. ...

I wasn't able to find anything definitive for Android, but I suspect they have similar restrictions. In general though, any time you have a system that effectively allows real world currency to be moved from one party to another, there tends to be more rules & regulations due to the potential for misuse, such as money laundering. In addition, the platforms don't want to make it easy to do an end run around the % the collect from IAPs.

How to actually transfer the content is a broad question & the specifics will vary somewhat depending on the situation. Generally speaking, you need to:

  • generate a code, ideally it should be:
    • unique (for instance a GUID) to avoid collisions
    • no longer than necessary to avoid frustrating users
    • unpredictable to avoid scamming exploits
  • associate the code with the source account
  • when the code is used by a destination account
    • transfer the relevant content between accounts on the server side
    • update the clients to reflect the server side changes
  • \$\begingroup\$ So... That means that I will need to keep record of the device ID's associated with each game account? \$\endgroup\$ – JMorales Mar 28 '18 at 5:07
  • \$\begingroup\$ There's not a simple yes or no to that - it depends on your situation. If the content transferred is not regulated (for instance, money backed game currency), then device IDs probably are not needed. You might want to track it in order to reduce the risk of fraudulent transfers though. If you do track it, you need to be flexible in order to accomodate phone upgrades, etc.. \$\endgroup\$ – Pikalek Mar 28 '18 at 14:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.