Breaking Through Silos
Going from Multiplatform to Cross-Platform
using the Cloud.
Philip Rangel, Lead Architect
It is a complex world

MULTI *.*
Multi Platform

Mobile

PC & Browser

TV
Multi Controller
• Resolution, CPU, GPU

Touch & Gyro

Keyboard & Mouse

Controller
Multi SDK
• C++, C#, AS3, Java, JavaScript, LUA
Multi App Store
• Individual Guidelines and APIs (Billing)
CLOUD AND ENGINES
FOR THE RESCUE!
Evolution of the „Cloud“
You are on your
own!
Iron

Scale fast and
patch (fast)!

Scale fast and
convenient!

Relax!

Infr...
Photon Cloud
About Us

WE <3 MULTIPLAYER
Photon Cloud

Realtime: Realtime Multiplayer.
Turnbased: Turnbased Multiplayer.
Chat: Turnkey chat.
Unity Networking: Conv...
12
Cloud Stats
• Global Regions: US, EU,
Singapore, Japan (soon
Korea, China)
• 90k+ CCUs
• 1.2 Petabyte/month
• 4m+ messages...
Core
Game Logic

Connect > Matchmaking > Gameplay
---> Advertisement --->
Other stuff ;)
---> Analytics --->
---> Push Not...
DEMO GAME
Connect > Matchmaking > Gameplay
• Connect closest Region
US, Europe, Asia (Singapore), Japan

• Authentication with faceb...
Connect > Matchmaking > Gameplay
Sample „facebook“ flow is:
1.
2.
3.
4.
5.

Establish facebook session (facebook SDK)
Inje...
Connect > Matchmaking > Gameplay
AccessToken from
Facebook SDK:

Inject into
Photon SDK:
Connect >

Matchmaking > Gameplay

• List-Lobby for list of games
• Multiple lobbies e.g. to separate games
by type
• Join...
Connect >

Matchmaking > Gameplay
Connect > Matchmaking >

Gameplay

• Rooms with players
• Events: Join, Leave, ... , Custom
• Properties for players and r...
Connect > Matchmaking >

Gameplay
Events
• Properties
• Join, Leave, …
• Custom
Raise Events
• Reliable/Unreliable
• Cache...
Connect > Matchmaking >

Gameplay

• Game Properties are used to store
– State of the Board
– Player in Turn
– Player Scor...
Webhooks
• HTTP/JSON callbacks for core events
– Room: create, close, load
– Player: join, leave
– Data: events, propertie...
Setting up Webhooks
• Base URL
• Entry point for
each callback
DEMO WEBHOOKS
Webhook GameClose
• Called when last player disconnects from
game (important: disconnect != abandon)
• Game state is hande...
GameClose
WebRPC
• HTTP/JSON callbacks for functions
– Input: Parameters
– Output: Return values

• Freedom to write a custom API
– ...
WebRPC - GetGameList
Client:

YOUR Server:
Azure Websites + Table + Blob
• Azure Websites perfect for
Webhooks
– WebAPI == RESTful APIs (HTTP + JSON)
– Global
– RAD ...
Azure Websites (WAWS)
• Managed Service for your Web based
applications
• Develop locally and deploy from VS
• Options:
– ...
Table vs Blob Storage
• Where do we save?
– Game State: Azure Blob Storage
– Game List: Azure Table Storage
• One Partitio...
Azure Blob & Table Storage
• What is Azure Blob Storage?
– Like Amazon S3
– Rest API: Uploading blobs per HTTP

• What is ...
Azure Blob Storage
•
•
•
•
•

Install-Package WindowsAzure.Storage (VS)
Create blob client
Get container reference
Get Blo...
Azure Table Storage
•
•
•
•

Install-Package WindowsAzure.Storage (VS)
Create table client
Get Table reference
Insert your...
Memory Game
1.
2.
3.
4.
5.

https://www.exitgames.com/en/Turnbased
Register & request Early Access
Download Unity Memory D...
Questions?
philip@exitgames.com
Breaking through silos - From multi to true crossplatform using the cloud
Upcoming SlideShare
Loading in...5
×

Breaking through silos - From multi to true crossplatform using the cloud

700

Published on

Today, the growing platform fragmentation has become one of a game developer's key concern.

Engines such as Unity have gained strong popularity as a viable assistance in addressing the issue.

