This is a interesting thing I found out in market competitor. It seem to be really nice feature to have.
Faster initial download mean more chance to increase download amount. Most important can use it to hotfix and skip through IOS and Android update app system.
Is that nakama have this feature at the moment or is that able to accomplish within the system currently have in the nakama?Thanks.
Hi @john. I’ve had a look at the DLC option in the link you provided. We’ve worked with lots of game projects that have needed over the air updates. These requirements are usually more specific and tailored to the game design than what I saw is available based on those docs.
There’s a great way to solve this problem with Nakama. The reason we don’t have an official API for it is because it would require a new database dependency on a large object store (S3, GCS, Minio, etc). The approach works as follows:
Write a couple of RPC functions to handle the frontend and backoffice work to import new assets to be made part of a download bundle (the contents of the bundles can be whatever file/binary resources you like). These RPC functions would be written in Go and loaded by the server at startup. You’d pull in a dependency on an S3 API library to talk directly to the object store.
The main RPC function called by game clients would submit their most recent cached bundle version/ID or none at all if it’s a new device. The server-side logic would look up the list of bundles that need to be sent to the client to bring it up to date on the latest set of resources/assets. The response of the function would be the direct URLs to the assets to download with a short lived access token to authenticate with the object store.
The game clients would go direct to the URLs returned as part of the RPC response to fetch the data from the object store. This is the most cost effective approach and you could decide whether to use a CDN or not if you want to optimize for delivery speed to players over download costs.
The whole feature is probably no more than a few days of development work once you’ve decided how you want to represent the concept of bundles and whether you’d want different types of bundles for different groups of resources or not.
Hope that helps.
Thank you for your reply.
I would try it myself lately. But, it seem to be little bit tricky and hard for the one who only know a little networking knowledge. If nakama can have it include in future it will be great.