SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
@agatestudio 
MMO Architecture Design 
Andrew 
Publishing 
Agate Studio
MMO Architecture Design 
Case Study from an MMO: Happy Me 
•http://www.slideshare.net/actionstartup/a-practical-architecture-design-for- mmo-casual-game-mr-an-ngo-thai 
•http://www.slideshare.net/AmazonWebServices/gdc2014-aws- gamearchitecturesfinal
Content 
•Happy Me 
•Architecture Overview 
•Architecture Detail 
–Object Management System 
–Server-Client Data Synchronization 
–Network Message Dispatching System 
•Bonus: AWS Architecture
Happy Me 
•What? 
–MMO Casual Game 
–Room-based active server 
–Web-based Unity3D client 
–Run on social platform 
•Who? 
–VNG from Vietnam 
–Technical team 
•3 System and framework developers 
•4 Game developers 
•12 Months development time
ARCHITECTURAL OVERVIEW
Physical Architecture
Game Data, Logic, and Presentation
DESIGN
Design 
•Object Management System 
–MVC design pattern 
–Dynamic data 
•Auto Synchronization Framework 
–Truly automatic (Set and forget style) 
–Synchronize the delta difference only 
•Network Message Dispatching System 
–Custom structure message 
–Easy to register message and invoke handlers
OBJECT MANAGEMENT SYSTEM (MVC DESIGN)
Overview diagram Model View Controller (gameplay logic) 
Database Network Messages View Controller (graphic logic) 
Server Side 
Client Side 
Unity3D 3D Models 
Database Model
MVC objects mapping Model View Controller Game Objects Object Views Game Logic Modules Rooms
Detail diagram Game Objects Object Views Game Logic 
No-SQL 
(Storage) Network Messages Object Views Graphic Logic 
Server Side 
Client Side 
SQL 
(Ranking, Log) 
Database Game Objects Modules Modules Rooms Rooms
General purpose base object Object Rooms Object Views Modules Game Objects
The “Object” requirements 
•A container of properties 
•Serialize to and deserialize from JSON 
•Hierarchy relationship (parent-child)
Object dynamic properties Object 
Guid 
Property 1 
Property 2 
Property Meta Data 
•Tags 
•Persistent 
•Client transfer 
•Type 
•Long 
•Name 
•“property 2” 
•Version 
•568
Define the properties
The object tree Object Unit GameObject DataObject Player DecoItem Pet UseItem ClothItem Item Quest Job PlayerView DecoView PetView ObjectView Module MainGame Authen HomeDeco SyncData Room Lobby Public Personal Object Manager
Result 
Pros 
•MVC design pattern practice 
•Fully customizable property system 
•Manage game world into one single system 
Cons 
•Challenge to manage huge number of objects
AUTO SYNCHRONIZATION FRAMEWORK (SERVER <-> CLIENT)
Synchronization concept Server Room 
Player.Position = (10, 20) 
Player.OnUpdatePosition(10, 20) 
{ 
model.MoveTo(10, 20); } 
Client
Duties of a room 
Synchronization Scheduler 
Other 
Schedulers 
Message 
Processor 
ROOM 
•Process messages from clients 
•Send or broadcast messages to clients 
•Synchronize data changes between server and clients 
•Update status 
•Other duties…
Thread pool workers Personal Room Coffee Room Downtown Room 
Sync 
Other 
Sync Thread Pool 
Other 
Sync 
Other 
Sync 
Sync 
Other 
ROOMS 
TASK QUEUES 
WORKERS
Thread 
Schedulers 
1 second 
SYNCHRONIZATION 
SCHEDULER 
OTHERS SCHEDULER 
1/10 second Other Task Sync Task Sync Task Other Task 
Sync Task 
Other Task 
TASK QUEUE 
WORKER
Object change-set Object 
Position 
Energy 
Gold 
Change Set 
SYNCHRONIZATION SCHEDULER 
SetProperty(Position, (1, 2)) 
Sync Task
Result 
Pros 
•Automatic synchronization property changes 
•Optimal data transfer 
•Best use for active server game 
Cons 
•Overhead to determine what has changed since last sync.
NETWORK MESSAGE DISPATCHING SYSTEM
Custom message structure Login -Username -Password Synchronize -Type -Properties Buy Item -ItemType -Quantity Chat -Message RequestFriend -FriendGuid 
Serializer (Thrift, Protobuf, Json, XML) 
Network package Encryption
Message factory 
Server 
Send 
Client 
Receive 
Serialize 
Deserialize Login -Username -Password Login -Username -Password OnAuthen OnMove OnRun 
Login 
Authen 
Move 
Run 
Message Handlers OnLogin
Result 
Pros 
•Meaningful message by define custom structure 
•Familiar usage as common GUI system (MFC, WinForm) 
•Share message definition between server and client 
•Easy to apply encryption 
Cons 
•Unknown
•Seamless MVC framework across server and client 
•Address the most common difficulty in design active server : the synchronization 
•Base framework environment for adapting any gameplay 
Conclusion
SCALABLE GAMING WITH AWS
Pay as you Scale
Core Game Backend
Scale It Way Out
Amazon Elastic Beanstalk
Thank You 
Thank You ^_^

