Title: Quazal Eterna Multiplayer Connectivity
1Quazal EternaMultiplayer Connectivity
- Irwin Chiu Hau
- Computer Science
- McGill University
- Winter 2004
2Overview
- Introduction
- What is Eterna?
- Duplication Spaces
- Powerful Features
- Important Features
- Conclusion
3Introduction
- 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
4Internet Problems
- Unreliability
- High Latencies
- Bandwidth Limitation
- Resource Constraints
- Traditional message passing becomes inefficient
5Developers 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
6Eterna
- Significantly reduce the costs associated with
- Developing a MMP game
- Time Expense
- Running a MMP game
- Bandwidth
- Maintenance
7Eterna
- Featuring hybrid approach
- Peer-to-peer and Client-Server Communications
- Decentralizes game information to maximize
- Reliability
- Scalability
- Performance
- Security
8Powerful 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.
9Important Features
- Flexibility
- Security
- System fault tolerance
- High performance, reliable MMP games that will
satisfy even the most demanding game players.
10Duplication Spaces
- Introduction
- Technology Overview
- All About Duplication Spaces
- Conclusion
11Introduction
- Duplication Spaces
- Eternas underlying technology
- Eternas essential component
12Technology Overview
- Quazals Philosophy
- Based on three fundamental concepts
- High-Level abstraction
- Descriptive approach
- Distributed object structure
13Duplication Spaces
- What is a Duplication Space?
- How to Declare a Duplication Space
- Publish-Subscribe Model
- Cells
- Multiple Duplication Spaces
- Scalability
- Communication Model
14What 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
15How to declare a Duplication Space?
- Data Definition Language ( DDL )
- based on classes
- Duplicated Object
- DataSet
- DupSpace
Compiled
DDL
C Classes
16Publish-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
17Publish-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
18Subscribers 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
19Publishers 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
20Match Policy
- Publishers and subscribers are related by a
- user-defined function called match policy
Conceptual diagram of a duplication space Source
Quazal Duplication Spaces
21Match 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
22Match 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
23Match Condition
- If PSMatch returns true, then
- The publisher can be discovered
- The duplica of the publisher is created on the
station where the duplication master of the
subscriber resides - 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
24Example
Illustration of the PSMatch mechanism Source
Quazal Duplication Spaces
P1 publisher P1 duplica of the publisher S2
subscriber S2 duplica of the
subscriber Station 3 acts like a server
PSMatch returns true ? Station 2 discovers
duplica of P1
25Cells
- 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
26Cells
- 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
27Cells
- The creation of CELLS enables the
- PSMatch computations to be distributed between
stations participating in the session
Duplication space with cells Source Quazal
28Cell 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
29CellMatch 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
30Example
Illustration of the CellMatch mechanism Source
Quazal Duplication Spaces
C3 Cell C3 Duplica of Cell
31Duplicated 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
32Multiple 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
- Theres no restriction on how many duplication
spaces an object may belong to
33Ex 3D Chat Room
- One DupSpace
- dataset
- location
- ZoneDescription
- RoomDescription
- dupspace RoomSpace
- doclass
- User / Participant / Observer
- Zone
- Room
- PSMatch
- returns true if users are in the same room
-
- dataset RoomDescription
- dohandle Zone
- string Name
- string Topic
-
- dupspace RoomSpace
- doclass User
- Location m_dsLoc
- subscriber in RoomSpace
-
- doclass Participant User
- publisher in RoomSpace
-
34Scalability
- Quazal Eterna Limitations
- 210, (1024) classes
- 222,(4 millions) duplication masters
- Hardware Limitations
- Memory
- CPU
- Network bandwidth
35Communication Model
- Eterna performs automatic message routing
- Eterna implements hierarchical and cascading
message passing - Multicast group objects are arranged in a
tree-like configuration - Distribute update messages without excessive
bandwidth
Duplica information update
36End of Duplication Spaces
37Compensating 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, .
38Load 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
39Load 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
40Flexibility
- Integrated middlewares
- 3D
- Physics
- AI
- Plug-ins to suit developers need
- Transport protocol
- Compression Encryption algorithms
- Still not satisfied?
- Our own plug-ins
41Flexibility
Source Square-Enix
42Security
- 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
43System 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
44Conclusion
- 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 ?????
45Questions?