SlideShare a Scribd company logo
Designing a Pragmatic Backend
Service for Mobile Games
DK Moon (dkmoon@ifunfactory.com)
November 13 2013
Cliche: Mobile Game Segment Growing Super Fast
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
2013 2014 2015
Video Game Market Revenue Growth
Mobile Games Video Game Console PC Games
Source: Gartner (October 2013)
Game Development Ecosystem
Game
Server
Game
Client
Internet
Game Development Ecosystem
Game
Server
Game
Client
Internet
Game concept
Game logic design
Game balance
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Client app impl.
Game logic impl.
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Client app impl.
Game logic impl.
소프트웨어 엔지니어
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Server app impl.
Game logic impl.
Client app impl.
Game logic impl.
소프트웨어 엔지니어
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Server app impl.
Game logic impl.
Client app impl.
Game logic impl.
소프트웨어 엔지니어
소프트웨어 엔지니어
Data center
DB
Server
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Server app impl.
Game logic impl.
Client app impl.
Game logic impl.
소프트웨어 엔지니어
소프트웨어 엔지니어
Data center
DB
Server
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Server app impl.
Game logic impl.
Client app impl.
Game logic impl.
소프트웨어 엔지니어
소프트웨어 엔지니어
Server mgmt
Server monitoring
Log analysis
시스템 엔지니어, DBA
Data center
DB
Server
Game Development Ecosystem
Game
Server
Game
Client
Internet
게임 기획자
Game concept
Game logic design
Game balance
Game graphic asset
게임 그래픽 디자이너
Server app impl.
Game logic impl.
Client app impl.
Game logic impl.
소프트웨어 엔지니어
소프트웨어 엔지니어
Server mgmt
Server monitoring
Log analysis
시스템 엔지니어, DBA
Who is the key player?
Mobile game is an entertainment business targeting end users.
Hence, game designer and graphic designer are important.
• They determine look & feel. Also, game logic.
• But it assumes your engineers do not break anything.
Unfortunately, they will.
Engineers cannot guarantee success, but can lead to failure.
• Software reliability is crucial.
• But very hard to find decent, experienced engineers.
Resource Requirement to Build a Mobile Game
Depending on game scale
• Casual games vs. mid-core games vs. hard-core games
If building a casual game…
• Around 300M KRW investment
• less than 10 members
• 6-9mo development
• 6-12mo service
Sorry, Buddy. Things Are Getting Worse.
Competition getting fierce
Need to design bigger games
• More people & time. Hence, more cost…
Need to shorten time-to-market
• More people. Again, more cost…
Efforts to Reduce Development Cycle
Client-side
• Relying on client engines (e.g., Unity3D, Cocos2D, …)
Server-side
• Hardware: using IaaS cloud for server provisioning. (AWS)
• Software: leveraging web server technologies.
• Game features: Adopting external components/services.
(e.g., leaderboard, community)
Incompleteness of existing server-side solution
IaaS helps, but to a limited extent
• Installing OS is not what engineers spend most of time.
• Converting into game server is the most time-consuming and error-prone.
Not all games are built on top of web server
• HTTP works on a request-response basis.
 Complex games require complex communication patterns.
• Web server is stateless in general.
 Even trivial operation should hit database.