Más contenido relacionado

La actualidad más candente

테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
devCAT Studio, NEXON
 

La actualidad más candente (20)

Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
엄재민 Nhn과제 신규 게임 컨셉 제안서
엄재민 Nhn과제 신규 게임 컨셉 제안서엄재민 Nhn과제 신규 게임 컨셉 제안서
엄재민 Nhn과제 신규 게임 컨셉 제안서
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
 
게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티
 
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
 
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
 
게임 시스템 디자인 시작하기
게임 시스템 디자인 시작하기게임 시스템 디자인 시작하기
게임 시스템 디자인 시작하기
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
게임제작개론 : #7 팀 역할과 게임 리소스에 대한 이해
게임제작개론 : #7 팀 역할과 게임 리소스에 대한 이해게임제작개론 : #7 팀 역할과 게임 리소스에 대한 이해
게임제작개론 : #7 팀 역할과 게임 리소스에 대한 이해
 
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱
 
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
 

Destacado

A Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual GameA Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual Game
action.vn
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
devCAT Studio, NEXON
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
Eonblast
 
Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures
David Freitas
 
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
David Freitas
 

Destacado (13)

A Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual GameA Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual Game
 
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
Beyond the Client-Server Architectures: A Survey of Mobile Cloud Techniques
Beyond the Client-Server Architectures: A Survey of Mobile Cloud TechniquesBeyond the Client-Server Architectures: A Survey of Mobile Cloud Techniques
Beyond the Client-Server Architectures: A Survey of Mobile Cloud Techniques
 
Time Series With OrientDB - Fosdem 2015
Time Series With OrientDB - Fosdem 2015Time Series With OrientDB - Fosdem 2015
Time Series With OrientDB - Fosdem 2015
 
Online games traffic characterization and network support
Online games traffic characterization and network supportOnline games traffic characterization and network support
Online games traffic characterization and network support
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
 
AWS Webcast - High Availability SQL Server with Amazon RDS
AWS Webcast - High Availability SQL Server with Amazon RDSAWS Webcast - High Availability SQL Server with Amazon RDS
AWS Webcast - High Availability SQL Server with Amazon RDS
 
Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures
 
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
 

Similar a MMO Design Architecture by Andrew

A practical architecture design for mmo casual game
A practical architecture design for mmo casual gameA practical architecture design for mmo casual game
A practical architecture design for mmo casual game
Son Aris
 
A practical architecture design for MMO casual game
A practical architecture design for MMO casual gameA practical architecture design for MMO casual game
A practical architecture design for MMO casual game
we20
 
Supporting architecture office 365 on windows azure
Supporting architecture office 365 on windows azure  Supporting architecture office 365 on windows azure
Supporting architecture office 365 on windows azure
Jethro Seghers
 
Dealing with and learning from the sandbox
Dealing with and learning from the sandboxDealing with and learning from the sandbox
Dealing with and learning from the sandbox
Elaine Van Bergen
 

Similar a MMO Design Architecture by Andrew (20)

