Integrating a Cloud Service Joe Graf Epic Cog

  • Slides: 19
Download presentation
Integrating a Cloud Service Joe Graf @Epic. Cog

Integrating a Cloud Service Joe Graf @Epic. Cog

Overview • Example from our games • Support in UE 4 to achieve that

Overview • Example from our games • Support in UE 4 to achieve that

Cloud Based Events • Timed gameplay changing events – The limited time draws players

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

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

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

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

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

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

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

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)

Game to Service Interaction IHttp. Request IHttp. Response Cloud Service(s)

Class Overview • FHttp. Module • IHttp. Request • IHttp. Response

Class Overview • FHttp. Module • IHttp. Request • IHttp. Response

FHttp. Module • Module for generic HTTP management • Performs ticking • Handles lifetime

FHttp. Module • Module for generic HTTP management • Performs ticking • Handles lifetime management

IHttp. Request • Abstract interface to a platform specific request object • Contains –

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

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

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

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

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 •

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+