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