SlideShare a Scribd company logo
• Happy Me
• Architecture Overview
• Architecture Detail
  Object Management System
  Server-Client Data Synchronization
  Network Message Dispatching System
•   MMO casual game
•   Room-based active server
•   Web-based Unity3D client
•   Run on social platform
• 3 system and framework developers
• 4 game developers
• 12 months of development
Internet

Database
                                     Client




           Game Servers
Player
              Data




                  Player
                   Data


Game Logic

             Player
              Data



    Server Side            Client Side
Object                            Network Message
Management                            Dispatching
  System                                System




                      Auto
             MAKESynchronization
                  OUR LIFE EASIER
                   Framework
• 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 messages and invoke handlers
Database



 Database




  Model                                 Model



Controller            Network         Controller
(gameplay logic)      Messages        (graphic logic)




                                                         3D
   View                                  View
                                                        Models


        Server Side              Client Side            Unity3D
Game
 Model
             Objects



             Object
  View                 Rooms
             Views



             Game
Controller             Modules
             Logic
Database



No-SQL          SQL
(Storage)   (Ranking, Log)




 Game                                                      Game
Objects                                                   Objects


Game                         Network                      Graphic
                   Modules              Modules
Logic                        Messages                      Logic


Object                                                    Object
                     Rooms              Rooms
Views                                                     Views


            Server Side                     Client Side
Object
           Views




 Game
Objects   Object    Modules




           Rooms
• A container of properties
• Serialize to and deserialize from JSON
• Hierarchy relationship (parent-child)
Property Meta Data

                      • Tags
                          • Persistent
                          • Client transfer
         Guid
                      • Type
Object   Property 1       • Long
         Property 2
                      • Name
                         • “property 2”

                      • Version
                         • 568
Object
                                               Manager


    DecoView    PetView     PlayerView                            Player
                                                         Unit
                                                                   Pet
               ObjectView
MainGame                                       GameObject
                                                                 DecoItem

 Authen                                                  Item    UseItem
               Module         Object
HomeDeco                                                         ClothItem

                                                                  Quest
SyncData                       Room
                                                    DataObject

                                                                   Job
                    Lobby      Public    Personal
Pros
• MVC design pattern practice
• Fully customizable property system
• Manage game world into one single
  system

Cons
• Challenge to manage huge number of
  objects
Server
Player.Position = (10, 20)        Room




Player.OnUpdatePosition(10, 20)
{
                                           Client
    model.MoveTo(10, 20);
}
• Process messages
• Update status                                          from clients
• Other duties…                                        • Send or broadcast
                               Message                   messages to clients
                               Processor




                    Other
                  Schedulers



                                     Synchronization
                                           Scheduler




                                                       • Synchronize data
                                                         changes between
                                                         server and clients
                                ROOM
Coffee     Downtown    Personal
 ROOMS
          Room         Room       Room




           Sync        Other       Sync
   TASK
           Other       Sync        Sync
 QUEUES    Sync        Other       Other




WORKERS            Thread Pool
1 second

                                               Other
OTHERS SCHEDULER
                                               Task

SYNCHRONIZATION                  Sync
      SCHEDULER                  Task

                   1/10 second

                                        Other Task

                                        Sync Task
      TASK QUEUE
                                        Other Task
                                        Sync Task



         WORKER                           Thread
Position
SetProperty(Position, (1, 2))   Object          Energy
                                                 Gold

                                           Change Set




SYNCHRONIZATION                          Sync
      SCHEDULER                          Task
Pros
• Automatic synchronization property changes
• Optimal data transfer
• Best use for active server game

Cons
• Overhead to determine what has changed
  since last sync.
Login        Synchronize    Buy Item
                                            Chat           RequestFriend
 - Username   - Type         - ItemType
                                            - Message      - FriendGuid
 - Password   - Properties   - Quantity




Encryption

                                                        Network package
                               Serializer
                    (Thrift, Protobuf, Json, XML)
