Quazal Eterna Multiplayer Connectivity Irwin Chiu Hau Computer Science McGill University Winter 2004 Comp763: Modern Computer Games.

Download Report

Transcript Quazal Eterna Multiplayer Connectivity Irwin Chiu Hau Computer Science McGill University Winter 2004 Comp763: Modern Computer Games.

Quazal Eterna
Multiplayer Connectivity
Irwin Chiu Hau
Computer Science
McGill University
Winter 2004
Comp763: Modern Computer Games
Overview
 Introduction
 What is Eterna?
 Duplication Spaces
 Powerful Features
 Important Features
 Conclusion
Comp763: Modern Computer Games
Introduction
 Internet came into existence
 Network games gained popularity
 MMP online games is getting bigger and bigger
 Hundreds of players
 Thousands of players
 Millions of players ????
 Achieving this is not easy task
 Problems arise
Comp763: Modern Computer Games
Internet Problems




Unreliability
High Latencies
Bandwidth Limitation
Resource Constraints
 Traditional message passing becomes inefficient
Comp763: Modern Computer Games
Developers’ Expectations
 Developers need good solutions
 Low cost
 Low risk
 High value alternative
 Quazal comes up with a product that meets
developers’ expectations
 This commercial product is called “ETERNA”
Comp763: Modern Computer Games
Eterna
 Significantly reduce the costs associated with
 Developing a MMP game
• Time = Expense
 Running a MMP game
• Bandwidth
• Maintenance
Comp763: Modern Computer Games
Eterna
 Featuring hybrid approach:
 Peer-to-peer and Client-Server Communications
 Decentralizes game information to maximize




Reliability
Scalability
Performance
Security
Comp763: Modern Computer Games
Powerful Features






Duplication Spaces
Dead-Reckoning
Load Balancing
Hierarchical Updates
Cross Platform
Etc
 High performance, reliable MMP games that will
satisfy even the most demanding game players.
Comp763: Modern Computer Games
Important Features
 Flexibility
 Security
 System fault tolerance
 High performance, reliable MMP games that will
satisfy even the most demanding game players.
Comp763: Modern Computer Games
Duplication Spaces™




Introduction
Technology Overview
All About Duplication Spaces
Conclusion
Comp763: Modern Computer Games
Introduction
 Duplication Spaces
 Eterna’s underlying technology
 Eterna’s essential component
Comp763: Modern Computer Games
Technology Overview
Quazal’s Philosophy:
 Based on three fundamental concepts
 High-Level abstraction
 Descriptive approach
 Distributed object structure
Comp763: Modern Computer Games
Duplication Spaces™







What is a Duplication Space?
How to Declare a Duplication Space
Publish-Subscribe Model
Cells
Multiple Duplication Spaces
Scalability
Communication Model
Comp763: Modern Computer Games
What is a Duplication Space?
 It is a space where a duplicated object
can discover or can be discovered by,
another duplicated object
 It allows the developer to control
where and how many duplicas of an object are
published and when they are deleted
Comp763: Modern Computer Games
How to declare a Duplication Space?
 Data Definition Language ( DDL )

DDL
based on classes
• Duplicated Object
• DataSet
• DupSpace
Compiled
C++ Classes
Comp763: Modern Computer Games
Publish-Subscribe Model
 In a duplicated space, duplicated objects are
 Grouped together
 Related by a user-defined function (match policy)
 Assigned the role of
 subscriber
 publisher
 both
Comp763: Modern Computer Games
Publish-Subscribe Model
 A subscriber is an
object that can discover
other objects within a
duplication space
 A publisher is an object
that can be discovered
within a duplication
space
Neverwinter nights
Source: http://nwn.bioware.com
Comp763: Modern Computer Games
Subscriber’s Task
 A subscriber will discover the
replica of a publisher on the station where the
duplication master of the subscriber resides
Station 1 ( subscriber )
Station 2 (publisher )
World of Warcraft
Source: http://www.blizzard.com
Comp763: Modern Computer Games
Publisher’s Task
 A publisher will create a duplica of itself
on the station where the duplication master
of the subscriber resides
Station 1
Station 2
World of Warcraft
Source: http://www.blizzard.com
Comp763: Modern Computer Games
Match Policy
 Publishers and subscribers are related by a
user-defined function called “match policy”
Conceptual diagram of a duplication space
Source: Quazal: Duplication Spaces
Comp763: Modern Computer Games
Match Policy
 The PSMatch function determines whether or not
 A subscriber discovers a replica of the publisher
 An object should be discovered on a particular station
 The PSMatch compares each duplica of a publisher
to each duplica of the subscriber
Conceptual diagram of a duplication space
Source: Quazal: Duplication Spaces
Comp763: Modern Computer Games
Match Policy
 The PSMatch function is defined by the system
 The match condition
 Is defined by the developer
 Is the conditions under which the function will return
• “true” or “false”
Conceptual diagram of a duplication space
Source: Quazal: Duplication Spaces
Comp763: Modern Computer Games
Match Condition
 If PSMatch returns true, then:
 The publisher can be discovered
1. The duplica of the publisher is created on the station
where the duplication master of the subscriber
resides
2. The subscriber will discover the publisher object
 If PSMatch returns false:
 The publisher cannot be discovered
 The duplica of the publisher will not be created nor