Integrating into external service takes time.
• Also gives learning curve.
Backend Service for Mobile Games
A set of hardware resources and software components accessible
via API to resolve issues in building mobile game server and related
infrastructure.
Mobile Game Backend Design Space
Infrastructure
Game server core
In-game components
Design Consideration #1: Infrastructure
Cloud storage
• For player profiles and game achievements
• Exposing DB interface vs. providing API?
Design Consideration #1: Infrastructure
IaaS
• Game developers manually configure machine.
• Tools are at the granularity of machine (CPU, RAM, Disk, Traffic, …)
• Bare-metal provisioning vs. VM provisioning?
Design Consideration #1: Infrastructure
PaaS
• Cloud instance is pre-configured as game server.
• Tools are at the granularity of game (#sessions, #items, …)
• Might include push server, player mgmt tools, etc.
Design Consideration #2: Game Server Core
Networking
• Message format (custom format vs. Protobuf/Thrift/JSON/…)
• Operating layer (session layer vs. transport layer)
• External integration (authentication, billing, …)
Design Consideration #2: Game Server Core
Database abstraction
• Explicit database calling vs. transparent database handling
Design Consideration #2: Game Server Core
Library vs. Framework
• Actively call into vs. Passively invoked.
Design Consideration #2: Game Server Core
Programming model
• Procedural vs. Event-driven vs. Declarative vs. …
Design Consideration #3: In-game Components
Components implementing game features
• Leaderboard, Chatting, Virtual currency, Matchmaking, AI
• Genre-specific in-game components
• …
Components architecture must be extensible
• Tightly-coupled vs. loosely-coupled
• SDK approach vs. API approach
Short Survey on Backend Solutions
PlayerScale OpenKit Scoreoid Player.IO
Google
(App Engine /
Compute Engine)
In-game components
Yes
(leaderboards, chat,
virtual currency,
matchmaking)
Yes
(leaderboards)
Yes
(leaderboards, in-
game notifications,
achievements)
Yes
(lobby, chat)
Yes
(leaderboards,
achievement)
External integration
Payment
Authentication
Authentication Authentication
Payment
Authentication
Analytics tools Yes Yes Only for error logs Yes
Cloud Storage Yes Yes Yes Yes Yes
Player management Yes Yes
Game server core Only for Flash
Infra support other
than cloud storage
* Information gathered from official sites.
Short introduction on my work
Funapi
• Game server framework.
• Developers implement only game logic. Then, Funapi does the rest.
Argus
• PaaS cloud specialized in mobile games
• Developers focus only on game server. Then, Argus does the rest.
Lessons from designing a backend service
Must be fool-proof
• Not all game developers share the same skills set.
• Do not blame game developers.
• If they fail, double-check if fool-proof.
Lessons from designing a backend service
Must be out-of-the-box
• Extremely tight time budget in game development.
• Do not expect game developers to eagerly go thru learning curve.
• If your backend service has high learning curve or
requires extensive integration work, it is less likely to be adopted.
Lessons from designing a backend service
Think deployment scenario from the beginning
• Extremely difficult to pull back once deployed.
• Versioning should be in place from the beginning.
• Package manager like Debian APT is worth referring to.
Questions?
dkmoon@ifunfactory.com

More Related Content

What's hot

Puppet camp LA and Phoenix 2015: Keynote
Puppet camp LA and Phoenix 2015: Keynote Puppet camp LA and Phoenix 2015: Keynote
Puppet camp LA and Phoenix 2015: Keynote
Puppet
 
The tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetThe tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanet
Javier Abud
 
[Serverless OpenHack Tokyo] Azure Serverless (English)
[Serverless OpenHack Tokyo] Azure Serverless (English)[Serverless OpenHack Tokyo] Azure Serverless (English)
[Serverless OpenHack Tokyo] Azure Serverless (English)
Naoki (Neo) SATO
 
Cloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMOCloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMO
AWS Germany
 
Addressables for live content management – Unite Copenhagen 2019
Addressables for live content management – Unite Copenhagen 2019Addressables for live content management – Unite Copenhagen 2019
Addressables for live content management – Unite Copenhagen 2019
Unity Technologies
 
The NBN Puppet Journey
The NBN Puppet JourneyThe NBN Puppet Journey
The NBN Puppet Journey
Puppet
 
PuppetConf 2016: Puppet & Azure – Kenaz Kwa, Puppet
PuppetConf 2016: Puppet & Azure – Kenaz Kwa, PuppetPuppetConf 2016: Puppet & Azure – Kenaz Kwa, Puppet
PuppetConf 2016: Puppet & Azure – Kenaz Kwa, Puppet
Puppet
 
Adobe AIR for mobile games
Adobe AIR for mobile gamesAdobe AIR for mobile games
Adobe AIR for mobile games
James Wrightson
 
What's New in Puppet Enterprise 2016.2
What's New in Puppet Enterprise 2016.2What's New in Puppet Enterprise 2016.2
What's New in Puppet Enterprise 2016.2
Puppet
 

What's hot (9)

Puppet camp LA and Phoenix 2015: Keynote
Puppet camp LA and Phoenix 2015: Keynote Puppet camp LA and Phoenix 2015: Keynote
Puppet camp LA and Phoenix 2015: Keynote
 
The tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetThe tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanet
 
[Serverless OpenHack Tokyo] Azure Serverless (English)
[Serverless OpenHack Tokyo] Azure Serverless (English)[Serverless OpenHack Tokyo] Azure Serverless (English)
[Serverless OpenHack Tokyo] Azure Serverless (English)
 
Cloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMOCloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMO
 
Addressables for live content management – Unite Copenhagen 2019
Addressables for live content management – Unite Copenhagen 2019Addressables for live content management – Unite Copenhagen 2019
Addressables for live content management – Unite Copenhagen 2019
 
The NBN Puppet Journey
The NBN Puppet JourneyThe NBN Puppet Journey
The NBN Puppet Journey
 
PuppetConf 2016: Puppet & Azure – Kenaz Kwa, Puppet
PuppetConf 2016: Puppet & Azure – Kenaz Kwa, PuppetPuppetConf 2016: Puppet & Azure – Kenaz Kwa, Puppet
PuppetConf 2016: Puppet & Azure – Kenaz Kwa, Puppet
 
Adobe AIR for mobile games
Adobe AIR for mobile gamesAdobe AIR for mobile games
Adobe AIR for mobile games
 
What's New in Puppet Enterprise 2016.2
What's New in Puppet Enterprise 2016.2What's New in Puppet Enterprise 2016.2
What's New in Puppet Enterprise 2016.2
 

Viewers also liked

iFun Deploy 소개
iFun Deploy 소개iFun Deploy 소개
iFun Deploy 소개
iFunFactory Inc.
 
Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉
iFunFactory Inc.
 
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
iFunFactory Inc.
 
클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기
iFunFactory Inc.
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
iFunFactory Inc.
 
iFun Engine plugin 만들기 (for Stingray)
iFun Engine plugin 만들기 (for Stingray) iFun Engine plugin 만들기 (for Stingray)
iFun Engine plugin 만들기 (for Stingray)
iFunFactory Inc.
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
iFunFactory Inc.
 
게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여
iFunFactory Inc.
 
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
iFunFactory Inc.
 
Apache ZooKeeper 로
 분산 서버 만들기
Apache ZooKeeper 로
 분산 서버 만들기Apache ZooKeeper 로
 분산 서버 만들기
Apache ZooKeeper 로
 분산 서버 만들기
iFunFactory Inc.
 
iFunEngine: 30분 만에 게임 서버 만들기
iFunEngine: 30분 만에 게임 서버 만들기iFunEngine: 30분 만에 게임 서버 만들기
iFunEngine: 30분 만에 게임 서버 만들기
iFunFactory Inc.
 
Metodologias de desarrollo de software en Gaming [EA]
Metodologias de desarrollo de software en Gaming [EA]Metodologias de desarrollo de software en Gaming [EA]
Metodologias de desarrollo de software en Gaming [EA]
Globant
 
Cloud gaming
Cloud gamingCloud gaming
Cloud gaming
marco7895
 
Project falcon1
Project falcon1Project falcon1
Project falcon1
Shahid Nadeem
 
Automatización de despliegues en Openshift con Ansible Tower
Automatización de despliegues en Openshift con Ansible TowerAutomatización de despliegues en Openshift con Ansible Tower
Automatización de despliegues en Openshift con Ansible Tower
Ramón Román Nissen
 
Docker: Containers Evolved - Dynamic Instantiation of Microservices
Docker: Containers Evolved - Dynamic Instantiation of MicroservicesDocker: Containers Evolved - Dynamic Instantiation of Microservices
Docker: Containers Evolved - Dynamic Instantiation of Microservices
Ramón Román Nissen
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Jinuk Kim
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
Realidad Virtual Nuevos Mundos Para La Psicoterapia Mackay
Realidad Virtual Nuevos Mundos Para La Psicoterapia MackayRealidad Virtual Nuevos Mundos Para La Psicoterapia Mackay
Realidad Virtual Nuevos Mundos Para La Psicoterapia Mackaymackayunah
 
Enterprise Mobile App UX: Designing from UI to Backend
Enterprise Mobile App UX: Designing from UI to BackendEnterprise Mobile App UX: Designing from UI to Backend
Enterprise Mobile App UX: Designing from UI to Backend
Sanjeev Sharma
 

Viewers also liked (20)

iFun Deploy 소개
iFun Deploy 소개iFun Deploy 소개
iFun Deploy 소개
 
Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉
 
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
 
클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
 
iFun Engine plugin 만들기 (for Stingray)
iFun Engine plugin 만들기 (for Stingray) iFun Engine plugin 만들기 (for Stingray)
iFun Engine plugin 만들기 (for Stingray)
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여
 
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
 
Apache ZooKeeper 로
 분산 서버 만들기
Apache ZooKeeper 로
 분산 서버 만들기Apache ZooKeeper 로
 분산 서버 만들기
Apache ZooKeeper 로
 분산 서버 만들기
 
iFunEngine: 30분 만에 게임 서버 만들기
iFunEngine: 30분 만에 게임 서버 만들기iFunEngine: 30분 만에 게임 서버 만들기
iFunEngine: 30분 만에 게임 서버 만들기
 
Metodologias de desarrollo de software en Gaming [EA]
Metodologias de desarrollo de software en Gaming [EA]Metodologias de desarrollo de software en Gaming [EA]
Metodologias de desarrollo de software en Gaming [EA]
 
Cloud gaming
Cloud gamingCloud gaming
Cloud gaming
 
Project falcon1
Project falcon1Project falcon1
Project falcon1
 
Automatización de despliegues en Openshift con Ansible Tower
Automatización de despliegues en Openshift con Ansible TowerAutomatización de despliegues en Openshift con Ansible Tower
Automatización de despliegues en Openshift con Ansible Tower
 
Docker: Containers Evolved - Dynamic Instantiation of Microservices
Docker: Containers Evolved - Dynamic Instantiation of MicroservicesDocker: Containers Evolved - Dynamic Instantiation of Microservices
Docker: Containers Evolved - Dynamic Instantiation of Microservices
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
Realidad Virtual Nuevos Mundos Para La Psicoterapia Mackay
Realidad Virtual Nuevos Mundos Para La Psicoterapia MackayRealidad Virtual Nuevos Mundos Para La Psicoterapia Mackay
Realidad Virtual Nuevos Mundos Para La Psicoterapia Mackay
 
Enterprise Mobile App UX: Designing from UI to Backend
Enterprise Mobile App UX: Designing from UI to BackendEnterprise Mobile App UX: Designing from UI to Backend
Enterprise Mobile App UX: Designing from UI to Backend
 

Similar to Designing a pragmatic back-end service for mobile games

The Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need BackendsThe Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need Backends
James Gwertzman
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
Globant
 
Streamed Cloud Gaming Solutions for Android* and PC Games
Streamed Cloud Gaming Solutions for Android* and PC GamesStreamed Cloud Gaming Solutions for Android* and PC Games
Streamed Cloud Gaming Solutions for Android* and PC Games
Intel® Software
 
My Presentation.ppt
My Presentation.pptMy Presentation.ppt
My Presentation.ppt
Fake474384
 
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyBehind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
James Gwertzman
 
Say hello to the new PlayFab!
Say hello to the new PlayFab!Say hello to the new PlayFab!
Say hello to the new PlayFab!
Thomas Robbins
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
Pouya Pournasir
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
Slide_N
 
FootballX - How to make an online game using serverless
FootballX - How to make an online game using serverlessFootballX - How to make an online game using serverless
FootballX - How to make an online game using serverless
Suat Şahin
 
Intro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignIntro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) Design
Christopher Mohritz
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
Abhishek Singhal [L.I.O.N]
 
