SlideShare a Scribd company logo
1 of 21
Download to read offline
做遊戲學python
用python打造的遊戲雲
About me
● yyhuang
● a.k.a 黃小鴨
● Game programmer of IGS (鈊象電子)
Scalable Game Cloud for
Mobile & Social Games
Game Cloud For...
● Save all game records
○ game progress
○ level, exp, energy, ...
○ virtual money
Hay Day - Supercell
Game Cloud For...
● Play from any device
○ PC
○ iPhone
○ iPad
○ Android
○ Windows Phone
○ ...
Puzzle & Dragons - GungHo
Game Cloud For...
● Social feature
○ invite friends
○ messages
○ gifts
● Competition
○ leaderboards
○ tournaments
Candy Crush Sage - King.com
Game Cloud Features
Login and Authentication
● Facebook account
● Auto generate ID from mobile hardware
● Allow concurrent access or not
Communication Manager
● HTTP-based communication
○ apache + php
○ wsgi
○ gevent + bottle
● Serialize/Deserialize messages
○ amf
○ json
○ ...
Communication Manager
● Message sequence check
○ Queue requests
● Dispatch message to game servers
○ RabbitMQ
○ Python Queue module
● Callback interface for client
○ Asynchronized
○ Synchoronzied
Game Database
● Usually interested in data of one player
● NoSQL database
○ Non-relational
○ Key-value documents
○ Easier to shard
● MongoDB
○ pymongo
E-commerce Server
● Real money to virtual money
● Multiple currencies in game
● Admin interface for setting up item price
● Separate logs
Deployment
● git
● python package
● boto for AWS control
● salt
○ deploy commands
○ control commands
Architecture
Game Server Development
Games on our platform
● Facebook games
○ Airline Fantasy
○ Billiard Ace
● Mobile games
○ 極速摩托
○ 美髮玩家 1&2
○ Slots Paradise
Libraries
● Config loader
○ Consistent config rules
○ Environment check
● Log libraries
○ python logging
○ syslog-ng
● Database API wrapper
Environment
● VirtualBox
○ Local development environment
● Amazon EC2
○ Development
■ Feature test and verify
○ Testing
■ Version ready for release
○ Release
Development Process
● Scrum
○ agile
○ iterative
○ incremental
● Split user story to the fundamental
● Focus on the unknown problem
○ The best part of python
Finally... Life Saver
● unittest
● pdb
● cProfile
● ... and git
Thank you
● Q & A
● Contact
○ elmnhuang at gmail dot com

More Related Content

Similar to Building game cloud with python

Developing mobile games and applications using Castle Game Engine
Developing mobile games and applications using Castle Game EngineDeveloping mobile games and applications using Castle Game Engine
Developing mobile games and applications using Castle Game EngineMichalis Kamburelis
 
Tokenization: Life beyond the Information Age
Tokenization: Life beyond the Information AgeTokenization: Life beyond the Information Age
Tokenization: Life beyond the Information AgeShannon Code
 
Creating 3D games and applications using Castle Game Engine
Creating 3D games and applications using Castle Game EngineCreating 3D games and applications using Castle Game Engine
Creating 3D games and applications using Castle Game EngineMichalis Kamburelis
 
Social Network Games - SAE
Social Network Games - SAESocial Network Games - SAE
Social Network Games - SAEBranko Djurkovic
 
Unity - Now with free mobile development! - Timo Kallaste
Unity - Now with free mobile development! - Timo KallasteUnity - Now with free mobile development! - Timo Kallaste
Unity - Now with free mobile development! - Timo KallasteMobileMonday Estonia
 
GDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and Loyalty
GDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and LoyaltyGDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and Loyalty
GDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and LoyaltySteelPangolin
 
How to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the CloudHow to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the CloudChris Schalk
 
Building Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudBuilding Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudChris Schalk
 
Unlocking the Third Dimension_ 3D Game Development.pptx
Unlocking the Third Dimension_ 3D Game Development.pptxUnlocking the Third Dimension_ 3D Game Development.pptx
Unlocking the Third Dimension_ 3D Game Development.pptxKnickGlobal2
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engineMichalis Kamburelis
 
