SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
做遊戲學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

Más contenido relacionado

Similar a 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 a 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
 

Último

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"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
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Último (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"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
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

Building game cloud with python