Download presentation
Presentation is loading. Please wait.
Published byRosanna Lester Modified over 9 years ago
1
Integrating a Cloud Service Joe Graf @EpicCog
2
Overview Example from our games Support in UE4 to achieve that
3
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
4
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
5
Infinity Blade Infinity Blade 2 –Used to support social challenges, ClashMobs –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
6
What’s Needed Cloud Service to deliver files Game support to download files Game support to merge files into game
7
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
8
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
9
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
10
Caveats Game must design for this –Must make sure that game is data driven via INI or DataTable objects –Takes planning from the beginning Not everything can be updated –E.g. very early engine config values
11
Game to Service Interaction Cloud Service(s) IHttpRequest IHttpResponse
12
Class Overview FHttpModule IHttpRequest IHttpResponse
13
FHttpModule Module for generic HTTP management Performs ticking Handles lifetime management
14
IHttpRequest Abstract interface to a platform specific request object Contains –URL –Verb (GET, PUT, POST, DELETE) –Headers –Payload Asynchronous submission to end point
15
IHttpResponse Abstract interface to a platform specific response object Created upon request completion Contains any headers & payload data
16
TJsonReader/TJsonWriter Base template classes for parsing/creating JSON payloads Generally not used directly
17
OnlineJsonSerializer Macro based serialization for native types without reflection Facebook account serialization: BEGIN_ONLINE_JSON_SERIALIZER ONLINE_JSON_SERIALIZE("id", UserId); ONLINE_JSON_SERIALIZE("username", UserName); ONLINE_JSON_SERIALIZE("name", RealName); ONLINE_JSON_SERIALIZE("gender", Gender); ONLINE_JSON_SERIALIZE("locale", Locale); END_ONLINE_JSON_SERIALIZER
18
FJsonObjectxConverter Used to serialize JSON to/from a UObject Uses UObject reflection system Easiest to use
19
Questions? Documentation, Tutorials, and Help at: AnswerHub: Engine Documentation: Official Forums: Community Wiki: YouTube Videos: Community IRC: Unreal Engine 4 Roadmap lmgtfy.com/?q=Unreal+engine+Trello+ http://answers.unrealengine.com http://docs.unrealengine.com http://forums.unrealengine.com http://wiki.unrealengine.com http://www.youtube.com/user/UnrealDevelopmentKit #unrealengine on FreeNode
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.