The Challenges (and Promise!) of Multiplatform Production
The Challenges (and Promise!) of Multiplatform ProductionThe Challenges (and Promise!) of Multiplatform Production
The Challenges (and Promise!) of Multiplatform ProductionAdam Gutterman
 
Going Multi-Node
Going Multi-NodeGoing Multi-Node
Going Multi-NodeSmartLogic
 
Introduction to Procedural Contents Generation
Introduction to Procedural Contents GenerationIntroduction to Procedural Contents Generation
Introduction to Procedural Contents GenerationDavide Aversa
 
How hard can it be - Ui development at keen games
How hard can it be - Ui development at keen gamesHow hard can it be - Ui development at keen games
How hard can it be - Ui development at keen gamesJulien Koenen
 
Don't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesDon't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesMichael Scovetta
 
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 serverlessSuat Şahin
 
The Future of Connected Games: Unity and Google Cloud
The Future of Connected Games: Unity and Google CloudThe Future of Connected Games: Unity and Google Cloud
The Future of Connected Games: Unity and Google CloudUnity Technologies
 

Similar to Building game cloud with python (20)

Developing mobile games and applications using Castle Game Engine
Developing mobile games and applications using Castle Game EngineDeveloping mobile games and applications using Castle Game Engine
Developing mobile games and applications using Castle Game Engine
 
Tokenization: Life beyond the Information Age
Tokenization: Life beyond the Information AgeTokenization: Life beyond the Information Age
Tokenization: Life beyond the Information Age
 
Creating 3D games and applications using Castle Game Engine
Creating 3D games and applications using Castle Game EngineCreating 3D games and applications using Castle Game Engine
Creating 3D games and applications using Castle Game Engine
 
Social Network Games - SAE
Social Network Games - SAESocial Network Games - SAE
Social Network Games - SAE
 
Unity - Now with free mobile development! - Timo Kallaste
Unity - Now with free mobile development! - Timo KallasteUnity - Now with free mobile development! - Timo Kallaste
Unity - Now with free mobile development! - Timo Kallaste
 
GDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and Loyalty
GDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and LoyaltyGDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and Loyalty
GDC 2014 - Jeremy Ehrhardt, KIXEYE - Building Customer Support and Loyalty
 
How to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the CloudHow to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the Cloud
 
Building Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudBuilding Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the Cloud
 
Unit 20 - Game Platforms
Unit 20 - Game PlatformsUnit 20 - Game Platforms
Unit 20 - Game Platforms
 
Unit 20 - Game Platforms
Unit 20 - Game PlatformsUnit 20 - Game Platforms
Unit 20 - Game Platforms
 
Unlocking the Third Dimension_ 3D Game Development.pptx
Unlocking the Third Dimension_ 3D Game Development.pptxUnlocking the Third Dimension_ 3D Game Development.pptx
Unlocking the Third Dimension_ 3D Game Development.pptx
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engine
 
The Challenges (and Promise!) of Multiplatform Production
The Challenges (and Promise!) of Multiplatform ProductionThe Challenges (and Promise!) of Multiplatform Production
The Challenges (and Promise!) of Multiplatform Production
 
Going Multi-Node
Going Multi-NodeGoing Multi-Node
Going Multi-Node
 
Ios7 tech Talks summary
Ios7 tech Talks summaryIos7 tech Talks summary
Ios7 tech Talks summary
 
Introduction to Procedural Contents Generation
Introduction to Procedural Contents GenerationIntroduction to Procedural Contents Generation
Introduction to Procedural Contents Generation
 
How hard can it be - Ui development at keen games
How hard can it be - Ui development at keen gamesHow hard can it be - Ui development at keen games
How hard can it be - Ui development at keen games
 
Don't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade MachinesDon't Give Credit: Hacking Arcade Machines
Don't Give Credit: Hacking Arcade Machines
 
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
 
The Future of Connected Games: Unity and Google Cloud
The Future of Connected Games: Unity and Google CloudThe Future of Connected Games: Unity and Google Cloud
The Future of Connected Games: Unity and Google Cloud
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Building game cloud with python