Need helps to set up remote assets, assetbundle, assets downloading or streamable assets

Hey, guys,
I am in need help of setting up remote assets, assetbundle, assets downloading or streamable assets (whatever you want to call it).
I am pretty sure it is possible, as I have seen MMO made with unreal.
However, I couldn’t any documentation on how to achieve this.
There was a unreal wiki page talking about local streaming assets, but it wasn’t exactly what I need.

What I want to achieve is downloading assetbundle(an Unity term) from a cloud host, then extract the contents inside of bundle and load it to the game.

Could anyone share me your experience or point me to the right tutorial/ videos.
Thanks so much for your help.

After asking people in UE4 developer group on facebook, I came to conclusion that this is impossible out of box.
You will have to do write a few major pieces for the engine.
Here is the response I got from a MMO developer if anyone is interested, hopefully the response I post will help people who need to do the same thing.

“Hmm there is no Tutorial on that. But the only Problem you have to solve is Downloading file X from url Y to the machine that will run the Game. After that its the same thing as local streaming.”

“I have personally worked on 2 big MMO games and I highly recommend NOT streaming assets in on the fly. Unless you’re working on something akin to Farmville (which does dynamically download assets) , this is an idea that will bite you hard as your population of users grows. And I know people like to knock on games like Farmville and Castleville but quite a bit of complicated work went into the backend systems in order to host even trivial sprites and sprite animations on the fly.
I don’t want to start a debate, but Eduard’s idea is the correct one.”

“I’ve done dynamic streaming of assets from a server in both Unreal 3 and Unreal 4 but not without heavy modifications to the engine source code. This was back in 4.8 but I imagine that out of the box it’s still not possible, and even then, you would be doing a lot of C++ work. Essentially, you would need a blueprint that acts as a proxy object and it would need to derive from a parent class that overrides the loading behaviour for mesh and any other data you intend on steaming. Unreal has an overly complicated dependency system and you will have to tap into that too. I recommend simply spoofing one mesh for another to prove that your code works. Once you know you can substitute one asset for another when it starts to serialize, you need to start an asynchronous process that will communicate with your server to resolve the requested asset Uri along with whatever parameters are used to determine which vacation of the model you need, to a path. Then initiate a download into your streaming buffer. Assuming you are streaming a uasset, you would need to go through the process of having Unreal treat that streaming buffer as if it were the file read buffer for your asset if it were on your local machine. Then you essentially “trick” Unreal into continuing to serialize this uasset and then finally retarget your proxy object’s mesh component, or whatever components you intend on streaming to the asset in question.
To avoid downloading the item over and over again, you’ll want to cache that object in a folder or file somewhere. Your code then also needs to know when the file is already downloaded so you also need to have a table that lets you resolve the asset Uri and tell you if it is already local, then serialize it accordingly.
None of this is trivial nor will it just take a couple days if done right. For very experienced engineers this is still more than a month of work when you factor in unit tests and proper implementation. Also keep in mind that there are problems that tend to arise only when you have more than one asset in flight and due to the asynchronous nature of this excercise, the bug hunting will be soul destroying.”

Wow! Thank you so much for the post! I am stuck on the same problem and was wondering if you found a solution to this problem? If you did, could you please share?