a practical architecture design form mo casual gamemr anngothai 120819235704 phpapp02

Upload: greenriver48

Post on 02-Jun-2018

219 views

Category:

Documents


0 download

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