CS 4455 Lecture 23 - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

CS 4455 Lecture 23

Description:

Required for multiplayer games. 3 Standard technologies. Modems. Ethernet. Internet ... Free the slot for new data. If no queue space, sender app waits! March ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 33
Provided by: cds7
Category:
Tags: free | games | internet | lecture

less

Transcript and Presenter's Notes

Title: CS 4455 Lecture 23


1
CS 4455 Lecture 23
  • Networks

2
Networks
  • Required for multiplayer games
  • 3 Standard technologies
  • Modems
  • Ethernet
  • Internet

3
Internet
  • The greatest thing since sliced bread
  • The savior of humanity
  • Will increase freedom and democracy
  • Around the world
  • In your neighborhood

4
Internet User Protocols
  • TCP
  • Connection
  • Reliable
  • Bytes arrive in order they were sent
  • Collects small packets and transmits them
    together
  • Stream of bytes
  • UDP
  • Connectionless
  • Unreliable
  • Arbitrary arrival order

5
TCP
  • Reliable stream of bytes
  • Implies the need for a connection
  • Connection sets up data structures
  • Hold incoming packets
  • Hold outgoing packets
  • Handle retransmits

6
TCP Reliability
  • Each packet does Send-Receive-Acknowledge
  • Sender holds sent packet until ACK is received
  • Sender retransmits if ACK takes too long

7
TCP
  • One Send-Receive-Ack takes time
  • Overlay Sends and Acks
  • Maintain a queue in sender and receiver

8
TCP Circular Queue -- Sender
  • Sends data and Puts it in send queue
  • Sets timer on this queue item
  • If timer expires, and no ACK, re-send data
  • Set another, longer timer
  • Exponentially increasing time
  • When ACK received
  • If this queue slot is the oldest,
  • Free the slot for new data
  • If no queue space, sender app waits!

9
TCP Receive Queue
  • Receiver maintains a queue the same size as the
    senders
  • When a packet arrives, send ACK
  • If the packet is next in sequence
  • Give it to application
  • Else Keep it in queue
  • Another, earlier packet is on its way

10
TCP
  • If no ACKS arrive for a long enough time
  • Temporarily gives up
  • Sends test packets
  • When test packets get through
  • Starts slow, builds up

11
TCP Wrap-up
  • Connection sets up sequencing and queues
  • Reliable arrival Retransmit
  • Reliable order Sequence numbers
  • TCP bunches up data on 200ms intervals
  • Minimizes overhead for small chunks of data
  • This option can be turned off
  • TCP Has an emergency channel
  • OOB Out Of Band

12
UDP
  • Connectionless!
  • No underlying data to maintain
  • Unreliable transmission
  • If you lose a packet, you have to handle it
  • Out-of-order arrival
  • You have to handle that, too!
  • Fast
  • When the port gets the data, the app gets it

13
UDP
  • Packets will drop!
  • 1 in 5
  • Have to do your own re-send
  • Some packets are time sensitive
  • Care little about the past ship location
  • No header compression
  • May end up with greater overhead than TCP with PPP

14
Game Architectures
  • Peer-to-peer
  • Client/Server
  • One server per game
  • Floating server
  • One client is also a server
  • Distributed server
  • Multiple servers for large world

15
Peer-to-Peer
  • Simple version Lockstep
  • eg. Doom
  • Each client transmits to other
  • Wait for everyone to get data
  • Proceed to next step

16
Peer-to-Peer
  • Advantages
  • Simple
  • Nobody has to provide a server
  • Including the Games authors!
  • Good for turn-based games with low bandwidth
  • TCP
  • Disadvantages
  • Frame rate is that of
  • Slowest machine
  • Worst connection
  • Hackable
  • Not good for real-time games

17
Client/Server
  • Server per game
  • MUDs, Fireteam, NetTrek
  • Someone must provide server ()
  • Possibly the games authors
  • Less hackable
  • Single point of failure
  • Server must be big well-connected

18
Floating Server
  • Peer-to-peer
  • Server resolves the action
  • One peer is the server
  • Unreal
  • One player elects to be the server
  • X-Wing vs Tie-Fighter
  • First player to enter session
  • Starcraft
  • Player with the CD

19
Multiple Server
  • Many machines coordinate service
  • Ultima Online, Everquest, AOL
  • Used for large virtual worlds
  • Everquest
  • One server per game-geographic region
  • Freeze on handoff affects game play

20
What Data to Send?
  • Sending entire world state is usually too much
  • Can send just user actions
  • Simulation engine does the same thing at each
    client
  • Pseudo-random numbers from same seed

21
Sending User Actions--Problems
  • Any error in engine
  • Divergence in worlds
  • Small error can lead to big divergence
  • X-Wing vs Tie Fighter
  • Created a resynchronize protocol
  • Causes jumps
  • Wrote smoothing algorithm for resynchs
  • Sim City 2000 Network Edition
  • Send checksums for world state each turn

22
Prediction
  • Eg. Unreal
  • Waiting for user inputs is too slow
  • Client does prediction
  • Motion prediction
  • Server corrects things if client is wrong

23
Prediction Dead Reckoning
  • Eg. SIMNET (US Army Tank Simulator)
  • Each vehicle simulates own tank
  • Sends data every 5 seconds, updating
  • Position, Speed, Acceleration
  • Expected path
  • Prediction violation criteria
  • Receiver simulates own tank
  • AND simulates local copy of other tanks

24
Dead Recokoning
  • Receiver gets latest 5-second update
  • Updates own copy of other tanks
  • Predicts other tanks
  • Using prediction data
  • Until new data arrives
  • Each simulator also sends update
  • When own prediction violates own criteria
  • Assumes latencies lt 500ms

25
Dead Reckoning
Sim A
Sim B
Sim B
Sim A
As Predicted Path
As Predicted Path
Bs Predicted Path
Bs Predicted Path
Predict B
Predict A
Predict A
Predict B
Transmit new prediction every 5 seconds
B Exceeds prediction predict again and transmit
26
Dead Reckoning Requirements
  • Data structures for other entities
  • Model of entity behavior
  • Vehicle speed, acceleration range, turn radius
  • Responsiveness to commands
  • Situation parameters
  • Following a road
  • Precomputed path (NPCs)

27
Multiple Copies
  • Maintain 2 Data sets
  • Now
  • Accurate self
  • Predicted others
  • Zero latency for self
  • Ground Truth
  • Accurate everybody
  • Large latency for everybody
  • 200-500ms ago

28
Latency Issues
  • When latencies get high
  • Prediction gets worse and worse
  • Correcting prediction errors may cause visual
    jumps
  • Easy to notice!
  • If jumps are large enough
  • Temporarily interpolate between wrong prediction
    and the new correction

29
Prediction Interpolation
30
Token Ownership
  • Some games may allow distributed ownership
  • Ballistic simulation
  • Shooter fires bullet
  • Intended target receives the simulation
  • Sports - eg. Tennis
  • Player A hits ball
  • Player B gets simulation token
  • B simulates ball path from As racket

31
Trust
  • Never trust the client
  • Data on the users hard drive is insecure
  • Diablo utility to modify character data
  • Wrote patch to prevent hacking
  • Throws out your stuff if theres a time
    inconsistency
  • Daylight savings nuked my stuff!

32
Trust
  • Network communications are insecure
  • NetTrek communications are encrypted
  • NetTrek also requires blessed client
  • Servers have different policies on requiring a
    blessed client
  • Prevents cyborgs
Write a Comment
User Comments (0)
About PowerShow.com