A practical architecture design for mmo casual game
A practical architecture design for mmo casual gameA practical architecture design for mmo casual game
A practical architecture design for mmo casual game
 
A practical architecture design for MMO casual game
A practical architecture design for MMO casual gameA practical architecture design for MMO casual game
A practical architecture design for MMO casual game
 
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo ThaiOGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
OGDC2012 A Practical Architecture Design For MMO Casual Game_Mr. An, Ngo Thai
 
Memonic Architecture
Memonic ArchitectureMemonic Architecture
Memonic Architecture
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLift
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with Azure
 
SCORCH: Tying it All Together
SCORCH: Tying it All TogetherSCORCH: Tying it All Together
SCORCH: Tying it All Together
 
Christian Corsano, Io Interactive
Christian Corsano, Io InteractiveChristian Corsano, Io Interactive
Christian Corsano, Io Interactive
 
Supporting architecture office 365 on windows azure
Supporting architecture office 365 on windows azure  Supporting architecture office 365 on windows azure
Supporting architecture office 365 on windows azure
 
Supporting architecture office 365 on windows azure
Supporting architecture office 365 on windows azure  Supporting architecture office 365 on windows azure
Supporting architecture office 365 on windows azure
 
Tokyo Azure Meetup #4 - Build 2016 Overview
Tokyo Azure Meetup #4 -  Build 2016 OverviewTokyo Azure Meetup #4 -  Build 2016 Overview
Tokyo Azure Meetup #4 - Build 2016 Overview
 
Game On! Exploring Microservices with a Text-Based Adventure Game
Game On! Exploring Microservices with a Text-Based Adventure GameGame On! Exploring Microservices with a Text-Based Adventure Game
Game On! Exploring Microservices with a Text-Based Adventure Game
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively Multiplayer
 
Server 2016 sneak peek
Server 2016 sneak peekServer 2016 sneak peek
Server 2016 sneak peek
 
Dealing with and learning from the sandbox
Dealing with and learning from the sandboxDealing with and learning from the sandbox
Dealing with and learning from the sandbox
 
Dealing with and learning from the sandbox
Dealing with and learning from the sandboxDealing with and learning from the sandbox
Dealing with and learning from the sandbox
 
AWS re:Invent 2016: [REPEAT] How EA Leveraged Amazon Redshift and AWS Partner...
AWS re:Invent 2016: [REPEAT] How EA Leveraged Amazon Redshift and AWS Partner...AWS re:Invent 2016: [REPEAT] How EA Leveraged Amazon Redshift and AWS Partner...
AWS re:Invent 2016: [REPEAT] How EA Leveraged Amazon Redshift and AWS Partner...
 
AWS re:Invent 2016| GAM301 | How EA Leveraged Amazon Redshift and AWS Partner...
AWS re:Invent 2016| GAM301 | How EA Leveraged Amazon Redshift and AWS Partner...AWS re:Invent 2016| GAM301 | How EA Leveraged Amazon Redshift and AWS Partner...
AWS re:Invent 2016| GAM301 | How EA Leveraged Amazon Redshift and AWS Partner...
 

Más de Agate Studio

Digital Coloring by Raksa
Digital Coloring by RaksaDigital Coloring by Raksa
Digital Coloring by Raksa
Agate Studio
 
Computational Advertising by Icha
Computational Advertising by IchaComputational Advertising by Icha
Computational Advertising by Icha
Agate Studio
 
Game Programming Pattern by Restya
Game Programming Pattern by RestyaGame Programming Pattern by Restya
Game Programming Pattern by Restya
Agate Studio
 
Lee marvin pitching-hacks
Lee marvin pitching-hacksLee marvin pitching-hacks
Lee marvin pitching-hacks
Agate Studio
 
Emotiv EPOC by Neneng
Emotiv EPOC by NenengEmotiv EPOC by Neneng
Emotiv EPOC by Neneng
Agate Studio
 
How to Persuade People by Dave
How to Persuade People by DaveHow to Persuade People by Dave
How to Persuade People by Dave
Agate Studio
 
Eddie supersmash goodminton
Eddie   supersmash goodmintonEddie   supersmash goodminton
Eddie supersmash goodminton
Agate Studio
 
