Integrating a Cloud Service Joe Graf Epic Cog



















- Slides: 19
Integrating a Cloud Service Joe Graf @Epic. Cog
Overview • Example from our games • Support in UE 4 to achieve that
Cloud Based Events • Timed gameplay changing events – The limited time draws players in • Used to make your game “evergreen” – Retains players longer – Adds to the fun
Gears of War • Gears of War 2 – Used to make gameplay balancing changes – Primarily, to create custom Horde events • Gears of War 3 – Added the ability to change standard game modes • Restrict weapons or change which ones were present – Allowed for custom playlists for matchmaking
Infinity Blade • Infinity Blade 2 – Used to support social challenges, Clash. Mobs – Custom INI files detailing the challenges • Infinity Blade 3 – – Added the ability to patch configuration settings Used to run special helmet events IAP sales The treasure chest in the Hideout
What’s Needed • Cloud Service to deliver files • Game support to download files • Game support to merge files into game
Cloud Service • System (game) cloud storage – Upload of files with start/stop times – Listing of files with full meta data – Serving of files to game client
Game Downloader • Reads list of files from the Cloud Service – Verifies signatures to detect out of date files – Catches tampered with files too • Downloads any missing files – Caches files to device with per device encryption – Optimization to reduce server bandwidth costs
Game Merging • Gets the list of event files • For each file, determines how to merge – INI & loc files get merged into the config cache – Content files replace/add to existing
Caveats • Game must design for this – Must make sure that game is data driven via INI or Data. Table objects – Takes planning from the beginning • Not everything can be updated – E. g. very early engine config values
Game to Service Interaction IHttp. Request IHttp. Response Cloud Service(s)
Class Overview • FHttp. Module • IHttp. Request • IHttp. Response
FHttp. Module • Module for generic HTTP management • Performs ticking • Handles lifetime management
IHttp. Request • Abstract interface to a platform specific request object • Contains – – URL Verb (GET, PUT, POST, DELETE) Headers Payload • Asynchronous submission to end point
IHttp. Response • Abstract interface to a platform specific response object • Created upon request completion • Contains any headers & payload data
TJson. Reader/TJson. Writer • Base template classes for parsing/creating JSON payloads • Generally not used directly
Online. Json. Serializer • Macro based serialization for native types without reflection • Facebook account serialization: BEGIN_ONLINE_JSON_SERIALIZER ONLINE_JSON_SERIALIZE("id", User. Id); ONLINE_JSON_SERIALIZE("username", User. Name); ONLINE_JSON_SERIALIZE("name", Real. Name); ONLINE_JSON_SERIALIZE("gender", Gender); ONLINE_JSON_SERIALIZE("locale", Locale); END_ONLINE_JSON_SERIALIZER
FJson. Objectx. Converter • Used to serialize JSON to/from a UObject • Uses UObject reflection system • Easiest to use
Questions? Documentation, Tutorials, and Help at: • Answer. Hub: http: //answers. unrealengine. com • Engine Documentation: http: //docs. unrealengine. com • Official Forums: http: //forums. unrealengine. com • Community Wiki: http: //wiki. unrealengine. com • You. Tube Videos: http: //www. youtube. com/user/Unreal. Development. Kit • Community IRC: #unrealengine on Free. Node Unreal Engine 4 Roadmap • lmgtfy. com/? q=Unreal+engine+Trello+



