Intro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWSIntro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWS
Amazon Web Services
 
ARISE
ARISEARISE
ARISE
kaptoxic
 
Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)
Jun Okumura
 
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
Amazon Web Services
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hdslantsixgames
 
AppBattler - An Android-based SDK for game developers to enable social gaming
AppBattler - An Android-based SDK for game developers to enable social gamingAppBattler - An Android-based SDK for game developers to enable social gaming
AppBattler - An Android-based SDK for game developers to enable social gaming
Neev Technologies
 
Final project report of a game
Final project report of a gameFinal project report of a game
Final project report of a game
Nadia Nahar
 
Gameathon @ Neev
Gameathon @ NeevGameathon @ Neev
Gameathon @ Neev
Neev Technologies
 

Similar to Designing a pragmatic back-end service for mobile games (20)

The Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need BackendsThe Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need Backends
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
 
Streamed Cloud Gaming Solutions for Android* and PC Games
Streamed Cloud Gaming Solutions for Android* and PC GamesStreamed Cloud Gaming Solutions for Android* and PC Games
Streamed Cloud Gaming Solutions for Android* and PC Games
 
My Presentation.ppt
My Presentation.pptMy Presentation.ppt
My Presentation.ppt
 
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyBehind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
 
Say hello to the new PlayFab!
Say hello to the new PlayFab!Say hello to the new PlayFab!
Say hello to the new PlayFab!
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
FootballX - How to make an online game using serverless
FootballX - How to make an online game using serverlessFootballX - How to make an online game using serverless
FootballX - How to make an online game using serverless
 
