SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
최명근 - mgchoi@google.com
Cloud Sales Engineer
Google Cloud Platform Workshop
01 Google Cloud Platform
3
BigQuery
Big Data
Pub/Sub Dataflow Dataproc Datalab
Compute
Compute
Engine
App Engine Container
Engine
App Services
Cloud EndpointsPrediction API Translate API
Storage
Cloud
Storage
Cloud SQL Cloud
Datastore
Bigtable
Google Cloud Platform
Building what’s next 4
70 edge locations
33 countries
The broadest reaching network
of any Cloud Provider
Google-Grade Networking
Live Migration = No Downtime
GCE Custom Machine Types
Average Savings: 19%
Unique GCE Capabilities
Industry-leading IO performance
Per-minute billing & Sustained Use Discounts
Super-fast startup times: 1000 VMs in < 5 minutes
High throughput to storage at no extra cost
NEW: Resize disks with no downtime
Multi-Cloud Reality
Public Cloud Private Cloud Open Source
& APIs
Multi-cloud monitoring & logging
Tracing, Error Reporting, Debugging
Intelligent defaults
Apps
Kubernetes
Builds on our 10 years of container management
Designed for multi-cloud
Broad industry support
02 Mobile Game Pattern on GCP
12
Typical requirements for a compelling mobile game include:
1. Game features :
● Dynamic game content
● Game data stored outside of devices
● Leaderboard
● Multiplayer mode
● Player matching
● Board generation
● Server site bots
2. Platform features :
● Support for Android and iOS devices through native client applications
● Push notifications to Android and IOS devices
● User authentication
● High scalability
3. Business features :
● In-game purchases
● Game analytics
13
Many popular mobile games use mobile backends to:
● Deliver dynamic game content
● Facilitate multiplayer games, including matching players
● Store data outside of the mobile device, e.g., the last completed level, or the scores
achieved in the previous plays
● Manage the leaderboard
● Orchestrate push notifications
● Facilitate in-game purchases
● Provide game analytics
14
Your Mobile Game Backend in the Cloud
● Automatic scalability
● Automatic load balancing across instances of your mobile backend
● Static content serving and caching
● Reliability, performance, and security features
● Monitoring and management
● Configurable DoS protection
● Integration with Google Accounts for OAuth2 authentication (for both Android
and iOS clients)
15
Easy scalability
Task queue
Background
Image processingMedia serving
API endpoints
Push to phone
Game logic
Datastore
Memcache
Mobile Backend
running on Google
App Engine Instances
iOS
CloudEndPointClients
Cloud Endpoints
● Create APIs for Mobile Apps to
communicate with Mobile Backends
● Add annotations to client interface
application code or generate Endpoint
classes from Models.
● Discoverable, Restful APIs
implemented on top of Google’s API
Infrastructure
● Tools available for generating Client
Libraries for Android, iOS and
JavaScript
● Built-In Authentication Support
APIs for Mobile Backends Made Easy
Storage Services
Web APIs
Cloud
Endpoints
Java - App Engine
@ApiMethod(httpMethod = "PUT", path = "game/{id}/answers")
public void submitAnswers(
@Named("id") long gameId, GamePlayStatus answers,
User player)
throws UnauthorizedException, NotFoundException {
if (user == null) {
throw new UnauthorizedException("The user is not authorized.");
gameService.submitAnswers(gameId, player, answers);
}
Java - Android Apppublic class SubmitAnswersTask extends ServiceTask<Void> {
protected void executeEndpointCall() {
service.gameEndpoint().submitAnswers(gameId, answers).execute();
}
Cloud Endpoints - Custom API
Submit Answers
Cloud Endpoints - Custom API
Java - App Engine
Mobile Game-AppEngine $ endpoints.sh get-client-lib org.arw.examples.appengine.mobilegame.GameInviteEndpoint
Jul 17, 2013 3:05:32 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed ./war/WEB-INF/appengine-web.xml
API configuration written to ./gameinviteendpoint-v1.api
API Discovery Document written to ./gameinviteendpoint-v1-rpc.discovery
API Discovery Document written to ./gameinviteendpoint-v1-rest.discovery
API client library written to ./gameinviteendpoint-v1-java.zip
Eclipse
Cloud Endpoints Development
Generate Client Library
Cloud Endpoints Development
19
A Globally Distributed Player Base
US users
EU users
Australia users
Communication
MySQL
Redis
API
US
EU
AUS
Websocket
Geo
Load Balancer
20
Matchmaking
MySQL
Game servers
Matchmaker
module
Find server
Register server
I want to play
Assign players
21
Profile and Session Management
MySQL
Signed URL
Profile pictures
Bucket
Edge
Cache
Public pictures
Bucket
Session
information
Redis
User registration
and login
User frontend
PD
SSD
Image metadata
22
Smart client Smart backend
Push to Phone
Web sockets
In-game real time
notifications Push notifications
OR
23
03 How to build mobile games using
App Engine and Cloud Endpoints ?
25
Griddler - multiplayer riddle mobile game
26
27
Responsibilities of the mobile game backend include :
● Serving board definitions to the clients
● Managing the list of players and their statistics (for example, how many games a player
played across different devices, how many multiplayer games she won)
● Managing the list of devices used by players in order to be able to send push notifications
to these devices
● Sending game invitations for multiplayer games
● Relaying invitation acceptance, declines and cancellations
28
Key components of mobile gaming solutions
● The mobile game client applications
● The mobile game backend
○ Griddler API includes methods for:
■ Game Management, for example startNewSinglePlayerGame and gameFinished
■ Player Invitations, for example sendInvitation, acceptInvitation etc.
■ Notifications, for example registerDeviceForPushNotification
29
Communication between clients apps and your mobile game backend
@Api annotation
API call from the client
30
Storing data
31
Optimizing data access with Memcache
A backend running on Google App Engine can
use a distributed in-memory, data cache service
called Memcache to store and retrieve
frequently accessed data
32
● Make a game more engaging and social
● Task Queues
○ Push Queue : Sending the enqueued tasks (push model) to your code running on
Google App Engine as HTTP requests to a chosen URL
○ Pull Queue : Mobile backend code can pull the tasks from the queue / Process the
tasks outside of App Engine
Asynchronous processing with Task Queues
33
Push notifications
34
Serving and processing images
35
Scheduled jobs
36
37
Firebase is a powerful platform for
mobile and web applications.
Static HostingRealtime Database User Authentication
Web Framework Integrations
Server Side Access
Client SDKs
Realtime Database
NoSQL JSON database
Three Tier Architecture
device application
server
database
Two Tier Architecture
Firebasedevice
● Fast Development
● Offload Scaling
● Unified Security
Two Tier Architecture
Firebasedevice
server
api
Database
Realtime Data Synchronization
// Create a Firebase database reference
var ref = new Firebase("https://googleformobile.firebaseio.com");
// Write data from Firebase
ref.set("Hi GCP WorkShop!");
// Read data from Firebase
ref.on("value", function(snapshot) {
var data = snapshot.val();
console.log(snapshot.val());
});
"rules": {
"foo": {
// /foo/ is readable by the world
".read": true,
// /foo/ is writable by the world
".write": true,
// data written to /foo/ must be a string less than 100 characters
".validate": "newData.isString() && newData.val().length < 100"
}
}
Database: Offline Native
Database: Offline Native
Database: Offline Native
Authentication
Authentication
Email & Password
Third Party Providers
(Google, Facebook, Twitter, GitHub)
// Facebook Authentication
var ref = new Firebase("https://googleformobile.firebaseio.com");
ref.authWithOAuthPopup("facebook”, function(error, authData) {
if (error) {
console.log("Login Failed!", error);
} else {
console.log("Authenticated successfully with payload: ", authData);
}
});
"users": {
"$uid": {
// /users/$uid is globally readable
".read": "true",
// but only personally writable
".write": "auth.uid == $uid"
}
}
Hosting
Hosting
SSL by default
Backed by a global CDN
Custom domain support
> firebase init
Initializing app…
Successfully initialized
> firebase deploy
Progress: 100%
Successfully deployed
Let’s write some code!
58
Firebase and Google App Engine
59
Firebase and Managed VMs
60
Resources
Firebase docs: firebase.com/docs
Cloud docs : cloud.google.com/docs
Join the discussion
bit.ly/gcp-slack bit.ly/gcp-githubbit.ly/gcp-twitter gcpug.kr
Thank You

Weitere ähnliche Inhalte

Was ist angesagt?

DumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdf
DumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdfDumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdf
DumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdfDumps Cafe
 
Azure SQL Database Managed Instance
Azure SQL Database Managed InstanceAzure SQL Database Managed Instance
Azure SQL Database Managed InstanceJames Serra
 
AZ-204 : Implement Azure security
AZ-204 : Implement Azure securityAZ-204 : Implement Azure security
AZ-204 : Implement Azure securityAzureEzy1
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual MachinesClint Edmonson
 
Microservice API Gateways with NGINX
Microservice API Gateways with NGINXMicroservice API Gateways with NGINX
Microservice API Gateways with NGINXGeoffrey Filippi
 
ScyllaDB Virtual Workshop
ScyllaDB Virtual WorkshopScyllaDB Virtual Workshop
ScyllaDB Virtual WorkshopScyllaDB
 
Get started With Microsoft Azure Virtual Machine
Get started With Microsoft Azure Virtual MachineGet started With Microsoft Azure Virtual Machine
Get started With Microsoft Azure Virtual MachineLai Yoong Seng
 
Azure Identity and access management
Azure   Identity and access managementAzure   Identity and access management
Azure Identity and access managementDinusha Kumarasiri
 
Microsoft 365 eEnterprise E5 Overview
Microsoft 365 eEnterprise E5 OverviewMicrosoft 365 eEnterprise E5 Overview
Microsoft 365 eEnterprise E5 OverviewDavid J Rosenthal
 
Microsoft Defender for Endpoint
Microsoft Defender for EndpointMicrosoft Defender for Endpoint
Microsoft Defender for EndpointCheah Eng Soon
 
CYBERSECURITY MESH - DIGITAL TRUST FRAMEWORK
CYBERSECURITY MESH - DIGITAL TRUST FRAMEWORKCYBERSECURITY MESH - DIGITAL TRUST FRAMEWORK
CYBERSECURITY MESH - DIGITAL TRUST FRAMEWORKMaganathin Veeraragaloo
 
cloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptx
cloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptxcloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptx
cloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptxVitNguyn252054
 

Was ist angesagt? (20)

DumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdf
DumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdfDumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdf
DumpsCafe Microsoft-AZ-104 Free Exam Dumps Demo.pdf
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
Azure SQL Database Managed Instance
Azure SQL Database Managed InstanceAzure SQL Database Managed Instance
Azure SQL Database Managed Instance
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
VDI for Business - Beyond the Hype
VDI for Business - Beyond the HypeVDI for Business - Beyond the Hype
VDI for Business - Beyond the Hype
 
AZ-204 : Implement Azure security
AZ-204 : Implement Azure securityAZ-204 : Implement Azure security
AZ-204 : Implement Azure security
 
IBM Cloud Paks - IBM Cloud
IBM Cloud Paks - IBM CloudIBM Cloud Paks - IBM Cloud
IBM Cloud Paks - IBM Cloud
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
Azure WAF
Azure WAFAzure WAF
Azure WAF
 
Azure storage
Azure storageAzure storage
Azure storage
 
Microservice API Gateways with NGINX
Microservice API Gateways with NGINXMicroservice API Gateways with NGINX
Microservice API Gateways with NGINX
 
ScyllaDB Virtual Workshop
ScyllaDB Virtual WorkshopScyllaDB Virtual Workshop
ScyllaDB Virtual Workshop
 
Google Firebase presentation - English
Google Firebase presentation - EnglishGoogle Firebase presentation - English
Google Firebase presentation - English
 
Get started With Microsoft Azure Virtual Machine
Get started With Microsoft Azure Virtual MachineGet started With Microsoft Azure Virtual Machine
Get started With Microsoft Azure Virtual Machine
 
Big Data Architectural Patterns
Big Data Architectural PatternsBig Data Architectural Patterns
Big Data Architectural Patterns
 
Azure Identity and access management
Azure   Identity and access managementAzure   Identity and access management
Azure Identity and access management
 
Microsoft 365 eEnterprise E5 Overview
Microsoft 365 eEnterprise E5 OverviewMicrosoft 365 eEnterprise E5 Overview
Microsoft 365 eEnterprise E5 Overview
 
Microsoft Defender for Endpoint
Microsoft Defender for EndpointMicrosoft Defender for Endpoint
Microsoft Defender for Endpoint
 
CYBERSECURITY MESH - DIGITAL TRUST FRAMEWORK
CYBERSECURITY MESH - DIGITAL TRUST FRAMEWORKCYBERSECURITY MESH - DIGITAL TRUST FRAMEWORK
CYBERSECURITY MESH - DIGITAL TRUST FRAMEWORK
 
cloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptx
cloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptxcloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptx
cloud_foundation_on_vxrail_vcf_pnp_licensing_guide.pptx
 

Andere mochten auch

[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼
[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼
[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼GAMENEXT Works
 
Presentation jwh pdf
Presentation jwh pdfPresentation jwh pdf
Presentation jwh pdfYeaji Shin
 
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.KeroOGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Keroogdc
 
Jeux et géolocalisation- Playground - Marseille 2.0
Jeux et géolocalisation- Playground - Marseille 2.0Jeux et géolocalisation- Playground - Marseille 2.0
Jeux et géolocalisation- Playground - Marseille 2.0marseille20
 
2013 Fighting Game Artificial Intelligence Competition
2013 Fighting Game Artificial Intelligence Competition2013 Fighting Game Artificial Intelligence Competition
2013 Fighting Game Artificial Intelligence Competitionftgaic
 
겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)
겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)
겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)Bill Choi
 
Open Data Board Game (Datopolis) - getting started
Open Data Board Game (Datopolis) - getting startedOpen Data Board Game (Datopolis) - getting started
Open Data Board Game (Datopolis) - getting startedOpen Data NZ
 
How to Grow the Customer Lifetime Value for your App?
How to Grow the Customer Lifetime Value for your App?How to Grow the Customer Lifetime Value for your App?
How to Grow the Customer Lifetime Value for your App?Remerge
 
Web Game Development
Web Game DevelopmentWeb Game Development
Web Game DevelopmentSabin Buraga
 
홈페이지혁신소개자료(20120611)
홈페이지혁신소개자료(20120611)홈페이지혁신소개자료(20120611)
홈페이지혁신소개자료(20120611)마경근 마
 
WSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2
 
Lime - Push notifications. The big way.
Lime - Push notifications. The big way.Lime - Push notifications. The big way.
Lime - Push notifications. The big way.Petr Dvorak
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례형석 김
 
All that you must know about personalized push notifications vizury
All that you must know about personalized push notifications vizuryAll that you must know about personalized push notifications vizury
All that you must know about personalized push notifications vizuryVizury - Growth Marketing Platform
 
From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...Neville Li
 
Google Cloud Endpoints の紹介
Google Cloud Endpoints の紹介Google Cloud Endpoints の紹介
Google Cloud Endpoints の紹介Taiji Miyamoto
 
How Google Does Big Data - DevNexus 2014
How Google Does Big Data - DevNexus 2014How Google Does Big Data - DevNexus 2014
How Google Does Big Data - DevNexus 2014James Chittenden
 

Andere mochten auch (20)

[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼
[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼
[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼
 
Presentation jwh pdf
Presentation jwh pdfPresentation jwh pdf
Presentation jwh pdf
 
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.KeroOGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero
 
Jeux et géolocalisation- Playground - Marseille 2.0
Jeux et géolocalisation- Playground - Marseille 2.0Jeux et géolocalisation- Playground - Marseille 2.0
Jeux et géolocalisation- Playground - Marseille 2.0
 
2013 Fighting Game Artificial Intelligence Competition
2013 Fighting Game Artificial Intelligence Competition2013 Fighting Game Artificial Intelligence Competition
2013 Fighting Game Artificial Intelligence Competition
 
001. 싸이월드 앱스토어 현황 sk컴즈 김영을 부장
001. 싸이월드 앱스토어 현황 sk컴즈 김영을 부장001. 싸이월드 앱스토어 현황 sk컴즈 김영을 부장
001. 싸이월드 앱스토어 현황 sk컴즈 김영을 부장
 
Waldo-gcp
Waldo-gcpWaldo-gcp
Waldo-gcp
 
겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)
겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)
겜튜브 소개 및 튜브애드 광고상품 소개(Special Pack.)
 
Open Data Board Game (Datopolis) - getting started
Open Data Board Game (Datopolis) - getting startedOpen Data Board Game (Datopolis) - getting started
Open Data Board Game (Datopolis) - getting started
 
How to Grow the Customer Lifetime Value for your App?
How to Grow the Customer Lifetime Value for your App?How to Grow the Customer Lifetime Value for your App?
How to Grow the Customer Lifetime Value for your App?
 
Web Game Development
Web Game DevelopmentWeb Game Development
Web Game Development
 
홈페이지혁신소개자료(20120611)
홈페이지혁신소개자료(20120611)홈페이지혁신소개자료(20120611)
홈페이지혁신소개자료(20120611)
 
WSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2 Message Broker - Product Overview
WSO2 Message Broker - Product Overview
 
Lime - Push notifications. The big way.
Lime - Push notifications. The big way.Lime - Push notifications. The big way.
Lime - Push notifications. The big way.
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
 
All that you must know about personalized push notifications vizury
All that you must know about personalized push notifications vizuryAll that you must know about personalized push notifications vizury
All that you must know about personalized push notifications vizury
 
Pub/Sub Messaging
Pub/Sub MessagingPub/Sub Messaging
Pub/Sub Messaging
 
From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...
 
Google Cloud Endpoints の紹介
Google Cloud Endpoints の紹介Google Cloud Endpoints の紹介
Google Cloud Endpoints の紹介
 
How Google Does Big Data - DevNexus 2014
How Google Does Big Data - DevNexus 2014How Google Does Big Data - DevNexus 2014
How Google Does Big Data - DevNexus 2014
 

Ähnlich wie Mobile game architecture on GCP

300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud PlatformMobileMonday Tel-Aviv
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkToby Corbin
 
201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio201507_NeoHsu_Portfolio
201507_NeoHsu_PortfolioNeo Hsu
 
JUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearJUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearprajods
 
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)White Nights Conference
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...e-Legion
 
GDG DevFest Romania - Architecting for the Google Cloud Platform
GDG DevFest Romania - Architecting for the Google Cloud PlatformGDG DevFest Romania - Architecting for the Google Cloud Platform
GDG DevFest Romania - Architecting for the Google Cloud PlatformMárton Kodok
 
Cloud for Game Developers – Myth or Real Scenarios?
Cloud for Game Developers – Myth or Real Scenarios?Cloud for Game Developers – Myth or Real Scenarios?
Cloud for Game Developers – Myth or Real Scenarios?DevGAMM Conference
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtrutyRon Favali
 
Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)Ido Green
 
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기Jinwoong Kim
 