will it be discovered by the subscriber
Comp763: Modern Computer Games
Example
returns true
Illustration of the PSMatch mechanism
Source: Quazal: Duplication Spaces
P1: publisher
P’1: duplica of the publisher
S2: subscriber
S’2: duplica of the subscriber
Station 3 acts like a server
PSMatch returns true  Station 2 discovers duplica of P1
Comp763: Modern Computer Games
Cells
Recap:
 In the previous scenario, publisher-subscriber match
computations are done on one station
As the size of a session increases
 The number of computation increases
To reduce the resource usage on a given station
 Distribute the processing of the match computation
between many stations
Comp763: Modern Computer Games
Cells
Solution:
 Divide the duplication space into CELLS
Each cell
 Is responsible for a certain portion of the match computations
Duplication space with cells
Source: Quazal
Comp763: Modern Computer Games
Cells
The creation of CELLS enables the
 PSMatch computations to be distributed between stations
participating in the session
Station 1
Cell 1
Station 2
Cell 2
Duplication space with cells
Source: Quazal
Comp763: Modern Computer Games
Cell Match Function
We need to determine if a particular duplicated
object will be involved in a particular subtask
 This is defined by the CellMatch function
CellMatch function determines
 If an object should be discovered in a cell
Comp763: Modern Computer Games
CellMatch Condition
Cell Match conditions are given by the developer
 For when the CellMatch function will return true of false
If CellMatch returns true, then:
 The duplica of the publisher or subscriber is created on
the station where the duplication master of the cell resides
After the CellMatch is performed
 PSMatch is performed on the publishers and subscriber
where the duplication master of the cell resides
Comp763: Modern Computer Games
Example
Illustration of the CellMatch mechanism
Source: Quazal: Duplication Spaces
C3 : Cell
C’3 : Duplica of Cell
Comp763: Modern Computer Games
Duplicated Object Migration
 Eterna allows the control of Duplicated Objects
 Allows the duplication masters to migrate between
stations
 Used in
 Fault tolerance
 Load balancing
 Eliminate the effect of latency
Comp763: Modern Computer Games
Multiple Duplication Spaces
It is possible to define several duplication spaces
within a game
Advantages:
 Simplify implementation of PSMatch and CellMatch
 Easier to design the game
Note:
 There’s no restriction on how many duplication spaces an
object may belong to
Comp763: Modern Computer Games
Ex: 3D Chat Room
…
One DupSpace
dataset RoomDescription {
dohandle Zone;
string Name;
string Topic;
};
dataset:
location
ZoneDescription
RoomDescription
dupspace RoomSpace;
dupspace: RoomSpace
doclass:
User / Participant / Observer
Zone
Room
PSMatch:
returns true if users are in the same
room
doclass User {
Location m_dsLoc;
subscriber in RoomSpace;
};
doclass Participant : User {
publisher in RoomSpace;
};
doclass Room {
RoomDescription m_dsDesc;
publisher in RoomSpace;
};
…
Comp763: Modern Computer Games
Scalability
Quazal Eterna Limitations
 210, (1024) classes
 222,(4 millions) duplication masters
Hardware Limitations
 Memory
 CPU
 Network bandwidth
Comp763: Modern Computer Games
Communication Model
 Eterna performs automatic message routing
 Eterna implements hierarchical and cascading message
passing
Duplica information update :
Duplication Master
Duplica
Duplica
Duplica
 Multicast group objects are arranged in a tree-like
configuration
 Distribute update messages without excessive bandwidth
Comp763: Modern Computer Games
End of Duplication Spaces
Comp763: Modern Computer Games
Compensating for Latency and
Bandwidth Restrictions
 Dead-Reckoning ( Powerful Feature )
 Reduce the appearance of lag
 Local corrections
 Handle continuity breaks, such as walls and teleports
 Lookahead and loopback
 Predicts future events (on duplication masters)
 Etc, …….
Comp763: Modern Computer Games
Load Balancing
 Distribute workload
 Ensures workload correspond to station capacity
 Reduce bandwidth usage
 When user enters or leaves
 The workload distribution will change to optimize
processing power and bandwidth
Comp763: Modern Computer Games
Load Balancing
 Developers have complete control over how load
balancing is performed in the game
 Any quantities can be load balanced by load
balancing policies
 Load metrics
•
•
•
•
CPU load
Bandwidth usage
Memory load
Duplicated Objects
 Capacity metrics
Comp763: Modern Computer Games
Flexibility
 Integrated middlewares
 3D
 Physics
 AI
 Plug-ins to suit developers’ need
 Transport protocol
 Compression & Encryption algorithms
 Still not satisfied?
 Our own plug-ins
Comp763: Modern Computer Games
Flexibility
 Cross Platform
Communicate
Source: Square-Enix
Comp763: Modern Computer Games
Security
Security vs Performance
 Hybrid Peer to Peer / Client-Server architecture
Client-Server
 Sensitive data: login, password
 Key game variables
P2P
 Less sensitive data can be sent directly between players
 High performance
Comp763: Modern Computer Games
System Fault Tolerance
 Reliability
 By design, distributed systems are more reliable than
client-server as there is no central point of failure
 If one station fails
 Fault tolerance allows a duplication master on the
failed server to migrate to another station

 The game will continue seamlessly
Comp763: Modern Computer Games
Conclusion
 Eterna seems powerful enough for building MMO
games
 Eterna also seems reliable and secure
 Eterna provides flexibility to developers
Does Eterna satisfies even the most demanding
game players ?????
Comp763: Modern Computer Games
Questions?
Comp763: Modern Computer Games