However, they only solve part of the equation: regardless of the supported platforms, games often tend to live in silos, either per device or per platform. The reality shows that most of us have multiple devices on which we play the same games - and also that our friends don't necessarily own the same devices as we do. All the same, being able to play with them regardless of the device used, is crucial in making a game more fun through social means.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total Views
700
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "Breaking through silos - From multi to true crossplatform using the cloud"

  1. 1. Breaking Through Silos Going from Multiplatform to Cross-Platform using the Cloud. Philip Rangel, Lead Architect
  2. 2. It is a complex world MULTI *.*
  3. 3. Multi Platform Mobile PC & Browser TV
  4. 4. Multi Controller • Resolution, CPU, GPU Touch & Gyro Keyboard & Mouse Controller
  5. 5. Multi SDK • C++, C#, AS3, Java, JavaScript, LUA
  6. 6. Multi App Store • Individual Guidelines and APIs (Billing)
  7. 7. CLOUD AND ENGINES FOR THE RESCUE!
  8. 8. Evolution of the „Cloud“ You are on your own! Iron Scale fast and patch (fast)! Scale fast and convenient! Relax! Infrastructure Platform Backend aaS aaS aaS
  9. 9. Photon Cloud
  10. 10. About Us WE <3 MULTIPLAYER
  11. 11. Photon Cloud Realtime: Realtime Multiplayer. Turnbased: Turnbased Multiplayer. Chat: Turnkey chat. Unity Networking: Convenient Unity Multiplayer. 11
  12. 12. 12
  13. 13. Cloud Stats • Global Regions: US, EU, Singapore, Japan (soon Korea, China) • 90k+ CCUs • 1.2 Petabyte/month • 4m+ messages per sec • Top tier devs: Indies, 22cans, Msft, Glu, Madfinger, etc.
  14. 14. Core Game Logic Connect > Matchmaking > Gameplay ---> Advertisement ---> Other stuff ;) ---> Analytics ---> ---> Push Notifications ---> ---> Social (Leaderboards etc) ---> ---> In App Purchase --->
  15. 15. DEMO GAME
  16. 16. Connect > Matchmaking > Gameplay • Connect closest Region US, Europe, Asia (Singapore), Japan • Authentication with facebook SDK, Steam SDK, Parse SDK, PHP ... • Session from Facebook/Steam/Parse/PHP can be verified by Photon Cloud
  17. 17. Connect > Matchmaking > Gameplay Sample „facebook“ flow is: 1. 2. 3. 4. 5. Establish facebook session (facebook SDK) Inject session token into Photon GameClient Choose a region (EU, US, JP, Asia, …) Connect to Photon Cloud Session token gets verified
  18. 18. Connect > Matchmaking > Gameplay AccessToken from Facebook SDK: Inject into Photon SDK:
  19. 19. Connect > Matchmaking > Gameplay • List-Lobby for list of games • Multiple lobbies e.g. to separate games by type • Join a random room, with optional filtering (e.g. Map=de_dust) • Find friends • SQL-Lobby for flexible queries
  20. 20. Connect > Matchmaking > Gameplay
  21. 21. Connect > Matchmaking > Gameplay • Rooms with players • Events: Join, Leave, ... , Custom • Properties for players and room 2 1 Room Properties Map: Snow“ State: „ahd72...“ name: „r2d2“ max: 4 3 Event Cache ... Events ... 4 Player Properties State: 18 Name: „Peter“
  22. 22. Connect > Matchmaking > Gameplay Events • Properties • Join, Leave, … • Custom Raise Events • Reliable/Unreliable • Cached Events • Interest Groups
  23. 23. Connect > Matchmaking > Gameplay • Game Properties are used to store – State of the Board – Player in Turn – Player Scores
  24. 24. Webhooks • HTTP/JSON callbacks for core events – Room: create, close, load – Player: join, leave – Data: events, properties • Webhooks give you complete control
  25. 25. Setting up Webhooks • Base URL • Entry point for each callback
  26. 26. DEMO WEBHOOKS
  27. 27. Webhook GameClose • Called when last player disconnects from game (important: disconnect != abandon) • Game state is handed in as byte[] containing – Player Properties – Room Properties – Cached events • Restored when GameLoad is called
  28. 28. GameClose
  29. 29. WebRPC • HTTP/JSON callbacks for functions – Input: Parameters – Output: Return values • Freedom to write a custom API – GetGameList, GetPlayerSkill, LoadLevel, ... • Translation from Binary to JSON and back is done automagically
  30. 30. WebRPC - GetGameList Client: YOUR Server:
  31. 31. Azure Websites + Table + Blob • Azure Websites perfect for Webhooks – WebAPI == RESTful APIs (HTTP + JSON) – Global – RAD with Visual Studio: Deploy, Debug • Azure Table Storage • Azure Blob Storage
  32. 32. Azure Websites (WAWS) • Managed Service for your Web based applications • Develop locally and deploy from VS • Options: – Scale: free, shared, standard (w. auto scale) – Staged deploy – Backup – Monitoring w. Alerts – WebJobs
  33. 33. Table vs Blob Storage • Where do we save? – Game State: Azure Blob Storage – Game List: Azure Table Storage • One Partition per User • One Row per Game • Why Azure Storage? – ‘cheap’ fast data store – its save (High Available & Geo Redundant) – … & it scales!
  34. 34. Azure Blob & Table Storage • What is Azure Blob Storage? – Like Amazon S3 – Rest API: Uploading blobs per HTTP • What is Azure Table Storage? – ‘Like’ Google BigTable or AmazonDynamo – Data in Rows & Columns, but Schemaless – ‘Better’ Key/Value store – ONE INDEX only: PartitionKey + RowKey – Rest API: CRUD using JSON per HTTP
  35. 35. Azure Blob Storage • • • • • Install-Package WindowsAzure.Storage (VS) Create blob client Get container reference Get BlockBlob reference Upload:
  36. 36. Azure Table Storage • • • • Install-Package WindowsAzure.Storage (VS) Create table client Get Table reference Insert your Entity
  37. 37. Memory Game 1. 2. 3. 4. 5. https://www.exitgames.com/en/Turnbased Register & request Early Access Download Unity Memory Demo https://github.com/exitgames Pull photon.waws.turnbased.webhooks
  38. 38. Questions? philip@exitgames.com

×