Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to...
-
Upload
isaiah-henderson -
Category
Documents
-
view
215 -
download
1
Transcript of Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to...
![Page 1: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/1.jpg)
Part 1: Multiplayer Games
Multiplayer Modes
![Page 2: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/2.jpg)
Multiplayer ModesEvent Timing
Turn-Based Easy to implement Any connection type
Real-Time Difficult to implement Latency sensitive
![Page 3: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/3.jpg)
Multiplayer ModesShared I/O
Input Devices Shared keyboard layout Multiple device mapping
Display Full Screen
Funneling Screen Swap
Split Screen
![Page 4: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/4.jpg)
Multiplayer ModesConnectivity Non Real-Time
Floppy disk net Email Database
Direct Link Serial, USB, IrD, … (no hops)
Circuit Switched (phones) Dedicated line with consistent latency
Packet Switched Internet Shared pipe
![Page 5: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/5.jpg)
Part 2: Multiplayer Games
Protocols
![Page 6: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/6.jpg)
ProtocolsProtocol Design
Packet Length Conveyance Acknowledgement Methodology Error Checking / Correcting Compression Encryption Packet Control
![Page 7: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/7.jpg)
ProtocolsPackets Packets
Header = Protocol Manifest Payload
Gottcha’s Pointers Large/Variable Size Arrays ADT’s Integer Alignment Endian Order Processor dependant Intrinsic Types (int and long) Unicode vs. ASCII Strings
![Page 8: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/8.jpg)
ProtocolsRequest for Comments
RFC web site http://www.rfc-editor.org/
Protocol Specifications Definitive Resource Public Criticism Future Protocols
![Page 9: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/9.jpg)
Part 3: Multiplayer Games
Protocol Stack
![Page 10: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/10.jpg)
Protocol StackOpen System Interconnect
Application
Presentation
Session
Transport
Network
Data Link
Physical
Network
Data Link
Physical
Sender
Application
Presentation
Session
Transport
Network
Data Link
Physical
Receiver
Network
Data Link
Physical
Router
Game Events
Game Packetization
Connection & Data Exchange
Input UpdatesState Updates
SerializationBuffering
Sockets
TCPUDP
IP
Ethernet (MAC)
Cat 5 - twisted pairFiber Optics Wireless
![Page 11: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/11.jpg)
Protocol StackPhysical Layer Bandwidth
Width of data pipe Measured in bps = bits per second
Latency Travel time from point A to B Measured in Milliseconds
The Medium Fiber, FireWire, IrD , CDMA & other cell
SerialUSB1&2
ISDN DSL CableLAN
10/100/1GBaseT
Wireless802.11a/b/g
Power Line
T1
Speed(bps)
20K12M
480M128k
1.5M down896K up
3M down256K up
10M100M
1G
b=11Ma,g=54M
14M 1.5M
Table 1: Max Bandwidth Specifications
![Page 12: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/12.jpg)
Protocol StackData Link Layer
Serializes data to/from physical layer
Network Interface Card Ethernet MAC Address
![Page 13: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/13.jpg)
Protocol StackNetwork Layer Packet Routing
Hops Routers, Hubs, Switches
Internet Protocol (IP) Contains Source & Destination IP Address IPv4
Widespread Infrastructure IPv6
Larger IP address
![Page 14: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/14.jpg)
Protocol StackNetwork Layer: IP Address Unicast
Static DHCP
Multicast Requires multicast capable router
Broadcast Local Directed
Loop Back Send to self
AddrAny 0 = address before receiving an address
![Page 15: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/15.jpg)
Protocol StackNetwork Layer: DNS Domain Name Service
Converts text name to IP address Must contact one or more DNS servers to
resolve Local cache resolution possible
Game Tips Store local game cache to use when DNS out
of order. DNS resolution often slow, use cache for
same day resolution.
![Page 16: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/16.jpg)
Protocol StackTransport Layer Manage data deliver between
endpoints Error recovery Data flow
TCP and UDP used with IP Contains Source and Destination Port
Port + IP = Net Address Port Range = 0-64k Well known Ports 0-1k
![Page 17: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/17.jpg)
Protocol StackTransport Layer: TCP Guaranteed Correct In Order Delivery
Acknowledgement system Ack, Nack, Resend
Checksum Out of Band
Connection Required Packet Window Packet Coalescence Keep Alive
Streamed Data User must serialize data
![Page 18: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/18.jpg)
Protocol StackTransport Layer: UDP Non Guaranteed Delivery
No Acknowledgement system May arrive out of order Checksum
Not Connected Source not verified Hop Count Limit = TTL (time to live) Required for Broadcasting
Datagram Sent in packets exactly as user sends them
![Page 19: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/19.jpg)
Protocol StackSession Layer
Manages Connections between Apps Connect Terminate Data Exchange
Socket API live at this layer Cross platform Cross language
![Page 20: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/20.jpg)
Protocol StackSession Layer: Sockets Based on File I/O
File Descriptors Open/Close Read/Write
Winsock Provides standard specification
implementation plus more Extension to spec prefixed with “WSA” Requires call to WSAStartup() before use Cleanup with WSAShutdown()
![Page 21: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/21.jpg)
Protocol StackSession Layer: Socket Design Modes
Blocking Non-Blocking
Standard Models Standard Select
Extended Models Windows
WSAEventSelect I/O Completion Ports
Unix Poll Kernel Queues
![Page 22: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/22.jpg)
Protocol StackPresentation Layer Prepares App Data for Transmisson
Compression Pascal Strings String Tables Float to Fixed Matrix to Quaternion
Encryption Endean Order
When used cross platform or cross language Serialize
Pointers Variable Length Arrays
![Page 23: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/23.jpg)
Protocol StackPresentation Layer: Buffering
Packet Coalescence
Induced Latency
Dead Data
Large Packets
![Page 24: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/24.jpg)
Protocol StackApplication Layer Handles Game Logic Update Models
Input Reflection State Reflection
Synchronization Dead Reckoning A.I. Assist Arbitration
![Page 25: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/25.jpg)
Part 4: Multiplayer Games
Real-Time Communications
![Page 26: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/26.jpg)
Real-Time CommunicationsConnection Models Broadcast
Good for player discovery on LANs Peer to Peer
Good for 2 player games Client / Server
Good for 2+ player games Dedicated lobby server great for
player discovery
![Page 27: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/27.jpg)
Real-Time CommunicationsPeer to Peer vs. Client/Server
P1
P2
P1
P2
P3
P1
P4
P3
P2
P5
P4
P3
P2
P1
P5
P4
P3
P2
P1
Server
Broadcast Peer/Peer Client/Server
Connections 1Client = 1Server = N
N = Number of players
Broadcast Peer/Peer Client/Server
Send 1 N-1Client = 1 Server = N
Receive N-1 N-1Client = N-1Server = N
1
1
N
N
![Page 28: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/28.jpg)
Real-Time CommunicationsAsynchronous Environments
Thread Priority Suspension Pooling
Critical Section & Mutex Signal & Event Data Sharing
volatile keyword Interlocked Inc/Dec
![Page 29: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/29.jpg)
Part 5: Multiplayer Games
Security
![Page 30: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/30.jpg)
SecurityEncryption Goals
Authentication
Privacy
Integrity
![Page 31: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/31.jpg)
SecurityEncryption Methods
Keyed Public Key Private Key Ciphers
Message Digest Certificates IPSec
![Page 32: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/32.jpg)
SecurityCopy Protection
Disk Copy Protection Costly Mastering Invalid/Special Sector Read
Code Sheets Watermarking
![Page 33: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/33.jpg)
SecurityExecution Cryptography
Code Obfuscation Strip Symbols Heap Hopper Stack Overrun Execution NoOp Hacking Timer Hacking DLL Shims
![Page 34: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/34.jpg)
SecurityFirewalls
Packet Filter
Proxies
Circuit Gateways
![Page 35: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/35.jpg)
SecurityFirewalls: NAT
Router
Requested Ports200201
199200
ISP
LAN IP192.168.1.1
LAN IP192.168.1.2
WAN IP24.15.1.118
NAT
Requested Ports
LAN Address WAN Address
192.168.1.1:200 24.15.1.118:200
192.168.1.1:201 24.15.1.118:201
192.168.1.2:199 24.15.1.118:199
192.168.1.2:200 24.15.1.118:4000*
Figure 1 Network Address Translation at work.
![Page 36: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/36.jpg)
SecurityFirewalls: NAT Traversal
Port Forwarding
Port Triggering
DMZ
Determining WAN IP
![Page 37: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/37.jpg)
Part 4: Multiplayer Games
Summary
![Page 38: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/38.jpg)
SummaryTopic Coverage
Multiplayer Modes Protocols Protocol Stack Real-Time Communications Security
![Page 39: Part 1: Multiplayer Games Multiplayer Modes. Multiplayer Modes Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement.](https://reader036.fdocuments.us/reader036/viewer/2022062618/55141442550346e7488b51dd/html5/thumbnails/39.jpg)
SummaryFurther Study Socket Programming Serial Communication Server Design Network Gear & Infrastructure VOIP Tools of the Trade Unit & Public Beta Testing Middleware Databases Web Development Asynchronous Programming