DLC Support on Mobile platforms (Android and iOS)

Greetings.

I want to make a game where you can have a default map / track and a default car and then to have the option to possibly buy new tracks/maps and cars.

The thing is, I am a little confused as to what would be the best choice to follow in terms of development.

Since the size of the application will definitely be bigger than 50 MB, it will require additional download from the App Store from Apple or Google Play services.

What would be better?

a) After downloading the installer from Google Play / iOS App Store, have the game download ALL the assets/maps/cars and then use in-app purchases to unlock the non-consumable features or.

b) Make an application that downloads each map/car separately through some sort of DLC system?

If I am not mistaken, option a) would be easier as the in-app purchases would be simpler and option b) requires a pro license for both android and iOS in order to create asset bundles to download later.

Thoughts? Advice? Links to tutorials (I couldnā€™t find much on this particular topic)?

Thanks in advance.

Also, Iā€™m a little confused as to how to store the DLC content. Would I require my own hosting for that or would Apple/Google take care of hosting/bandwidth for said DLC?

Hi,
Iā€™m also interested in finding out more about this. I posted a thread a couple of days ago but no response.

re:"Would I require my own hosting for that or would Apple/Google take care of hosting/bandwidth for said DLC? "
Iā€™d say that would be up to you. Probably on Amazon or Playtomic or ?

Is anyone actually using DLC with IAP?

ty!

Yes, you can fairly easily setup an ā€˜after the factā€™ IAP download system.

This is what Asset Bundles are designed and should be used for. You can pack up any kind of content in external ā€˜bundlesā€™ and deliver them easily to your client after the fact.

The most complicated part is setting up the IAP, although there are Prime31ā€™s plugins or other options for handling the purchase side. Once your app gets the callback for the extra content, then the process of delivering the content to the client is simply a matter of using the www class to download the asset bundle and then loading the content the same as any other resource.

Of course youā€™d probably want to have some kind of back-end database layer managing what content each user has unlocked / purchased etc as well. There isnā€™t an end to end solution for all of this stuff, but itā€™s not particularly difficult, although a bit time consuming to set it all up initially.

@gekidoslair

Thanks for the info. I figured that might be the case, itā€™s good to have confirmation.

I thought I might be able to get away with just straight www downloads but found a serious bug with it (I think, at least for one of my specific cases) plus it needs some other workarounds on the plugin side for my use case. It looks like AssetBundles are my only solution path, but Iā€™d have to upgrade my iOS/Android Basic - at least I can prototype it with Unity Pro desktop.

Iā€™ve done some prototyping over the last few days testing parts of the solution and yes, while the full solution is not ā€œdifficultā€ it is involved and thereā€™s some traps to be aware of.

UniBill Outline Games looks interesting from a one stop IAP system perspective.

Unite 2012 also has a useful presentation on AssetBundleshttp://video.unity3d.com/video/6944412/unite-2012-asset-bundles
and also a useful process tool for free download.

Better get hacking then!

ty!

hello sonicviz!

how did you solve the problem with IAP and DLCā€¦ did you write your own backend? what was the bug with the WWW Class download?
If you write your own backend? how did you map the User to allready downloaded Data? Did you retrieve apple id/gmail id per user?

Thereā€™s a couple of things you need to distinguish.

  • Payment for DLC
  • Storage and secure access to DLC

I ended up working with UniBill for #1 and Amazon S3 for #2. The linkage between the two would have to be done by you once you receive confirmation of payment from the store (apple, amazon, google etc) Ditto for how you maintain records of such.

#2 Storage and secure access to DLC is an issue all by itself

I submitted a tutorial (with full C# code) over a week ago to Asset Store that explains the whole process of using Amazon Web Services securely via a Token Vending Machine using S3 storage as the example, but itā€™s not been reviewed as yet.
It was quite a bit of work understanding the security models available, and the problems and workarounds, and because of that Iā€™m currently putting a price on it as a way of partially funding my development. Still donā€™t know if/when Unity will pass it though.

The pdf walkthrough is 18 pages, and I have tried hopefully to explain it from a beginners perspective by a sequence of linked tutorials. Easy to skip through the ones you know if you have some experience.

It does take some work on your part if you want to go this route, but maybe itā€™s suitable for some apps that donā€™t want to use services like PlayerIO etc (which has an authentication + file system storage etc)

Hope that helps!

@sonicviz - is the tutorial up on the Asset Store yet? Iā€™d like to take a look at it ASAP, so I can compare the different S3 security methods to discuss which ones my current client is willing to go with. I have a basic setup but the files are currently publicly available.

Unfortunately it was knocked back as it uses some Apache licenses Open Source code. Unity seems to have changed the Asset store TOS to exclude many open source licenses for some reason. Thereā€™s a few existing products that have now been taken down it seems.

My tutorial is based on explaining how to setup and use an anonymous token vending machine from Unity, with or without SSL. It does not go into full SSL validation on the client side however.

Thinking of putting it up on my own store if thereā€™s enough demand for it.

I understand, seems like they want to avoid any sort of GPL issues.

For what itā€™s worth, Iā€™m interested in purchasing your Tutorial, as Iā€™m new to using something like AWS (whenever Iā€™ve dealt with that sort of code it was a custom file server on a secure VPN) and am interested not only because I have a client with mobile DLC needs, but because Iā€™m looking into a long-term solution for my companyā€™s cross-platform DLC plans as we also want to support PC consoles in addition to mobile for our own titles.

PM me

Unibill now provides a cross platform, integrated solution for selling Downloadable Content.

Unibill handles everything from In App Purchase, through server side receipt verification to resumable content downloading, whilst your code stays clean and cross platform.

Featuring -

  • Cross platform, unified API
  • Security; server side verification of purchase receipts
  • Fast downloads; edge caching across the US, Europe and Asia
  • Resumable Content downloads
  • Automatic download verification and unpacking
  • Full Editor support; test everything without leaving the Editor
  • Supports Unity Basic

I have created tutorial series about how to implement DLC system using Asset Bundle.

here is the link to the video :

In this video i explain you how to make DLC system in Unity 5, the version of unity that i am using is 5.3.4f1

This system, also has DLC Listing system, so everytime you want to update your DLC list of your game, you donā€™t need to edit it from unity to make new UI, you can edit the file called dlc-list.txt that are stored in server.

The DLC download system has automatic version checking, it will delete unused DLC that are no longer available in the server. and also will update the DLC file based on file name increment on the server.

This Downloadable Content system is suitable for most unity games.

1 Like