Top Banner
An Architecture for a Massively Multiplayer Online Role Playing Game Engine
61

An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Dec 22, 2015

Download

Documents

Adam Tyler
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

An Architecturefor a

Massively Multiplayer OnlineRole Playing Game Engine

Page 2: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Why Study Games?

• Draws on all parts of Computer Science- Algorithmic Analysis - Software Engineering- Graphics - Database Design- Artificial Intelligence - Networking- Security - Modeling - Human Computer Interaction

• Demanding application

• Lessons learned apply to real world productive applications

Page 3: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Architecture vs. Implementation

• Starting at design level yields better implementation

• Good software practice

Page 4: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

The Outline

• MMORPG’s

• Architecture– Paradigms– Patterns

• Our Architecture (The Dirty Details)

• Problems and Solutions

Page 5: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

MMORPG

• Massively Multiplayer Online Role Playing Game: Hundreds or more players connected via the Internet where each player takes on a role and improves his or her character

Page 6: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

MMORPG (Cont.)

• Massively Multiplayer - Scalable

• Online - Networked

• Role Play - Feature rich application

• Game - Entertaining and immersive

Page 7: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Architecture?

• Architecture (n): the manner in which the components of a computer or computer system are organized and integrated

© 2002 Merriam-Webster Online

Page 8: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Paradigms

Network Traffic ? ?

Game Scale X Security X Game Clock X Business Model X

Concern Peer to Peer Client/Server

Page 9: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Layered Pattern

The Layers pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction.

Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.

Page 10: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Layered Architecture Example

Layer 1Encapsulates similar tasks

Layer 2

Layer 3Layer 1? What's That?

Page 11: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Publisher-Subscriber Pattern

The Publisher-Subscriber pattern helpskeep the state of cooperating componentssynchronized. To achieve this it enables oneway propagation of changes: one publishernotifies any number of subscribers aboutchanges to its state.

Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.

Page 12: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Publisher-Subscriber Pattern

A

B C

A knows about B.B knows about A.Neither know anything about C. C knows nothing

about either A or B.

Page 13: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Model-View-Controller Pattern

The Model-View-Controller pattern (MVC) divides an interactive application into three components. The model contains the core functionality and data. Views display information to the user. Controllers handle user input. Views and controllers together comprise the user interface. A change-propagation mechanism ensures consistency between the user interface and the model.

Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.

Page 14: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Model View Controller

View

Model

Controller

Page 15: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Blackboard Pattern

The Blackboard pattern is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution.

Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.

Page 16: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Broker Pattern

The Broker pattern can be used to structure distributed software systems with decoupled components that interact by remote service invocations. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions.

Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.

Page 17: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 18: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 19: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 20: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 21: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 22: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 23: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 24: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 25: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 26: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 27: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 28: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Governor

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

World Component

User Component

Page 29: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 30: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 31: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 32: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 33: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 34: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Publisher-Subscriber Pattern

A

B C

A knows about B.B knows about A.Neither know anything about C. C knows nothing

about either A or B.

Page 35: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 36: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 37: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Layered ArchitectureClient

Application

Messenger

En/Decrypt

Network

Server Application

Messenger

En/Decrypt

Network

Page 38: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

The Six Problems

• Client side performance

• Network traffic

• Scalability

• Load balancing

• Secure game play

• Maintainability

Page 39: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server-side Performance

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 40: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server-side Performance

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 41: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client-side Performance

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 42: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client-side Performance

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 43: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

The Six Problems

• Client side performance

• Network traffic

• Scalability

• Load balancing

• Secure game play

• Maintainability

Page 44: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Network Traffic

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 45: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

The Six Problems

• Client side performance

• Network traffic

• Scalability

• Load balancing

• Secure game play

• Maintainability

Page 46: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Scalability and Load Balancing

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 47: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Governor

Scalability and Load Balancing

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

World Component

User Component

Page 48: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

The Six Problems

• Client side performance

• Network traffic

• Scalability

• Load balancing

• Secure game play

• Maintainability

Page 49: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Secure Gameplay

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component

Page 50: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

6. Maintainability

• Modularized

• Layered

• Well-known Architectural Patterns Used

Page 51: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

6. Maintainability

• Modularized

• Layered

• Well-known Architectural Patterns Used

Page 52: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

6. Maintainability

• Modularized

• Layered

• Well-known Architectural Patterns Used

Page 53: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

© 2002 Sony Online Entertainment

Page 54: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Six Problems Addressed

• Client Side Performance

• Minimizing Network Traffic

• Scalable

• Opportunities for Load Balancing

• Security

• Maintainability

Page 55: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 56: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

© 2002 Blizzard Software Worlds of Warcraft

Page 57: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Example : Dark Age of Camelot

© 2002 Mythic Entertainment

Page 58: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Example: Worlds of Warcraft

© 2002 Blizzard Software

Page 59: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Page 60: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Client Architecture

Input

Graphics View

AI Library

Messenger NetworkDe/EncryptMayorGraphics Component

Command

Chat

Physics Collision Detection

Command Component

Network Component

Page 61: An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Server Architecture

World DB

WorldNetwork Component

MessengerNetwork De/Encrypt

Authentication

User DB

Groups

AI Controller

Governor

World Component

User Component