Login                        Server
- Username
- Password
                                                          OnLogin
                                               Message
 Send
                                               Handlers
                 Serialize
                                               Login      OnAuthen
                                               Authen
                                               Move
                                               Run        OnMove

              Deserialize
                                                           OnRun

                                  Login
             Client               - Username
                                  - Password


                                  Receive
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
A Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual Game

More Related Content

What's hot

양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
devCAT Studio, NEXON
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
devCAT Studio, NEXON
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
ChangHyun Won
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 

What's hot (20)

양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
 
Bradfield, Chris - Godot engine game development projects_ build five cross-p...
Bradfield, Chris - Godot engine game development projects_ build five cross-p...Bradfield, Chris - Godot engine game development projects_ build five cross-p...
Bradfield, Chris - Godot engine game development projects_ build five cross-p...
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについてゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
게임강연정리
게임강연정리게임강연정리
게임강연정리
 
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
 
모바일 게임 개발
모바일 게임 개발모바일 게임 개발
모바일 게임 개발
 

Viewers also liked

MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by Andrew
Agate Studio
 
Data storage solutions for SNS game
Data storage solutions for SNS gameData storage solutions for SNS game
Data storage solutions for SNS game
action.vn
 
Training and developing human resources in a game studio
Training and developing human resources in a game studioTraining and developing human resources in a game studio
Training and developing human resources in a game studio
action.vn
 
I want to be a GUI designer- gamer usability and designer mission
I want to be a GUI designer- gamer usability and designer missionI want to be a GUI designer- gamer usability and designer mission
I want to be a GUI designer- gamer usability and designer mission
action.vn
 
Behind the scene of Cam Gioi's art work
Behind the scene of Cam Gioi's art workBehind the scene of Cam Gioi's art work
Behind the scene of Cam Gioi's art work
action.vn
 
Physics for Game Programmers
Physics for Game ProgrammersPhysics for Game Programmers
Physics for Game Programmers
Ung-Su Lee
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13
koolkampus
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
Eonblast
 

Viewers also liked (16)

MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by Andrew
 
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
 
