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