lecture 29 - cornell universityauthority and latency lack of authority enforces a delay only draw...
TRANSCRIPT
![Page 1: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/1.jpg)
gamedesigninitiativeat cornell university
the
Networking
Lecture 29
![Page 2: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/2.jpg)
gamedesigninitiativeat cornell university
the
Why Network Games?
Networking2
![Page 3: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/3.jpg)
gamedesigninitiativeat cornell university
the
� Networking topology� Client-server
� Peer-to-peer
� Computing model � Distributed objects
� Message passing
� Communication protocol� TCP vs. UDP
� UDP vs. Reliable UDP
Networking3
Basic Networking Concerns
NetworkLayer
Socket
CS 5414ApplicationLayer
Machine 2
NetworkLayer
Socket
ApplicationLayer
Machine 1
Network:LAN/Internet
Not Today’s Subject!
CS 4450
![Page 4: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/4.jpg)
gamedesigninitiativeat cornell university
the
Consistency
� Do our games agree?� Where do I see objects?
� Where do you see them?
� Who is authoritative?
� How to force agreement?� Do I wait for everyone?
� Do I guess and fix errors?
Networking4
Game Networking Issues
Security
� What cheats are possible?� View hidden data
� Enter invalid states
� Improve player skill
� How do we cheat proof?� Technical solutions?
� Community policing?
![Page 5: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/5.jpg)
gamedesigninitiativeat cornell university
the
Consistency
� Do our games agree?� Where do I see objects?
� Where do you see them?
� Who is authoritative?
� How to force agreement?� Do I wait for everyone?
� Do I guess and fix errors?
Networking5
Game Networking Issues
Security
� What cheats are possible?� View hidden data
� Enter invalid states
� Improve player skill
� How do we cheat proof?� Technical solutions?
� Community policing?
Not going to coverToday’s Lecture
![Page 6: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/6.jpg)
gamedesigninitiativeat cornell university
the
� Latency is root of all evil� Local actions are instant
� Network actions are slow
� Example: targeting� Want “geometric fidelity”� Fire a weapon along ray
� Hits first object on ray� But movement is fast!
Networking6
Consistency
Player 1 Player 2
Fire
Fire
Move
Movetime
How to tell these cases apart?
![Page 7: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/7.jpg)
gamedesigninitiativeat cornell university
the
� State: all objects in game� Local State: on a machine� World State: “true” state
� Where is the world state? � Not on any one machine� Union of local states?
� States may be inconsistent� Local disagrees with world � Is this really a problem?� What can we do about it?
Networking7
World State vs. Local State
LocalState
LocalState
World State
![Page 8: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/8.jpg)
gamedesigninitiativeat cornell university
the
Centralized Authority
� One computer is authority� Stores the full world state� Local states must match it
� Often call this the “server”
Networking8
The Question of Authority
Distributed Authority
� Authority is divided up� Each object has an owner� Must match if not owner
� Classically call this “P2P”
LocalState
LocalState
WorldState
(Authority) LocalAuthority
LocalAuthority
World State
![Page 9: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/9.jpg)
gamedesigninitiativeat cornell university
the
Authority and Latency
� Lack of authority enforces a delay� Only draw what authority tells you� Requires round trip from your input� Round-trip time (RTT) can be > 200 ms
� This makes the game less responsive� Need some way to compensate for this
Networking9
Sample InputRender Screen
Process InputCompute State
Client Authority
![Page 10: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/10.jpg)
gamedesigninitiativeat cornell university
the
Authority and Latency
� Lack of authority enforces a delay� Only draw what authority tells you� Requires round trip from your input� Round-trip time (RTT) can be > 200 ms
� This makes the game less responsive� Need some way to compensate for this
Networking10
Sample InputRender Screen
Process InputCompute State
Client Authority
Need to understand basics before solving this
![Page 11: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/11.jpg)
gamedesigninitiativeat cornell university
the
Matchmaking
� Service to find other players� Groups players in a session� But does not run session
� Why make your own?� Control user accounts� Implement skill ladders
� 3rd party services common� XBox Live� Apple GameCenter� Unity’s server classes
Networking11
Networking Breaks into Two Phases
Game Session
� Service to run the core game� Synchronizes player state� Supports minor adds/drops
� Why make your own?� Must tailor to your game� You often have no choice
� Limited 3rd party services� Often just a networking API� For limited class of games� Examples: Unity, Unreal
![Page 12: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/12.jpg)
gamedesigninitiativeat cornell university
the
Matchmaking
� Service to find other players� Groups players in a session� But does not run session
� Why make your own?� Control user accounts� Implement skill ladders
� 3rd party services common� XBox Live� Apple GameCenter� Unity’s server classes
Networking12
Networking Breaks into Two Phases
Game Session
� Service to run the core game� Synchronizes player state� Supports minor adds/drops
� Why make your own?� Must tailor to your game� You often have no choice
� Limited 3rd party services� Often just a networking API� For limited class of games� Examples: Unity, Unreal
Our main focusSimplify if possible
![Page 13: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/13.jpg)
gamedesigninitiativeat cornell university
the
Custom Matchmaking
� Benefit: cross-platform matchmaking� This why no XBox/Playstation cross-play
� Typically need to have a separate server� Fixed, hard-coded IP that your app connects to� Custom user accounts that you manage� How Unity works (though they give software)
� AdHoc Servers: The cheap but ugly solution� One app declares itself to be a server� Other apps type in the IP address of that app
Networking13
![Page 14: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/14.jpg)
gamedesigninitiativeat cornell university
the
Custom Matchmaking
� Benefit: cross-platform matchmaking� This why no XBox/Playstation cross-play
� Typically need to have a separate server� Fixed, hard-coded IP that your app connects to� Custom user accounts that you manage� How Unity works (though they give software)
� AdHoc Servers: The cheap but ugly solution� One app declares itself to be a server� Other apps type in the IP address of that app
Networking14
Fine for a class, not for a commercial release
![Page 15: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/15.jpg)
gamedesigninitiativeat cornell university
the
Matching Making Services are Hard
� They require a major investment� Dedicated servers for users to log in� Dedicated databases for user accounts� Significant support staff for the above
� They suffer from network effects� No one to play → won’t create an account� Don’t create an account → no one to play
� Almost no one does this except big publishers� Examples: BattleNet, Origin, Steam
Networking15
![Page 16: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/16.jpg)
gamedesigninitiativeat cornell university
the
Game Session: Part of Core Loop
Networking16
Update
Update
Draw
Client Authority
![Page 17: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/17.jpg)
gamedesigninitiativeat cornell university
the
Decoupling the Network Loop
Networking17
Update
LocalUpdate
Draw
Client Authority
NetworkUpdate
Smooth localanimation
Possibly slowertick rate (10 fps)
Should match the client rate
![Page 18: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/18.jpg)
gamedesigninitiativeat cornell university
the
� Animation is “buying time”� Looks fast and responsive� But no real change to state� Animation done at update
� Examples:� Players wait for elevator � Teleportation takes time � Many hits needed per kill � Bullets have flying time � Inertia limits movement
Networking18
Decoupling Enables Latency Masking
![Page 19: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/19.jpg)
gamedesigninitiativeat cornell university
the
� Server developer provides� Acts as central authority� May be several servers� May use cloud services
� Pros:� Could be real computer� More power/responsiveness� No player has advantage
� Cons:� Lag if players not nearby� Expensive to maintain
Networking19
Game Session: Dedicated Server
Server
Client
Client
Client
Client Client
Client
Client Client
![Page 20: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/20.jpg)
gamedesigninitiativeat cornell university
the
Networking20
Game Session: AdHoc Server
Client
Client
Client
Client Client
Client
Client Client
Host� One client acts as host� Acts as central authority� Chosen by matchmaker� But may change in session
� Pros:� Cheap long-term solution� Can group clients spatially
� Cons:� Server is a mobile device� Host often has advantages� Must migrate if host is lost
![Page 21: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/21.jpg)
gamedesigninitiativeat cornell university
the
Networking21
Game Session: AdHoc Server
Client
Client
Client
Client Client
Client
Client Client
Host� One client acts as host� Acts as central authority� Chosen by matchmaker� But may change in session
� Pros:� Cheap long-term solution� Can group clients spatially
� Cons:� Server is a mobile device� Host often has advantages� Must migrate if host is lost
Predominantcommercial architecture
![Page 22: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/22.jpg)
gamedesigninitiativeat cornell university
the
� Authority is distributed� Each client owns part of state� Special algorithms for conflict� Coordinator for adds/drops
� Pros:� No lag on owned objects� Lag limited to “attacks”� Same advantages as adhoc
� Cons:� Incredibly hard to implement� High networking bandwidth
Networking22
Game Session: True P2P
Client
Client
Client
Client Client
Client
Client Client
Coordinator
![Page 23: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/23.jpg)
gamedesigninitiativeat cornell university
the
� Authority is distributed� Each client owns part of state� Special algorithms for conflict� Coordinator for adds/drops
� Pros:� No lag on owned objects� Lag limited to “attacks”� Same advantages as adhoc
� Cons:� Incredibly hard to implement� High networking bandwidth
Networking23
Game Session: True P2P
Client
Client
Client
Client Client
Client
Client Client
Coordinator
Almost no-one does this outside
academia
![Page 24: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/24.jpg)
gamedesigninitiativeat cornell university
the
Game Session: True P2P
Networking24
![Page 25: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/25.jpg)
gamedesigninitiativeat cornell university
the
Game Session: True P2P
Networking25
Melee is easy to latency mask!
![Page 26: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/26.jpg)
gamedesigninitiativeat cornell university
the
� Clients must be synchronized� Ensure they have same state� … or differences do not mattter
� Synchronization != authority� Authority determines true state� Not how clients updated� Or when clients are updated
� Major concept in networking� Lots of complicated algorithms� Also a patent mindfield� Take distributed systems course
Networking26
Synchronization Algorithms
Player 1 Player 2
Fire
Fire
Move
Movetime Move
Move?
Fire?
Fire
![Page 27: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/27.jpg)
gamedesigninitiativeat cornell university
the
Pessimistic
� Everyone sees same world� Ensure local = world state � Forces a drawing delay
� Best on fast networks� Local LAN play� Bluetooth proximity
� Or games with limited input� Real time strategy� Simulation games
Networking27
Synchronization Algorithms
Optimistic
� Allow some world drift� Best guess + roll back� Fix mistakes if needed
� Works on any network� Lag errors can be fixed� But fixes may be distracting
� Works great for shooters� Player controls only avatar� All else approximated
![Page 28: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/28.jpg)
gamedesigninitiativeat cornell university
the
Pessimistic
� Everyone sees same world� Ensure local = world state � Forces a drawing delay
� Best on fast networks� Local LAN play� Bluetooth proximity
� Or games with limited input� Real time strategy� Simulation games
Networking28
Synchronization Algorithms
Optimistic
� Allow some world drift� Best guess + roll back� Fix mistakes if needed
� Works on any network� Lag errors can be fixed� But fixes may be distracting
� Works great for shooters� Player controls only avatar� All else approximated
Also great for distributed authority
![Page 29: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/29.jpg)
gamedesigninitiativeat cornell university
the
� Algorithm: play by “turns”
� Players send turn actions
� Even if no action was taken
� Wait for response to render
� Problems� Long Internet latency
� Variable latencies (jitter)
� Speed set by slowest player
� What if moves are lost?
� More common in LAN days
Networking29
Pessimistic: Lock-Step Synchronization
Player 1 Player 2
tim
e
Synch &Render
![Page 30: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/30.jpg)
gamedesigninitiativeat cornell university
the
� Algorithm: turns w/ timeout� Often timeout after 200 ms� But can be adapted to RTT� All moves are buffered� Executed at end of next turn
� Problems� Variable latencies (> a turn)� Speed set by slowest player� What if moves are lost?
� Used in classic RTS games
Networking30
Pessimistic: Bucket Synchronization
Player 1 Player 2
time
Synch &Render
Xloss
MultipleMoves Possible
![Page 31: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/31.jpg)
gamedesigninitiativeat cornell university
the
� Algorithm: turns w/ timeout� Often timeout after 200 ms
� But can be adapted to RTT� All moves are buffered� Executed at end of next turn
� Problems� Variable latencies (> a turn)� Speed set by slowest player� What if moves are lost?
� Used in classic RTS games
Networking31
Pessimistic: Bucket Synchronization
![Page 32: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/32.jpg)
gamedesigninitiativeat cornell university
the
Networking32
Optimistic: Personal State
CurrentNetworkState
Approx.CurrentState
LocalUpdate
Draw
NetworkUpdate
ServerUpdate
Unconfirmedplayer actions
PreviousNetworkState
CurrentNetworkState
TrueState
State updates
Player actionconfirmations
![Page 33: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/33.jpg)
gamedesigninitiativeat cornell university
the
Networking33
Optimistic: Opponent State
LocalUpdate
Draw
NetworkUpdate
ServerUpdate
CurrentNetworkState
Approx.CurrentState
Simulateassumingno actions
PreviousNetworkState
CurrentNetworkState
TrueState
State updates
Opponentactions
![Page 34: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/34.jpg)
gamedesigninitiativeat cornell university
the
Dead Reckoning
� Assume velocity constant� Simulate the new position� Treats like physics object
� Generalize to other actions
Networking34
Advantages of Sending Actions
Error Smoothing
� Can interpolate late actions� Create simulation for action� Avg into original simulation
� Continue until converge
Lost
Extrapolate
![Page 35: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/35.jpg)
gamedesigninitiativeat cornell university
the
The Perils of Error Correction
Networking35
![Page 36: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/36.jpg)
gamedesigninitiativeat cornell university
the
� Limit possible conflicts� Authoritative for own state� Minimize amount to guess� Make roll-back rare/simpler
� Game design solutions� Software solutions are hard� So make game state simpler
� Examples� Area of interest management� Coarse state fidelity
Networking36
Consistency: Design Solutions
![Page 37: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/37.jpg)
gamedesigninitiativeat cornell university
the
� Aura and Nimbus� Aura: visibility radius � Nimbus: detect radius
� Given by “technology” � Aura: cloaked ship� Nimbus: sensor
� Consistency check if� B is within A's nimbus� A is within B's aura
Networking37
Area of Interest Management
Aura
Nimbus
![Page 38: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/38.jpg)
gamedesigninitiativeat cornell university
the
� State need not be exact� Often just need an estimate� Send estimate over network� Handle details locally
� Example: tiled games� Just need grid location� Do not send movement� Animate motion locally
� Animation vs. gameplay� Many frames = one action� Keep interactions simple
Networking38
Course State Fidelity
![Page 39: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/39.jpg)
gamedesigninitiativeat cornell university
the
� Coarse spatial fidelity� Not sure of exact position� Exact targeting impossible
� How to deal with this?� Open, airy buildings
� Few corners to hide with
� Attacks are automatic� Misses are a random roll
� If you see it, you can hit it
� Is this a challenge?
Networking39
World of Warcraft
![Page 40: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/40.jpg)
gamedesigninitiativeat cornell university
the
� Make challenge strategic!� NPCs have well-defined AI
� Affects order/type of attacks� Players must learn exploits� “Chess-like combat”
� Aggro Management� Picks who NPCs attack� Draw aggro to shield others� Replaces spatial cover
� Allows 1 second latencies!
Networking40
World of Warcraft
![Page 41: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/41.jpg)
gamedesigninitiativeat cornell university
the
Physics: Challenge of Synchronization
� Deterministic bi-simulation is very hard� Physics engines have randomness (not Box2D)� Not all architectures treat floats the same
� Need to mix interpolation with snapshots� Like error correction in optimistic concern� Run simulation forward from snapshots
Networking41
![Page 42: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/42.jpg)
gamedesigninitiativeat cornell university
the
Physics: Challenge of Authority
Networking42
� Distributed authority is very difficult� Authority naturally maps to player actions� Physics is a set of interactions
� Who owns an uncontrolled physics object?� Gaffer: The client that set in motion� Collisions act as a form of “authority tag”
![Page 43: Lecture 29 - Cornell UniversityAuthority and Latency Lack of authority enforces a delay Only draw what authority tells you Requires round trip from your input Round-trip time (RTT)](https://reader033.vdocuments.site/reader033/viewer/2022052721/5f0b08377e708231d42e8410/html5/thumbnails/43.jpg)
gamedesigninitiativeat cornell university
the
Summary
� Consistency: local state agrees with world state� Caused by latency; takes time for action to be sent� Requires complex solutions since must draw now!
� Authority is how we measure world state� Almost all games use a centralized authority� Distributed authority is beyond scope of this class
� Synchronization is how we ensure consistency� Pessimistic synchronization adds a sizeable input delay� Optimistic synchronization requires a lot of overhead
Networking43