[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
 
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
 
Data storage solutions for SNS game
Data storage solutions for SNS gameData storage solutions for SNS game
Data storage solutions for SNS game
 
Training and developing human resources in a game studio
Training and developing human resources in a game studioTraining and developing human resources in a game studio
Training and developing human resources in a game studio
 
I want to be a GUI designer- gamer usability and designer mission
I want to be a GUI designer- gamer usability and designer missionI want to be a GUI designer- gamer usability and designer mission
I want to be a GUI designer- gamer usability and designer mission
 
Behind the scene of Cam Gioi's art work
Behind the scene of Cam Gioi's art workBehind the scene of Cam Gioi's art work
Behind the scene of Cam Gioi's art work
 
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...
 
Physics for Game Programmers
Physics for Game ProgrammersPhysics for Game Programmers
Physics for Game Programmers
 
Game Programming 11 - Game Physics
Game Programming 11 - Game PhysicsGame Programming 11 - Game Physics
Game Programming 11 - Game Physics
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
 
Basic Server PPT (THDC)
Basic Server PPT (THDC)Basic Server PPT (THDC)
Basic Server PPT (THDC)
 
Valves presentation
Valves presentationValves presentation
Valves presentation
 

Similar to 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
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
 
Flash Camp Chennai - Social network with ORM
Flash Camp Chennai - Social network with ORMFlash Camp Chennai - Social network with ORM
Flash Camp Chennai - Social network with ORM
RIA RUI Society
 
Parallel Programming in .NET
Parallel Programming in .NETParallel Programming in .NET
Parallel Programming in .NET
SANKARSAN BOSE
 
Using postgre sql for 3d cms
Using postgre sql for 3d cmsUsing postgre sql for 3d cms
Using postgre sql for 3d cms
Tim Child
 
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation	[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
종빈 오
 
SharePoint 2010 Online for Developer
SharePoint 2010 Online for DeveloperSharePoint 2010 Online for Developer
SharePoint 2010 Online for Developer
K.Mohamed Faizal
 
Building Scalable SQL Applications Using NoSQL Paradigms
Building Scalable SQL Applications Using NoSQL ParadigmsBuilding Scalable SQL Applications Using NoSQL Paradigms
Building Scalable SQL Applications Using NoSQL Paradigms
Michael Rys
 
Alfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPMAlfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPM
Joram Barrez
 

Similar to A Practical Architecture Design for MMO Casual Game (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
 
Jopenmeraverse introduction
Jopenmeraverse introductionJopenmeraverse introduction
Jopenmeraverse introduction
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLift
 
Scaling with SQL Server and SQL Azure Federations
Scaling with SQL Server and SQL Azure FederationsScaling with SQL Server and SQL Azure Federations
Scaling with SQL Server and SQL Azure Federations
 
Game object models - Game Engine Architecture
Game object models - Game Engine ArchitectureGame object models - Game Engine Architecture
Game object models - Game Engine Architecture
 
Datastage Online Training
Datastage Online TrainingDatastage Online Training
Datastage Online Training
 
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
 
Flash Camp Chennai - Social network with ORM
Flash Camp Chennai - Social network with ORMFlash Camp Chennai - Social network with ORM
Flash Camp Chennai - Social network with ORM
 
Parallel Programming in .NET
Parallel Programming in .NETParallel Programming in .NET
Parallel Programming in .NET
 
Using postgre sql for 3d cms
Using postgre sql for 3d cmsUsing postgre sql for 3d cms
Using postgre sql for 3d cms
 
Innovations in Grid Computing with Oracle Coherence
Innovations in Grid Computing with Oracle CoherenceInnovations in Grid Computing with Oracle Coherence
Innovations in Grid Computing with Oracle Coherence
 
Crawlware
CrawlwareCrawlware
Crawlware
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation	[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
[shaderx7] 8.1 Cross-Platform Rendering Thread : Design and Implementation
 
SharePoint 2010 Online for Developer
SharePoint 2010 Online for DeveloperSharePoint 2010 Online for Developer
SharePoint 2010 Online for Developer
 
Building Scalable SQL Applications Using NoSQL Paradigms
Building Scalable SQL Applications Using NoSQL ParadigmsBuilding Scalable SQL Applications Using NoSQL Paradigms
Building Scalable SQL Applications Using NoSQL Paradigms
 
Alfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPMAlfresco Devcon 2010: Introduction to Activiti BPM
Alfresco Devcon 2010: Introduction to Activiti BPM
 
Memonic Architecture
Memonic ArchitectureMemonic Architecture
Memonic Architecture
 
Lag Sucks! GDC 2012
Lag Sucks! GDC 2012Lag Sucks! GDC 2012
Lag Sucks! GDC 2012
 

More from action.vn

ComScore - Southeast Asia Digital Future in Focus 2013
ComScore - Southeast Asia Digital Future in Focus 2013ComScore - Southeast Asia Digital Future in Focus 2013
ComScore - Southeast Asia Digital Future in Focus 2013
action.vn
 
Toan canh thuong mai dien tu 2012
Toan canh thuong mai dien tu 2012Toan canh thuong mai dien tu 2012
Toan canh thuong mai dien tu 2012
action.vn
 
White book 2012 - Các vấn đề thương mại/đầu tư và kiến nghị
White book 2012 - Các vấn đề thương mại/đầu tư và kiến nghịWhite book 2012 - Các vấn đề thương mại/đầu tư và kiến nghị
White book 2012 - Các vấn đề thương mại/đầu tư và kiến nghị
action.vn
 
Amazon Annual Report
Amazon Annual ReportAmazon Annual Report
Amazon Annual Report
action.vn
 
HIGH IMPACT ENTREPRENEURS
HIGH IMPACT ENTREPRENEURSHIGH IMPACT ENTREPRENEURS
HIGH IMPACT ENTREPRENEURS
action.vn
 
VC-Corp Intro
VC-Corp IntroVC-Corp Intro
VC-Corp Intro
action.vn
 
Mạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thị
Mạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thịMạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thị
Mạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thị
action.vn
 
Mobiles share of the mix marketing evolution
Mobiles share of the mix marketing evolutionMobiles share of the mix marketing evolution
Mobiles share of the mix marketing evolution
action.vn
 
Khảo sát lứa tuổi Teen Việt Nam 2012
Khảo sát lứa tuổi Teen Việt Nam 2012Khảo sát lứa tuổi Teen Việt Nam 2012
Khảo sát lứa tuổi Teen Việt Nam 2012
action.vn
 
Creative design for mobile social game
Creative design for mobile social gameCreative design for mobile social game
Creative design for mobile social game
action.vn
 
Balance in SNS by Energy
Balance in SNS by EnergyBalance in SNS by Energy
Balance in SNS by Energy
action.vn
 
Operating Vietnamese Games in China
Operating Vietnamese Games in ChinaOperating Vietnamese Games in China
Operating Vietnamese Games in China
action.vn
 

More from action.vn (20)

Bao cao tai nguyen Internet VN 2013
Bao cao tai nguyen Internet VN 2013Bao cao tai nguyen Internet VN 2013
Bao cao tai nguyen Internet VN 2013
 
ComScore - Southeast Asia Digital Future in Focus 2013
ComScore - Southeast Asia Digital Future in Focus 2013ComScore - Southeast Asia Digital Future in Focus 2013
ComScore - Southeast Asia Digital Future in Focus 2013
 
comScore's Presentation Google's Think Digital Vietnam 11-Dec-2012
comScore's Presentation Google's Think Digital Vietnam 11-Dec-2012comScore's Presentation Google's Think Digital Vietnam 11-Dec-2012
comScore's Presentation Google's Think Digital Vietnam 11-Dec-2012
 
Toan canh thuong mai dien tu 2012
Toan canh thuong mai dien tu 2012Toan canh thuong mai dien tu 2012
Toan canh thuong mai dien tu 2012
 
White book 2012 - Các vấn đề thương mại/đầu tư và kiến nghị
White book 2012 - Các vấn đề thương mại/đầu tư và kiến nghịWhite book 2012 - Các vấn đề thương mại/đầu tư và kiến nghị
White book 2012 - Các vấn đề thương mại/đầu tư và kiến nghị
 
Amazon Annual Report
Amazon Annual ReportAmazon Annual Report
Amazon Annual Report
 
HIGH IMPACT ENTREPRENEURS
HIGH IMPACT ENTREPRENEURSHIGH IMPACT ENTREPRENEURS
HIGH IMPACT ENTREPRENEURS
 
Bao cao EBI TMDT 2012
Bao cao EBI TMDT 2012Bao cao EBI TMDT 2012
Bao cao EBI TMDT 2012
 
VC-Corp Intro
VC-Corp IntroVC-Corp Intro
VC-Corp Intro
 
Mobile Trends: Cơ hội còn bỏ ngỏ
Mobile Trends: Cơ hội còn bỏ ngỏMobile Trends: Cơ hội còn bỏ ngỏ
Mobile Trends: Cơ hội còn bỏ ngỏ
 
Mobile VAS market in Vietnam
Mobile VAS market in VietnamMobile VAS market in Vietnam
Mobile VAS market in Vietnam
 
Vietnam’s Web in 2012
Vietnam’s Web in 2012Vietnam’s Web in 2012
Vietnam’s Web in 2012
 
Mạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thị
Mạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thịMạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thị
Mạng quảng cáo gia tăng hiệu quả cho quảng cáo hiển thị
 
IDC Q3 2012 Mobile Developer Report
IDC Q3 2012 Mobile Developer ReportIDC Q3 2012 Mobile Developer Report
IDC Q3 2012 Mobile Developer Report
 
Why not to do a startup?
Why not to do a startup?Why not to do a startup?
Why not to do a startup?
 
Mobiles share of the mix marketing evolution
Mobiles share of the mix marketing evolutionMobiles share of the mix marketing evolution
Mobiles share of the mix marketing evolution
 
Khảo sát lứa tuổi Teen Việt Nam 2012
Khảo sát lứa tuổi Teen Việt Nam 2012Khảo sát lứa tuổi Teen Việt Nam 2012
Khảo sát lứa tuổi Teen Việt Nam 2012
 
Creative design for mobile social game
Creative design for mobile social gameCreative design for mobile social game
Creative design for mobile social game
 
Balance in SNS by Energy
Balance in SNS by EnergyBalance in SNS by Energy
Balance in SNS by Energy
 
Operating Vietnamese Games in China
Operating Vietnamese Games in ChinaOperating Vietnamese Games in China
Operating Vietnamese Games in China
 

Recently uploaded

Recently uploaded (20)

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
"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
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
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
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 

A Practical Architecture Design for MMO Casual Game

  • 1.
  • 2. • Happy Me • Architecture Overview • Architecture Detail Object Management System Server-Client Data Synchronization Network Message Dispatching System
  • 3.
  • 4. MMO casual game • Room-based active server • Web-based Unity3D client • Run on social platform
  • 5.
  • 6. • 3 system and framework developers • 4 game developers • 12 months of development
  • 7.
  • 8. Internet Database Client Game Servers
  • 9. Player Data Player Data Game Logic Player Data Server Side Client Side
  • 10.
  • 11. Object Network Message Management Dispatching System System Auto MAKESynchronization OUR LIFE EASIER Framework
  • 12. • 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 messages and invoke handlers
  • 13.
  • 14. Database Database Model Model Controller Network Controller (gameplay logic) Messages (graphic logic) 3D View View Models Server Side Client Side Unity3D
  • 15. Game Model Objects Object View Rooms Views Game Controller Modules Logic
  • 16. Database No-SQL SQL (Storage) (Ranking, Log) Game Game Objects Objects Game Network Graphic Modules Modules Logic Messages Logic Object Object Rooms Rooms Views Views Server Side Client Side
  • 17. Object Views Game Objects Object Modules Rooms
  • 18. • A container of properties • Serialize to and deserialize from JSON • Hierarchy relationship (parent-child)
  • 19. Property Meta Data • Tags • Persistent • Client transfer Guid • Type Object Property 1 • Long Property 2 • Name • “property 2” • Version • 568
  • 20.
  • 21. Object Manager DecoView PetView PlayerView Player Unit Pet ObjectView MainGame GameObject DecoItem Authen Item UseItem Module Object HomeDeco ClothItem Quest SyncData Room DataObject Job Lobby Public Personal
  • 22. Pros • MVC design pattern practice • Fully customizable property system • Manage game world into one single system Cons • Challenge to manage huge number of objects
  • 23.
  • 24. Server Player.Position = (10, 20) Room Player.OnUpdatePosition(10, 20) { Client model.MoveTo(10, 20); }
  • 25. • Process messages • Update status from clients • Other duties… • Send or broadcast Message messages to clients Processor Other Schedulers Synchronization Scheduler • Synchronize data changes between server and clients ROOM
  • 26. Coffee Downtown Personal ROOMS Room Room Room Sync Other Sync TASK Other Sync Sync QUEUES Sync Other Other WORKERS Thread Pool
  • 27. 1 second Other OTHERS SCHEDULER Task SYNCHRONIZATION Sync SCHEDULER Task 1/10 second Other Task Sync Task TASK QUEUE Other Task Sync Task WORKER Thread
  • 28. Position SetProperty(Position, (1, 2)) Object Energy Gold Change Set SYNCHRONIZATION Sync SCHEDULER Task
  • 29. Pros • Automatic synchronization property changes • Optimal data transfer • Best use for active server game Cons • Overhead to determine what has changed since last sync.
  • 30.
  • 31. Login Synchronize Buy Item Chat RequestFriend - Username - Type - ItemType - Message - FriendGuid - Password - Properties - Quantity Encryption Network package Serializer (Thrift, Protobuf, Json, XML)
  • 32. Login Server - Username - Password OnLogin Message Send Handlers Serialize Login OnAuthen Authen Move Run OnMove Deserialize OnRun Login Client - Username - Password Receive
  • 33. 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
  • 34. • 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

Editor's Notes

  1. Review lại flow