Google Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCUGoogle Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCUShivam254129
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...
Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...
Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...Windows Developer
 
GDG Heraklion - Architecting for the Google Cloud Platform
GDG Heraklion - Architecting for the Google Cloud PlatformGDG Heraklion - Architecting for the Google Cloud Platform
GDG Heraklion - Architecting for the Google Cloud PlatformMárton Kodok
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile appsKen Cenerelli
 
What’s New in WSO2 IoT Server 3.1.0
What’s New in WSO2 IoT Server 3.1.0What’s New in WSO2 IoT Server 3.1.0
What’s New in WSO2 IoT Server 3.1.0WSO2
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Powering your Apps via Google Cloud Platform
Powering your Apps via Google Cloud PlatformPowering your Apps via Google Cloud Platform
Powering your Apps via Google Cloud PlatformRomin Irani
 

Ähnlich wie Mobile game architecture on GCP (20)

300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdk
 
201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio
 
JUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearJUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGear
 
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
Romuald Zdebskiy (Microsoft) & Andrey Ivashentsev (Game Insight)
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 
GDG DevFest Romania - Architecting for the Google Cloud Platform
GDG DevFest Romania - Architecting for the Google Cloud PlatformGDG DevFest Romania - Architecting for the Google Cloud Platform
GDG DevFest Romania - Architecting for the Google Cloud Platform
 
