Title: CMPSEM027 Online Gaming
1 CMPSEM027Online Gaming
2AIMS
- This module will explore the various design,
technical and interactivity issues involved in
multiplayer games. - By understanding these issues, developers can
identify the factors that affect them, and learn
which architecture, techniques and methods to use
in online games design and implementation.
3Learning Outcomes
- This course will show current techniques in
online game design. After completing the module
the student should be able to - Explain design issues involved in online gaming
- Defines interactivity thoroughly as it relates to
online games and other media productions - Addresses the technical design and implementation
issues involved in online games - Explains how to use interactivity in online game
design and how to use it as a critical evaluation
tool
4What this course mainly covered?
- NOT about game design, graphic design and game
programming. - Mainly emphasis on Network Programming in support
network game deployment - How network performance, scalability and security
issues associate with network game development?
5Content
- Lecture 1 Aspects of Network Games, TCP/IP
Fundamentals, Internet Services and Application
Layer Protocol, DirectPlay Overview, Online Games
Issues - Lecture 2 Network Game Design Fundamentals
- Lecture 3 DirectPlay (1)
- Lecture 4 DirectPlay (2)
- Lecture 5 Internet-based Database Systems
- Lecture 6 Concurrent/Multi-Threading Programming
in Client/Server Software - Lecture 7 Socket Programming (1)
- Lecture 8 Socket Programming (2)
- Lecture 9 Massively Multiplayer Games Design and
Issues and Solutions Implementation - Lecture 10 11 The Fundamentals and Issues of
Mobile Games Mobile Game Development - Lecture 12 Advanced Topics about Online Gaming
6Assessment
- 1 Coursework 40 Literature survey of recent
publications, and writing-up an essay on online
gaming issues. - 2 Coursework 60 group work covers Programming
Project involving online gaming design,
architecture and algorithms.
7References
- Alex Jarett, and the IGDA Online Games Committee
(2002) IGDA Online Games White Paper available
from IGDA website at http//www.igda.org/online_r
eport.htm. - Mark DeLoura, (2000) Game Programming Gems",
(Ed.) Charles River Media, - Markus Friedl, (2002), Online Game Interactivity
Theory. Charles River Media. ISBN
1-58450-215-0. - Andrew Mulholland, and Teijo Hakal, (2001)
Developer's Guide to Multiplayer Games
Wordware Publishing, Inc ISBN 1556228686 - Todd Barron and LostLogic (2002) Multiplayer
Game Programming - Premier Press Game Development series, ISBN
0-7615-3298-6 - Crooks, Clayton, Ii, (2001) 3D Game Programming
With Direct X 8.0. Trade Paper, ISBN 1584500867 - Mark Deloura (2001) Game Programming Gems II,
(Ed.) Charles River Media, ISBN 1584500549. - Alan Watt and Fabio Policarpo, (2001) "3D Games
Real-time Rendering and Software Technology,
Volume 1", Addison-Welsey, ISBN 0201619210. - Online Game Interactivity Theory (ISBN
1-58450-215-0) - Developing Online Games (ISBN 1-5927-3000-0)
- Core Techniques and Algorithms in Game
Programming (ISBN 0-13-102009-9) - Website for tutorial and examples D9 SDK
msdn.microsoft.com/archive/en-us/
directx9_c/directx/play/
8 Aspects of Networking inMultiplayer Computer
Games
9What is Network game?
- Online game
- using TCP/IP or UDP/IP or proprietary network
protocols - LAN based network game
- Peer-to-Peer approach
- Massively Multi-Player game
- Client/Server approach
- Mobile Games
- can be download from the Internet and
multi-played by using bluetooth or infrared or
through the mobile phone network (e.g. GSM and
3G)
10Massively Multiplayer Games (MMG)
- Examples
- Lineage, EverQuest
- 2M players
- 180K concurrent players
- Characteristics
- Large number of shared objects
11Abstraction of a Multiplayer Game
- What is a massively multiplayer game besides the
story and 3D graphics? - A distributed application
- Sharing part of the data
- Both reading and updating shared data
- Real-time
- Number of clients can be large
- Clients are heterogeneous
- How Can a client obtain the shared data?
Shared Data and Data from other user
Local Data
Each local computer continuously gets and updates
both data to support user interaction
12 MMOG Server Model
13Communication Architectures
Split-screen Console - Limited players
- All peers equal
- Easy to extend
- Doesnt scale (LAN only)
Server pool -Improved scalability -More complex
- One node server
- Clients only to server
- Server may be bottleneck
14Client-Server v.s. Peer-to-Peer
- Client-Server Model of Massively Multiplayer games
Clients (peers) communicate without a centralized
server. Shared state are distributed to each
client
Clients gets shared data from server and
communicate with others using the server
Server Keeps all shared information and
coordinate communication among users
- Inexpensive
- Not Scalable (but improving)
- No single-point failure
- Expensive
- Scalable
- Single-point failure
15The Internet
- The Internet is a global web of interconnected
computers and computer networks. - The architecture that describes how systems on
the Internet communicate with each other is known
as the Internet architecture, also referred to as
the TCP/IP architecture.
16ISO/OSI 7-Layer Reference Model(International
Organization for Standardization / Open Systems
Interconnection)
Sender
Receiver
The ISO/OSI RM was defined by the ISO in 1977.
Application
Application
Presentation
Presentation
Session
Session
Transport
Transport
Network
Network
Network
Data Link
Data Link
Data Link
Physical
Physical
Physical
17ISO/OSI 7-Layer Reference Model Cont.)
- Each layer of the ISO/OSI reference model is
described here - PL is responsible for the physical communication
between entities, it carries raw bits between
devices. - DLL adds framing and reliability to the raw bit
stream that is sent between physical layers. - NL routes data between different data links.
- TL takes data from the session layer and divides
it into smaller units, which are then passed to
the NL. - SL managers the process-to-process communication
sessions between hosts. - PreL controls how data is represented, e.g. ASCII
to EBCDIC conversion and encryption. - AL provides end-user services. Users typically
interact with these layer, e.g. e-mail program
and FTP program.
18The Internet Protocol (IP)
- The IP is defined by RFC791 standard which
provides the most basic level of services in the
Internet - routing a datagram. - Given a bit of data, a packet and an IP address,
IP tries to route the packet through the network
until it reaches its destination. - IP is a connectionless protocol.
- IP may lose the packet somewhere in the network.
- IP packet may also be corrupted during routing.
- IP does not guarantee that the packets will be
arrived in sequence. - As a conclusion, IP makes a best effort delivery.
It does not promise that everything will go
well. - To compensate for IPs shortcomings, the Internet
architecture use two transport protocols, TCP and
UDP.
19IP address
- One of the key parameters given to IP along with
a packet of data is the destination address for
the packet. - IP addresses are 32-bit quantities and composite
with the Network and Host portions. - Network portion of the address is used to route a
packet to the individual network that contains
host. - Host portion of the address indicates the unique
computer in the Internet. - A computer can have more than one IP addresses,
but one IP address must belong to one unique
computer at any moment. - IP address is a logical address which can be
dynamic assigned. - IP address can represent in two format, binary
and dotted decimal notation.
Binary notation Dotted decimal notation
20Transmission Control Protocol (TCP)
- TCP is a connection-oriented protocol.
- TCP connection is reliable, bi-directional.
- TCP provides the following services
- guaranteed delivery of data
- error detection and recovery
- data delivered in sequence
- no duplicated data
- management of a session/service established
between the source and destination system
21User Datagram Protocol (UDP)
- UDP is designed for lightweight application
messaging. - UDP is connectionless and unidirectional
protocol. - UDP provide data detection but no data correction
and data retransmission. - When an error is discovered, a UDP datagram is
simply thrown away. - If IP loses a UDP datagram on the way to the
destination, UDP does not detect that it was lost.
22 DirectPlay
23DirectPlay
- Introduction to DirectPlay
- Features
- Services
- Protocol
- Whats New in DirectPlay for DirectX 9
24DirectPlay8 ConfigurationsGaming Topologies
- Client-Server
- Dungeon Siege (Gas Powered Games)
- Giants (Planet Moon Studios)
- JumpGate (NetDevil)
- Peer-peer
- Sacrifice (Shiny Entertainment)
- MechWarrior4 (Microsoft)
- GameVoice (Microsoft)
25DirectPlay8 Client-Server
- Clients do not know of other clients
- All sends routed via the server
- Server must be capable of handling several
clients - Suitable for large games with many players
- Massively Multiplayer Games
26DirectPlay8 Peer-Peer
- Players are connected to all other players
- Sends may targeted at other players directly
- Host migration (Managed for you)
- Suitable for small(er) numbers of players
27DirectPlay8 API
- Easy to use and understand
- Deterministic behavior
- Logical message order
- Matched messages
- Create \ Destroy matching handled automatically
- Groups
- Send to Multiple targets efficiently
28DirectPlay8 API
- Powerful
- Asynchronous operations
- Overlapped I/O
- Application payloads when connecting and
enumerating sessions - Player context values
29DirectPlay8 API
- Flexible
- Select ports
- Multiple service providers / adapters / ports
- Asynchronous or synchronous operations
- Send parameters
- Reject connections
- Ignore enumerations
- Scalability parameters
- Push model
30Push Model
- Messages are pushed to the application via
call-back function - Thread pool
- Multithreaded
- Scalable
- A pull (polling) model can be implemented if
required
31DirectPlay8 Architecture
Application
API Calls
Call-backs
DirectPlay8
API / Core
Transport Protocol
IPX SP
Modem SP
Serial SP
IPv6 SP
IPv4 SP
SP Service Provider
32DirectPlay8 Core
- Implements API
- Performs callbacks to applications message
handler function - Performs name table management
- Co-ordinates service provider usage
- Provides integration with DirectPlay8Voice and
DirectPlay8Lobby
33DirectPlay8 CoreHost Migration
- Host migration for peer-peer sessions
- Deterministic host election based on connect
order - Guaranteed transactions
- No session fragmentation
34DirectPlay8 Protocol
- Service provider agnostic
- Guaranteed / non-guaranteed and sequential /
non-sequential messages - Based on UDP when over IP
- Automatic send throttling
- Send timeouts
- Low overhead
35DirectPlay8 Service Providers
- Several provided
- IPv4
- IPX
- Modem
- Serial
- New
- IPv6
- Bluetooth (Pocket PC)
36DirectPlay8 Reliability
- DirectPlay8 is a complete rewrite
- Robust error recovery
- Edge conditions
- Large number of clients, heavy network traffic
- Deterministic behavior
- Connecting, disconnecting, host migrating
- Well Tested
37DirectPlay8 Scalability
- Written to scale
- Multithreaded to support multiple processors
- Tested with several thousand clients
- Optimal and suboptimal conditions
38Whats New in DirectPlay ?DirectPlay for DirectX
9
- DirectX 9 keeps the DirectPlay 8 Interfaces
- NAT/Firewall traversal support
- Most NATs and firewalls for client-server
- Windows ME and XP for peer-peer
39Whats New in DirectPlay ?
- Exposed Thread Pool Interface
- You decide how many threads Direct Play will use
- Allows thread priority modifications
- Thread start/shutdown notification
- Create a data pool for each thread to work with
40Whats New in DirectPlay ?
- Pocket PC Support
- No DirectPlay Voice support
- Bluetooth support
- IPv6 added to Direct Play 9
- Determines availability
- Assists with NAT traversal
- Falls back to IPv4
- Direct Play Protocol Tuning Enhancements
- Tunable Parameters
- Packet Throttling
- Automatic send throttling
41Why use DirectPlay8 ?
- Great platform for networked games
- Robust
- Scalable
- DirectPlay makes networking easier
- Service provider agnostic
- Services like voice and lobby
- Handles NAT for you
- Leverage work and resources