Intro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignIntro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) Design
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
 
Intro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWSIntro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWS
 
ARISE
ARISEARISE
ARISE
 
Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)
 
GP Intro.pptx
GP Intro.pptxGP Intro.pptx
GP Intro.pptx
 
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
AppBattler - An Android-based SDK for game developers to enable social gaming
AppBattler - An Android-based SDK for game developers to enable social gamingAppBattler - An Android-based SDK for game developers to enable social gaming
AppBattler - An Android-based SDK for game developers to enable social gaming
 
Final project report of a game
Final project report of a gameFinal project report of a game
Final project report of a game
 
Gameathon @ Neev
Gameathon @ NeevGameathon @ Neev
Gameathon @ Neev
 

More from iFunFactory Inc.

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
iFunFactory Inc.
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
iFunFactory Inc.
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
iFunFactory Inc.
 
[아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP [아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP
iFunFactory Inc.
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFunFactory Inc.
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
iFunFactory Inc.
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성
iFunFactory Inc.
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기
iFunFactory Inc.
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
iFunFactory Inc.
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
iFunFactory Inc.
 

More from iFunFactory Inc. (19)

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
[아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP [아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
 

Recently uploaded

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 

Designing a pragmatic back-end service for mobile games

  • 1. Designing a Pragmatic Backend Service for Mobile Games DK Moon (dkmoon@ifunfactory.com) November 13 2013
  • 2. Cliche: Mobile Game Segment Growing Super Fast 0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 2013 2014 2015 Video Game Market Revenue Growth Mobile Games Video Game Console PC Games Source: Gartner (October 2013)
  • 5. Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance
  • 6. Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset
  • 7. Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너
  • 8. Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너 Client app impl. Game logic impl.
  • 9. Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너 Client app impl. Game logic impl. 소프트웨어 엔지니어
  • 10. Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너 Server app impl. Game logic impl. Client app impl. Game logic impl. 소프트웨어 엔지니어
  • 11. Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너 Server app impl. Game logic impl. Client app impl. Game logic impl. 소프트웨어 엔지니어 소프트웨어 엔지니어
  • 12. Data center DB Server Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너 Server app impl. Game logic impl. Client app impl. Game logic impl. 소프트웨어 엔지니어 소프트웨어 엔지니어
  • 13. Data center DB Server Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너 Server app impl. Game logic impl. Client app impl. Game logic impl. 소프트웨어 엔지니어 소프트웨어 엔지니어 Server mgmt Server monitoring Log analysis 시스템 엔지니어, DBA
  • 14. Data center DB Server Game Development Ecosystem Game Server Game Client Internet 게임 기획자 Game concept Game logic design Game balance Game graphic asset 게임 그래픽 디자이너 Server app impl. Game logic impl. Client app impl. Game logic impl. 소프트웨어 엔지니어 소프트웨어 엔지니어 Server mgmt Server monitoring Log analysis 시스템 엔지니어, DBA
  • 15. Who is the key player? Mobile game is an entertainment business targeting end users. Hence, game designer and graphic designer are important. • They determine look & feel. Also, game logic. • But it assumes your engineers do not break anything. Unfortunately, they will. Engineers cannot guarantee success, but can lead to failure. • Software reliability is crucial. • But very hard to find decent, experienced engineers.
  • 16. Resource Requirement to Build a Mobile Game Depending on game scale • Casual games vs. mid-core games vs. hard-core games If building a casual game… • Around 300M KRW investment • less than 10 members • 6-9mo development • 6-12mo service
  • 17. Sorry, Buddy. Things Are Getting Worse. Competition getting fierce Need to design bigger games • More people & time. Hence, more cost… Need to shorten time-to-market • More people. Again, more cost…
  • 18. Efforts to Reduce Development Cycle Client-side • Relying on client engines (e.g., Unity3D, Cocos2D, …) Server-side • Hardware: using IaaS cloud for server provisioning. (AWS) • Software: leveraging web server technologies. • Game features: Adopting external components/services. (e.g., leaderboard, community)
  • 19. Incompleteness of existing server-side solution IaaS helps, but to a limited extent • Installing OS is not what engineers spend most of time. • Converting into game server is the most time-consuming and error-prone. Not all games are built on top of web server • HTTP works on a request-response basis.  Complex games require complex communication patterns. • Web server is stateless in general.  Even trivial operation should hit database. Integrating into external service takes time. • Also gives learning curve.
  • 20. Backend Service for Mobile Games A set of hardware resources and software components accessible via API to resolve issues in building mobile game server and related infrastructure.
  • 21. Mobile Game Backend Design Space Infrastructure Game server core In-game components
  • 22. Design Consideration #1: Infrastructure Cloud storage • For player profiles and game achievements • Exposing DB interface vs. providing API?
  • 23. Design Consideration #1: Infrastructure IaaS • Game developers manually configure machine. • Tools are at the granularity of machine (CPU, RAM, Disk, Traffic, …) • Bare-metal provisioning vs. VM provisioning?
  • 24. Design Consideration #1: Infrastructure PaaS • Cloud instance is pre-configured as game server. • Tools are at the granularity of game (#sessions, #items, …) • Might include push server, player mgmt tools, etc.
  • 25. Design Consideration #2: Game Server Core Networking • Message format (custom format vs. Protobuf/Thrift/JSON/…) • Operating layer (session layer vs. transport layer) • External integration (authentication, billing, …)
  • 26. Design Consideration #2: Game Server Core Database abstraction • Explicit database calling vs. transparent database handling
  • 27. Design Consideration #2: Game Server Core Library vs. Framework • Actively call into vs. Passively invoked.
  • 28. Design Consideration #2: Game Server Core Programming model • Procedural vs. Event-driven vs. Declarative vs. …
  • 29. Design Consideration #3: In-game Components Components implementing game features • Leaderboard, Chatting, Virtual currency, Matchmaking, AI • Genre-specific in-game components • … Components architecture must be extensible • Tightly-coupled vs. loosely-coupled • SDK approach vs. API approach
  • 30. Short Survey on Backend Solutions PlayerScale OpenKit Scoreoid Player.IO Google (App Engine / Compute Engine) In-game components Yes (leaderboards, chat, virtual currency, matchmaking) Yes (leaderboards) Yes (leaderboards, in- game notifications, achievements) Yes (lobby, chat) Yes (leaderboards, achievement) External integration Payment Authentication Authentication Authentication Payment Authentication Analytics tools Yes Yes Only for error logs Yes Cloud Storage Yes Yes Yes Yes Yes Player management Yes Yes Game server core Only for Flash Infra support other than cloud storage * Information gathered from official sites.
  • 31. Short introduction on my work Funapi • Game server framework. • Developers implement only game logic. Then, Funapi does the rest. Argus • PaaS cloud specialized in mobile games • Developers focus only on game server. Then, Argus does the rest.
  • 32. Lessons from designing a backend service Must be fool-proof • Not all game developers share the same skills set. • Do not blame game developers. • If they fail, double-check if fool-proof.
  • 33. Lessons from designing a backend service Must be out-of-the-box • Extremely tight time budget in game development. • Do not expect game developers to eagerly go thru learning curve. • If your backend service has high learning curve or requires extensive integration work, it is less likely to be adopted.
  • 34. Lessons from designing a backend service Think deployment scenario from the beginning • Extremely difficult to pull back once deployed. • Versioning should be in place from the beginning. • Package manager like Debian APT is worth referring to.