Lecture 18
Lecture 18
BY AAKASH AMONKAR
Outline
Overview of multiplayer online games (MOGs)
Research issues
Sample of recent papers
A few observations
Types of MOG:
Categorization by Genre
First-Person Shooter (FPS)
Role-Playing Game (RPG)
Real-Time Strategy (RTS)
First-Person Shooter (FPS)
Game world
Player character
Weapons
Aim + shoot
Call of Duty, Activision / Infinity Ward
FPS (cont.)
Game
world
Role-Playing Game (RPG)
Game world
Player character
Weapons
Accomplish task,
Improve (virtual)
ability, accomplish
harder task, etc.
Diablo II, Blizzard Entertainment / Blizzard North (?)
Another RPG (Sort of)
Game world
Player character
Accomplish task,
Improve (virtual)
ability, accomplish
harder task, etc.
RPG (cont.)
Game
world
Real-Time Strategy (RTS)
Game world
Units
Explore, build,
combat
Rise of Nations, Microsoft
RTS (cont.)
Game
world
Types of MOG:
Categorization by Persistency
No persistency
Persistent player information
Persistent game world
Persistency
Local: e.g., run a persistent server for a few friends
Global: e.g., game company hosts servers for all
No Persistency
Before
gaming
session
During
After
Persistent Player Information
Before
gaming
session
During
After
Persistent Game World
Before
gaming
session
During
After
Scales of MOG
n: Number of players in a game world
n<=8
n<=64
n>1000 Massively Multiplayer (MMOG)
Interesting Combinations
n<=64 (16-32 mostly), no persistency, FPS: e.g., CoD
n<=8 (2-4 mostly), no persistency, RTS: RoN
n<=8, persistent player information, RPG: Diablo II
n>1000, persistent game world, RPG: EverQuest
n>1000, persistent game world, FPS: PlanetSide
PLATO Computer System
PLATO IV Developed by the University
of Illinois and the Control Data
Corporation
1961 timesharing PLATO II begins
1964 invention of plasma panel
1968 PLATO IV begins
Spun off as NovaNET late 1980s
Revived at www.cyber1.org
Innovations
first LARGE on-line community
invention of the plasma panel
multimedia
personal notes email
group notes newsgroups
consulting mode like PC anywhere
widely used term talk (like Unix talk)
multiplayer graphical games
IBM correctly attributes Lotus Notes to PLATO
Hardware
Control Data mainframes designed by
Seymour Cray
Cyber 70, 176, CDC 6600, 7600
Magnetic core memory
60-bit words, 6-bit characters
Ones-complement arithmetic
Up to 1000 simultaneous users
(NovaNET runs on Alpha today?)
PLATO V Terminal
Plasma panel and CRT versions
Same 512 x 512 display
8080 processor implemented all
graphics
PLATO IV Terminal
From http://plato.filmteknik.com/
Multiplayer Games
Dungeons and Dragons
orthanc, avatar
Space
empire
Empire
Empire
Avatar
Avatar
Research Issues (1)
n=16-32, no persistency, FPS
Most sensitive to latency, jitter, and relative latency
Client/server architecture (anyone can run a server)
left button
clicked
render a rocket at
(x1,y1) flying
toward (x2,y2)
How to find a (good) server?
How to meet the performance requirements?
Security (fairness/anti-cheating)?
Research Issues (2)
n=2-4, no persistency, RTS
Each user control many units (e.g., >100s)
Too many units!
Security?
Player1
Player2
left button
clicked on
(xd,yd)
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
Research Issues (3)
n<=8, persistent player information, RPG
n>1000, persistent game world, RPG & FPS
Persistency Economy
Virtual:
Performance/Scalability
Security, Security, Security
Real life:
84 listings,
$12
Subscription-
based
Recent Papers
Server discovery for FPS
[Bernier GDC00], [Henderson NG02]
Too many units in RTS
[Bettner & Terrano GDC01]
Performance requirements of FPS & RTS
[Bernier GDC01], [Pantel & Wolf NG02], [Sheldon et al. NG03]
Security
[Guo et al. NG03], [Baughman & Levine INFOCOM01]
Traffic modeling
Architecture
Server Discovery for FPS
~50000 servers for Counter Strike [Feng NG03]
[Bernier GDC00] How its done in Half-Life
Master server (server directory)
Game servers send periodic keepalive messages to master
Handle IP-spoofing DoS attacks with challenge/response
Reduce bandwidth usage with batched requests
Client gets list from directory and polls each server
Server Discovery for FPS (2)
[Henderson NG02]
Problems with centralized: single point of failure,
stale/redundant info, client polling servers, etc.
A peer-to-peer approach
Clientserverclientserver
Stop when a suitable server found
Potential problems
Stale/inconsistent info
Lack of scalable querying
Recent Papers
Server discovery for FPS
[Bernier GDC00], [Henderson NG02]
Too many units in RTS
[Bettner & Terrano GDC01]
Performance requirements of FPS & RTS
[Bernier GDC01], [Pantel & Wolf NG02], [Sheldon et al. NG03]
Security
[Guo et al. NG03], [Baughman & Levine INFOCOM01]
Traffic modeling
Architecture
1500 Archers on a 28.8
[Bettner & Terrano GDC01] Age of Empires
Too many units to update individually!
Simultaneous simulations (tricky!)
Player1
Player2
left button
clicked on
(xd,yd)
left button
clicked on
(xd,yd)
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
Turn-based: in each turn,
receive messages from others,
process/simulate, and render
1500 Archers on a 28.8 (2)
Problem: need very long turn to finish everything!
Pipelining
Player1
Player2
left button
clicked on
(xd,yd)
left button
clicked on
(xd,yd)
Turn 1
Turn 1
Turn 2
message
received
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
next render
u1: (x1,y1)
u2: (x2,y2)
un: (xn,yn)
Turn 3
Turn 3
Problem: variations in
latency/processing time
1500 Archers on a 28.8 (3)
Solution: dynamic turn length
Frame Frame Frame Process all messages
Communications turn (200 msec) - scaled to 'round-trip ping' time estimates
50 msec
Frame - scaled to rendering speed
50 msec 50 msec 50 msec 20 fps
200 ms latency
50 ms proc/render
Frame Frame
Process all
messages
Communications turn (1000 msec) - scaled to 'round-trip ping' time estimates
50 msec 20 frames, 50 msec each
Frame Frame Frame Frame Frame Frame Frame
20 fps
1000 ms latency
50 ms proc/render
Frame Process all messages
100 msec 100 msec
Frame - scaled to rendering speed
Communications turn (200 msec) - scaled to 'round-trip ping' time estimates
10 fps
200 ms latency
100 ms proc/render
Recent Papers
Server discovery for FPS
[Bernier GDC00], [Henderson NG02]
Too many units in RTS
[Bettner & Terrano GDC01]
Performance requirements of FPS & RTS
[Bernier GDC01], [Pantel & Wolf NG02], [Sheldon et al. NG03]
Security
[Guo et al. NG03], [Baughman & Levine INFOCOM01]
Traffic modeling
Architecture
Latency Compensation in Half-Life
[Bernier GDC01]
Nave approach: dumb client
Player1
render player1
at (x1,y1)
forward
forward
render player1
at (x1,y1)
Response time for player:
round-trip to server + server processing
Predicting Where I Am
Player1
render player1
at (x1,y1)
forward
forward
render player1
at (x1,y1)
render player1
at (x1,y1)
render player1
at (x1,y1)
render player1
at (x4,y4)
forward
forward
forward
Predicting Where You Are
Updates about other players locations not continuous
Extrapolation (dead reckoning)
At last update, player2 is at (x1,y1) facing N with speed S
It should be at (x2,y2) now
Not good: in FPS, player movement very non-deterministic
Interpolation
Impose an interpolation delay
for rendering
Update1
(x1,y1)
Update2
(x2,y2)
Update3
(x3,y3)
Now
Int. delay
Now
Now
time
Lag Compensation
Interpolation introduces a fixed lag (int. delay)
E.g., always see where you were 100 ms ago
Need to lead the target when aiming
Require players to extrapolate!
Server-side lag compensation
Server uses the old location to compute hit/miss
Allows natural aiming/shooting
Possible weird experiences for players being fired upon
tradeoff for better game play
Effect of Latency in Warcraft 3
[Sheldon et al. NG03]
Warcraft 3 RTS (most papers looked at FPS games)
Methodology
Categorize RTS player activities: build, explore, combat
Create maps (game worlds) specifically for these activities
Two players compete on each map
One as server (no latency)
0 to 3500 ms for the other
Results
Latency has some effect on exploration (0 to 1000 ms 25%)
Little effect on building and combat
Conclusion: little effect on game outcome, some effect on
player gaming experience
Recent Papers
Server discovery for FPS
[Bernier GDC00], [Henderson NG02]
Too many units in RTS
[Bettner & Terrano GDC01]
Performance requirements of FPS & RTS
[Bernier GDC01], [Pantel & Wolf NG02], [Sheldon et al. NG03]
Security
[Guo et al. NG03], [Baughman & Levine INFOCOM01]
Traffic modeling
Architecture
P1
P2
P3
Fair Message Exchange
[Guo et al. NG03]
Look at fairness in client-server games
room
P1
P2
P3
P3
(1
ms)
P2
(3
ms)
P1
(4
ms)
Fair Message Exchange (2)
Different latencies can make the game unfair
P1
P2
P3
Server
time
t=0
(RTT 5)
(RTT 10)
(RTT 15)
3
t=8
P2
1
t=11
P3
t=19
4
P1
Fair Message Exchange (3)
Fair-ordering delivery without synchronized clocks
(a simple case)
P1
P2
P3
Server
t=0
(RTT 5)
(RTT 10)
(RTT 15)
3
t=8
P2
1
t=11
P3
t=19
4
P1
P2,3,18 P3,1,16
P2,3,18
t=16
P2,3,18
P3
t=18
P2
Server waits (here 15) before performing action.
Ordering based on response time.
Cheat-Proof Playout
[Baughman & Levine INFOCOM01]
Two types of cheats
Suppress-correct cheat under dead reckoning (extrapolation)
Lookahead cheat
P1
P2
?
predict
?
here here
P2
here, actually
Cheat-Proof Playout
[Baughman & Levine INFOCOM01]
Two types of cheats
Suppress-correct cheat under dead reckoning (extrapolation)
Lookahead cheat game advances in frames
P1
P2
fire
do nothing
P1
P2
fire
duck
Cheat-Proof Playout (2)
Suppress-correct undetectable under dead reckoning
P1
P2
H(fire)
H(do nothing)
Present lockstep protocol that prevents lookahead
Performance penalty improved protocol (AS)
Dont do dead reckoning
Outline
Overview of multiplayer online games (MOGs)
Research issues
Sample of recent papers
A few observations
Security
How are cheaters actually cheating in reality?
A B
Exit &
save
Crash server
(s.t. not saved)
A
B
A B
Duping in D2
(persistent player)
Maphack for RTS
(should only see
occupied area)
modify game client
to display everything
Security (2)
Video card driver / texture, auto-aim / auto-shoot bots
transparent
Casual & Wireless Games
A lot of them in the GDCs: [Gordon GDC01], [Opas
GDC01], [Collier GDC03], [Meretzky GDC03], [Oliver
GDC03], [Trevett GDC03]
Unique
Games Users
Solitaire 46.7 M
Freecell 21.3 M
Hearts 6.6 M
Minesweeper 5.4 M
Spider Solitaire 4.6 M
MS Ent. Pack 4.2 M
3D Pinball 2.6 M
The Sims 1.6 M
Snood 1.5 M
Slingo 1.5 M
Casual games Wireless games
Cell phone or similar
Taking off in Japan?
[Collier GDC03]
J2ME?