Cloud for Game Developers – Myth or Real Scenarios?
Cloud for Game Developers – Myth or Real Scenarios?Cloud for Game Developers – Myth or Real Scenarios?
Cloud for Game Developers – Myth or Real Scenarios?
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
 
Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)
 
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
 
Google Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCUGoogle Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCU
 
Pragatheswarakumar_v1.0
Pragatheswarakumar_v1.0Pragatheswarakumar_v1.0
Pragatheswarakumar_v1.0
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...
Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...
Build 2017 - P4062 - Delivering world-class game experiences using Microsoft ...
 
GDG Heraklion - Architecting for the Google Cloud Platform
GDG Heraklion - Architecting for the Google Cloud PlatformGDG Heraklion - Architecting for the Google Cloud Platform
GDG Heraklion - Architecting for the Google Cloud Platform
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile apps
 
What’s New in WSO2 IoT Server 3.1.0
What’s New in WSO2 IoT Server 3.1.0What’s New in WSO2 IoT Server 3.1.0
What’s New in WSO2 IoT Server 3.1.0
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Powering your Apps via Google Cloud Platform
Powering your Apps via Google Cloud PlatformPowering your Apps via Google Cloud Platform
Powering your Apps via Google Cloud Platform
 

Kürzlich hochgeladen

BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceanilsa9823
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Pooja Nehwal
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7Pooja Nehwal
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceanilsa9823
 

