a practical architecture design form mo casual gamemr anngothai 120819235704 phpapp02
TRANSCRIPT
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
1/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
2/36
Happy Me Architecture Overview
Architecture Detail
Object Management System
Server-Client Data Synchronization
Network Message Dispatching System
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
3/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
4/36
MMO casual game Room-based active server
Web-based Unity3D client
Run on social platform
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
5/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
6/36
3 system and framework developers 4 game developers
12 months of development
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
7/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
8/36
Database
Game Servers
Client
Internet
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
9/36
Server Side Client Side
Game Logic
PlayerData
PlayerData
PlayerData
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
10/36
MODEL
CONTRO-LLERVIEW
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
11/36
ObjectManagementSystem
Network MessageDispatchingSystem
AutoSynchronization
Framework
MAKE OUR LIFE EASIER
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
12/36
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
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
13/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
14/36
Model
View
Controller(gameplay logic)
Database
Network
Messages
View
Controller(graphic logic)
Server Side Client Side Unity3D
3DModels
Database
Model
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
15/36
Model
View
Controller
GameObjects
ObjectViews
GameLogic
Modules
Rooms
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
16/36
GameObjects
ObjectViews
Game
Logic
No-SQL(Storage)
NetworkMessages
ObjectViews
Graphic
Logic
Server Side Client Side
SQL(Ranking, Log)
Database
GameObjects
Modules Modules
Rooms Rooms
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
17/36
Object
Rooms
ObjectViews
ModulesGameObjects
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
18/36
A container of properties Serialize to and deserialize from JSON
Hierarchy relationship (parent-child)
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
19/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
20/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
21/36
Object
Unit
GameObject
DataObject
Player
DecoItem
Pet
UseItem
ClothItem
Item
Quest
Job
PlayerViewDecoView PetView
ObjectView
Module
MainGame
Authen
HomeDeco
SyncDataRoom
Lobby Public Personal
ObjectManager
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
22/36
Pros MVC design pattern practice
Fully customizable property system
Manage game world into one singlesystem
Cons Challenge to manage huge number of
objects
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
23/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
24/36
ServerRoomPlayer.Position = (10, 20)
Player.OnUpdatePosition(10, 20){
model.MoveTo(10, 20);}
Client
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
25/36
Synchronization
Scheduler
Other
Schedulers
Message
Processor
ROOM
Process messagesfrom clients Send or broadcast
messages to clients
Synchronize datachanges betweenserver and clients
Update status Other duties
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
26/36
PersonalRoom
CoffeeRoom
DowntownRoom
Sync
Other
Sync
Thread Pool
Other
Sync
Other
Sync
Sync
Other
ROOMS
TASKQUEUES
WORKERS
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
27/36
Thread
1 second
SYNCHRONIZATIONSCHEDULER
OTHERS SCHEDULER
1/10 second
Other Task
Sync Task
Sync Task
Other Task
SyncTask
Other
Task
TASK QUEUE
WORKER
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
28/36
ObjectPosition
Energy
Gold
Change Set
SYNCHRONIZATIONSCHEDULER
SetProperty(Position, (1, 2))
SyncTask
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
29/36
Pros Automatic synchronization property changes
Optimal data transfer
Best use for active server game
Cons
Overhead to determine what has changedsince last sync.
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
30/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
31/36
Login- Username- Password
Synchronize- Type- Properties
Buy Item- ItemType- Quantity
Chat- Message
RequestFriend- FriendGuid
Serializer(Thrift, Protobuf, Json, XML)
Network package
Encryption
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
32/36
Server
Send
Client
Receive
Serialize
Deserialize
Login- Username
- Password
Login- Username- Password
OnAuthen
OnMove
OnRun
Login
Authen
MoveRun
MessageHandlers
OnLogin
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
33/36
Pros
Meaningful message by define customstructure
Familiar usage as common GUI system(MFC, WinForm)
Share message definition between serverand client
Easy to apply encryption
Cons
Unknown
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
34/36
Seamless MVC framework across serverand client
Address the most common difficulty in
design active server : the synchronization Base framework environment for adapting
any gameplay
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
35/36
-
8/10/2019 A practical architecture design form mo casual gamemr Anngothai 120819235704 Phpapp02
36/36