Satriyo digital audio gears
Satriyo   digital audio gearsSatriyo   digital audio gears
Satriyo digital audio gears
Agate Studio
 
Advanced encryption standard (aes) epul
Advanced encryption standard (aes)   epulAdvanced encryption standard (aes)   epul
Advanced encryption standard (aes) epul
Agate Studio
 
Real Time Framework by Tonny
Real Time Framework by TonnyReal Time Framework by Tonny
Real Time Framework by Tonny
Agate Studio
 
Unity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by PuthutUnity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by Puthut
Agate Studio
 
Hibernate by Jason
Hibernate by JasonHibernate by Jason
Hibernate by Jason
Agate Studio
 
Hardening Apache Web Server by Aswin
Hardening Apache Web Server by AswinHardening Apache Web Server by Aswin
Hardening Apache Web Server by Aswin
Agate Studio
 

Más de Agate Studio (20)

Digital Coloring by Raksa
Digital Coloring by RaksaDigital Coloring by Raksa
Digital Coloring by Raksa
 
Computational Advertising by Icha
Computational Advertising by IchaComputational Advertising by Icha
Computational Advertising by Icha
 
Freemium conceptanalytics leemarvin
Freemium conceptanalytics leemarvinFreemium conceptanalytics leemarvin
Freemium conceptanalytics leemarvin
 
Game Programming Pattern by Restya
Game Programming Pattern by RestyaGame Programming Pattern by Restya
Game Programming Pattern by Restya
 
Community Management by Yudhit
Community Management by YudhitCommunity Management by Yudhit
Community Management by Yudhit
 
[Habli] tds agustus
[Habli] tds agustus[Habli] tds agustus
[Habli] tds agustus
 
Wp quality bar tedy
Wp quality bar   tedyWp quality bar   tedy
Wp quality bar tedy
 
Toku DB by Aswin
Toku DB by AswinToku DB by Aswin
Toku DB by Aswin
 
Lee marvin pitching-hacks
Lee marvin pitching-hacksLee marvin pitching-hacks
Lee marvin pitching-hacks
 
Emotiv EPOC by Neneng
Emotiv EPOC by NenengEmotiv EPOC by Neneng
Emotiv EPOC by Neneng
 
Aksi – Koneksi – Deviasi by Valent
Aksi – Koneksi – Deviasi by ValentAksi – Koneksi – Deviasi by Valent
Aksi – Koneksi – Deviasi by Valent
 
How to Persuade People by Dave
How to Persuade People by DaveHow to Persuade People by Dave
How to Persuade People by Dave
 
Eddie supersmash goodminton
Eddie   supersmash goodmintonEddie   supersmash goodminton
Eddie supersmash goodminton
 
Satriyo digital audio gears
Satriyo   digital audio gearsSatriyo   digital audio gears
Satriyo digital audio gears
 
Yinan heroes of-the_strom
Yinan   heroes of-the_stromYinan   heroes of-the_strom
Yinan heroes of-the_strom
 
Advanced encryption standard (aes) epul
Advanced encryption standard (aes)   epulAdvanced encryption standard (aes)   epul
Advanced encryption standard (aes) epul
 
Real Time Framework by Tonny
Real Time Framework by TonnyReal Time Framework by Tonny
Real Time Framework by Tonny
 
Unity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by PuthutUnity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by Puthut
 
Hibernate by Jason
Hibernate by JasonHibernate by Jason
Hibernate by Jason
 
Hardening Apache Web Server by Aswin
Hardening Apache Web Server by AswinHardening Apache Web Server by Aswin
Hardening Apache Web Server by Aswin
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