Kürzlich hochgeladen (7)

BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
 

Mobile game architecture on GCP

  • 1. 최명근 - mgchoi@google.com Cloud Sales Engineer Google Cloud Platform Workshop
  • 2. 01 Google Cloud Platform
  • 3. 3 BigQuery Big Data Pub/Sub Dataflow Dataproc Datalab Compute Compute Engine App Engine Container Engine App Services Cloud EndpointsPrediction API Translate API Storage Cloud Storage Cloud SQL Cloud Datastore Bigtable Google Cloud Platform
  • 4. Building what’s next 4 70 edge locations 33 countries The broadest reaching network of any Cloud Provider Google-Grade Networking
  • 5. Live Migration = No Downtime
  • 6. GCE Custom Machine Types Average Savings: 19%
  • 7. Unique GCE Capabilities Industry-leading IO performance Per-minute billing & Sustained Use Discounts Super-fast startup times: 1000 VMs in < 5 minutes High throughput to storage at no extra cost NEW: Resize disks with no downtime
  • 8. Multi-Cloud Reality Public Cloud Private Cloud Open Source & APIs
  • 9. Multi-cloud monitoring & logging Tracing, Error Reporting, Debugging Intelligent defaults
  • 10. Apps Kubernetes Builds on our 10 years of container management Designed for multi-cloud Broad industry support
  • 11. 02 Mobile Game Pattern on GCP
  • 12. 12 Typical requirements for a compelling mobile game include: 1. Game features : ● Dynamic game content ● Game data stored outside of devices ● Leaderboard ● Multiplayer mode ● Player matching ● Board generation ● Server site bots 2. Platform features : ● Support for Android and iOS devices through native client applications ● Push notifications to Android and IOS devices ● User authentication ● High scalability 3. Business features : ● In-game purchases ● Game analytics
  • 13. 13 Many popular mobile games use mobile backends to: ● Deliver dynamic game content ● Facilitate multiplayer games, including matching players ● Store data outside of the mobile device, e.g., the last completed level, or the scores achieved in the previous plays ● Manage the leaderboard ● Orchestrate push notifications ● Facilitate in-game purchases ● Provide game analytics
  • 14. 14 Your Mobile Game Backend in the Cloud ● Automatic scalability ● Automatic load balancing across instances of your mobile backend ● Static content serving and caching ● Reliability, performance, and security features ● Monitoring and management ● Configurable DoS protection ● Integration with Google Accounts for OAuth2 authentication (for both Android and iOS clients)
  • 15. 15 Easy scalability Task queue Background Image processingMedia serving API endpoints Push to phone Game logic Datastore Memcache
  • 16. Mobile Backend running on Google App Engine Instances iOS CloudEndPointClients Cloud Endpoints ● Create APIs for Mobile Apps to communicate with Mobile Backends ● Add annotations to client interface application code or generate Endpoint classes from Models. ● Discoverable, Restful APIs implemented on top of Google’s API Infrastructure ● Tools available for generating Client Libraries for Android, iOS and JavaScript ● Built-In Authentication Support APIs for Mobile Backends Made Easy Storage Services Web APIs Cloud Endpoints
  • 17. Java - App Engine @ApiMethod(httpMethod = "PUT", path = "game/{id}/answers") public void submitAnswers( @Named("id") long gameId, GamePlayStatus answers, User player) throws UnauthorizedException, NotFoundException { if (user == null) { throw new UnauthorizedException("The user is not authorized."); gameService.submitAnswers(gameId, player, answers); } Java - Android Apppublic class SubmitAnswersTask extends ServiceTask<Void> { protected void executeEndpointCall() { service.gameEndpoint().submitAnswers(gameId, answers).execute(); } Cloud Endpoints - Custom API Submit Answers Cloud Endpoints - Custom API
  • 18. Java - App Engine Mobile Game-AppEngine $ endpoints.sh get-client-lib org.arw.examples.appengine.mobilegame.GameInviteEndpoint Jul 17, 2013 3:05:32 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml INFO: Successfully processed ./war/WEB-INF/appengine-web.xml API configuration written to ./gameinviteendpoint-v1.api API Discovery Document written to ./gameinviteendpoint-v1-rpc.discovery API Discovery Document written to ./gameinviteendpoint-v1-rest.discovery API client library written to ./gameinviteendpoint-v1-java.zip Eclipse Cloud Endpoints Development Generate Client Library Cloud Endpoints Development
  • 19. 19 A Globally Distributed Player Base US users EU users Australia users Communication MySQL Redis API US EU AUS Websocket Geo Load Balancer
  • 21. 21 Profile and Session Management MySQL Signed URL Profile pictures Bucket Edge Cache Public pictures Bucket Session information Redis User registration and login User frontend PD SSD Image metadata
  • 22. 22 Smart client Smart backend Push to Phone Web sockets In-game real time notifications Push notifications OR
  • 23. 23
  • 24. 03 How to build mobile games using App Engine and Cloud Endpoints ?
  • 25. 25 Griddler - multiplayer riddle mobile game
  • 26. 26
  • 27. 27 Responsibilities of the mobile game backend include : ● Serving board definitions to the clients ● Managing the list of players and their statistics (for example, how many games a player played across different devices, how many multiplayer games she won) ● Managing the list of devices used by players in order to be able to send push notifications to these devices ● Sending game invitations for multiplayer games ● Relaying invitation acceptance, declines and cancellations
  • 28. 28 Key components of mobile gaming solutions ● The mobile game client applications ● The mobile game backend ○ Griddler API includes methods for: ■ Game Management, for example startNewSinglePlayerGame and gameFinished ■ Player Invitations, for example sendInvitation, acceptInvitation etc. ■ Notifications, for example registerDeviceForPushNotification
  • 29. 29 Communication between clients apps and your mobile game backend @Api annotation API call from the client
  • 31. 31 Optimizing data access with Memcache A backend running on Google App Engine can use a distributed in-memory, data cache service called Memcache to store and retrieve frequently accessed data
  • 32. 32 ● Make a game more engaging and social ● Task Queues ○ Push Queue : Sending the enqueued tasks (push model) to your code running on Google App Engine as HTTP requests to a chosen URL ○ Pull Queue : Mobile backend code can pull the tasks from the queue / Process the tasks outside of App Engine Asynchronous processing with Task Queues
  • 36. 36
  • 37. 37 Firebase is a powerful platform for mobile and web applications.
  • 38. Static HostingRealtime Database User Authentication
  • 39. Web Framework Integrations Server Side Access Client SDKs
  • 41. Three Tier Architecture device application server database
  • 42. Two Tier Architecture Firebasedevice ● Fast Development ● Offload Scaling ● Unified Security
  • 45. // Create a Firebase database reference var ref = new Firebase("https://googleformobile.firebaseio.com"); // Write data from Firebase ref.set("Hi GCP WorkShop!"); // Read data from Firebase ref.on("value", function(snapshot) { var data = snapshot.val(); console.log(snapshot.val()); });
  • 46. "rules": { "foo": { // /foo/ is readable by the world ".read": true, // /foo/ is writable by the world ".write": true, // data written to /foo/ must be a string less than 100 characters ".validate": "newData.isString() && newData.val().length < 100" } }
  • 51. Authentication Email & Password Third Party Providers (Google, Facebook, Twitter, GitHub)
  • 52. // Facebook Authentication var ref = new Firebase("https://googleformobile.firebaseio.com"); ref.authWithOAuthPopup("facebook”, function(error, authData) { if (error) { console.log("Login Failed!", error); } else { console.log("Authenticated successfully with payload: ", authData); } });
  • 53. "users": { "$uid": { // /users/$uid is globally readable ".read": "true", // but only personally writable ".write": "auth.uid == $uid" } }
  • 55. Hosting SSL by default Backed by a global CDN Custom domain support
  • 56. > firebase init Initializing app… Successfully initialized > firebase deploy Progress: 100% Successfully deployed
  • 60. 60 Resources Firebase docs: firebase.com/docs Cloud docs : cloud.google.com/docs Join the discussion bit.ly/gcp-slack bit.ly/gcp-githubbit.ly/gcp-twitter gcpug.kr