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

  • 551 views
Uploaded on

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

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
551
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
1
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Breaking Through Silos Going from Multiplatform to Cross-Platform using the Cloud. Philip Rangel, Lead Architect
  • 2. It is a complex world MULTI *.*
  • 3. Multi Platform Mobile PC & Browser TV
  • 4. Multi Controller • Resolution, CPU, GPU Touch & Gyro Keyboard & Mouse Controller
  • 5. Multi SDK • C++, C#, AS3, Java, JavaScript, LUA
  • 6. Multi App Store • Individual Guidelines and APIs (Billing)
  • 7. CLOUD AND ENGINES FOR THE RESCUE!
  • 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. Photon Cloud
  • 10. About Us WE <3 MULTIPLAYER
  • 11. Photon Cloud Realtime: Realtime Multiplayer. Turnbased: Turnbased Multiplayer. Chat: Turnkey chat. Unity Networking: Convenient Unity Multiplayer. 11
  • 12. 12
  • 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. Core Game Logic Connect > Matchmaking > Gameplay ---> Advertisement ---> Other stuff ;) ---> Analytics ---> ---> Push Notifications ---> ---> Social (Leaderboards etc) ---> ---> In App Purchase --->
  • 15. DEMO GAME
  • 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. 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. Connect > Matchmaking > Gameplay AccessToken from Facebook SDK: Inject into Photon SDK:
  • 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. Connect > Matchmaking > Gameplay
  • 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. Connect > Matchmaking > Gameplay Events • Properties • Join, Leave, … • Custom Raise Events • Reliable/Unreliable • Cached Events • Interest Groups
  • 23. Connect > Matchmaking > Gameplay • Game Properties are used to store – State of the Board – Player in Turn – Player Scores
  • 24. Webhooks • HTTP/JSON callbacks for core events – Room: create, close, load – Player: join, leave – Data: events, properties • Webhooks give you complete control
  • 25. Setting up Webhooks • Base URL • Entry point for each callback
  • 26. DEMO WEBHOOKS
  • 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. GameClose
  • 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. WebRPC - GetGameList Client: YOUR Server:
  • 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. 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. 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. 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. Azure Blob Storage • • • • • Install-Package WindowsAzure.Storage (VS) Create blob client Get container reference Get BlockBlob reference Upload:
  • 36. Azure Table Storage • • • • Install-Package WindowsAzure.Storage (VS) Create table client Get Table reference Insert your Entity
  • 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. Questions? philip@exitgames.com