MMO Design Architecture by Andrew

  • 1. @agatestudio MMO Architecture Design Andrew Publishing Agate Studio
  • 2. MMO Architecture Design Case Study from an MMO: Happy Me •http://www.slideshare.net/actionstartup/a-practical-architecture-design-for- mmo-casual-game-mr-an-ngo-thai •http://www.slideshare.net/AmazonWebServices/gdc2014-aws- gamearchitecturesfinal
  • 3. Content •Happy Me •Architecture Overview •Architecture Detail –Object Management System –Server-Client Data Synchronization –Network Message Dispatching System •Bonus: AWS Architecture
  • 4. Happy Me •What? –MMO Casual Game –Room-based active server –Web-based Unity3D client –Run on social platform •Who? –VNG from Vietnam –Technical team •3 System and framework developers •4 Game developers •12 Months development time
  • 5.
  • 8. Game Data, Logic, and Presentation
  • 10. Design •Object Management System –MVC design pattern –Dynamic data •Auto Synchronization Framework –Truly automatic (Set and forget style) –Synchronize the delta difference only •Network Message Dispatching System –Custom structure message –Easy to register message and invoke handlers
  • 11. OBJECT MANAGEMENT SYSTEM (MVC DESIGN)
  • 12. Overview diagram Model View Controller (gameplay logic) Database Network Messages View Controller (graphic logic) Server Side Client Side Unity3D 3D Models Database Model
  • 13. MVC objects mapping Model View Controller Game Objects Object Views Game Logic Modules Rooms
  • 14. Detail diagram Game Objects Object Views Game Logic No-SQL (Storage) Network Messages Object Views Graphic Logic Server Side Client Side SQL (Ranking, Log) Database Game Objects Modules Modules Rooms Rooms
  • 15. General purpose base object Object Rooms Object Views Modules Game Objects
  • 16. The “Object” requirements •A container of properties •Serialize to and deserialize from JSON •Hierarchy relationship (parent-child)
  • 17. Object dynamic properties Object Guid Property 1 Property 2 Property Meta Data •Tags •Persistent •Client transfer •Type •Long •Name •“property 2” •Version •568
  • 19. The object tree Object Unit GameObject DataObject Player DecoItem Pet UseItem ClothItem Item Quest Job PlayerView DecoView PetView ObjectView Module MainGame Authen HomeDeco SyncData Room Lobby Public Personal Object Manager
  • 20. Result Pros •MVC design pattern practice •Fully customizable property system •Manage game world into one single system Cons •Challenge to manage huge number of objects
  • 21. AUTO SYNCHRONIZATION FRAMEWORK (SERVER <-> CLIENT)
  • 22. Synchronization concept Server Room Player.Position = (10, 20) Player.OnUpdatePosition(10, 20) { model.MoveTo(10, 20); } Client
  • 23. Duties of a room Synchronization Scheduler Other Schedulers Message Processor ROOM •Process messages from clients •Send or broadcast messages to clients •Synchronize data changes between server and clients •Update status •Other duties…
  • 24. Thread pool workers Personal Room Coffee Room Downtown Room Sync Other Sync Thread Pool Other Sync Other Sync Sync Other ROOMS TASK QUEUES WORKERS
  • 25. Thread Schedulers 1 second SYNCHRONIZATION SCHEDULER OTHERS SCHEDULER 1/10 second Other Task Sync Task Sync Task Other Task Sync Task Other Task TASK QUEUE WORKER
  • 26. Object change-set Object Position Energy Gold Change Set SYNCHRONIZATION SCHEDULER SetProperty(Position, (1, 2)) Sync Task
  • 27. Result Pros •Automatic synchronization property changes •Optimal data transfer •Best use for active server game Cons •Overhead to determine what has changed since last sync.
  • 29. Custom message structure Login -Username -Password Synchronize -Type -Properties Buy Item -ItemType -Quantity Chat -Message RequestFriend -FriendGuid Serializer (Thrift, Protobuf, Json, XML) Network package Encryption
  • 30. Message factory Server Send Client Receive Serialize Deserialize Login -Username -Password Login -Username -Password OnAuthen OnMove OnRun Login Authen Move Run Message Handlers OnLogin
  • 31. Result Pros •Meaningful message by define custom structure •Familiar usage as common GUI system (MFC, WinForm) •Share message definition between server and client •Easy to apply encryption Cons •Unknown
  • 32. •Seamless MVC framework across server and client •Address the most common difficulty in design active server : the synchronization •Base framework environment for adapting any gameplay Conclusion
  • 34. Pay as you Scale