GCP + +...2016/04/14  · MMO’s are a particular case (require server-server communication) III....

Preview:

Citation preview

🍻🍻+🎮🎮+🌏🌏+ GCPCommon Game Backend Architectures

IntroductionName: BRANDON Quentin (カンタン)

Company: bitcraft (渋谷にあるバックエンド開発会社)

→ bitcraft.co.jp

Nationality: French

Table of contents1. Asynchronous service

2. Content delivery

3. Real-time synchronous service

Table of contents1. Asynchronous service

2. Content delivery

3. Real-time synchronous service

For each we will expose:

The technologies involved

How the architecture scales up

I.Async Backend (page 1)Most of the time, a RESTful-like API is enough

I.Async Backend (page 1)Most of the time, a RESTful-like API is enough:

Client requests through HTTPS

Non-critical logic on client side

Critical logic on server side (e.g. in-app purchase)

I.Async Backend (page 2)

I.Async Backend (page 2)

I.Async Backend (page 2)

I.Async Backend (page 2)

I.Async Backend (page 3) Poor man’s cluster

I.Async Backend (page 3) Poor man’s cluster

jellyarcade.com

I.Async Backend (page 4) Large scale

II. Content delivery (page 1)Usually comes on the side of a RESTful service

Most common needs include:

Version management

DRM

Streaming

II. Content delivery (page 2) Asset Bundle delivery

II. Content delivery (page 3) DRM

Through REST (data may be gzipped in the DB)

Using access tokens to manage access to CDN

Bucket

S3

Akamai

II. Content delivery (page 4) Streaming

III. Real-time (page 1)TURN

P2P + TURN

Server-side logic

III. Real-time (page 2) TURN

III. Real-time (page 3) P2P + TURN

III. Real-time (page 4) Server-side logic

No P2P nor TURN involved

Persistent connection w/ Server

Game state kept server-side

MMO’s are a particular case (require server-server communication)

III. Real-time (page 5) Pro-cons

1. TURNa. Simple (fast development)

b. Potentially lots of traffic (expensive)

c. Vulnerable to cheaters

III. Real-time (page 5) Pro-cons

1. TURNa. Simple (fast development)

b. Potentially lots of traffic (expensive)

c. Vulnerable to cheaters

2. P2P + TURNa. Complicated (many connectivity patterns)

b. No more protocol choice (UDP) but low ping

c. Still vulnerable to cheaters

III. Real-time (page 5) Pro-cons

1. TURNa. Simple (fast development)

b. Potentially lots of traffic (expensive)

c. Vulnerable to cheaters

2. P2P + TURNa. Complicated (many connectivity patterns)

b. No more protocol choice (UDP) but low ping

c. Still vulnerable to cheaters

3. Server-side logica. Complicated (game logic)

b. Potentially lots of traffic (expensive)

c. Extremely reliable and cheater-proof

d. Brings new challenges for scaling and localization

III. Real-time (page 5) Pro-cons

Good for 2~8 multiplayer games

Good for 2-player games

Good for 8+ multiplayer games or sensitive content

1. TURNa. Simple (fast development)

b. Potentially lots of traffic (expensive)

c. Vulnerable to cheaters

2. P2P + TURNa. Complicated (many connectivity patterns)

b. No more protocol choice (UDP) but low ping

c. Still vulnerable to cheaters

3. Server-side logica. Complicated (game logic)

b. Potentially lots of traffic (expensive)

c. Extremely reliable and cheater-proof

d. Brings new challenges for scaling and localization

Thank you for your attentionQuestion time...

Recommended