CMPSEM027 Online Gaming - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

CMPSEM027 Online Gaming

Description:

Automatic send throttling. Send timeouts. Low overhead. 35. DirectPlay8 Service Providers ... Packet Throttling. Automatic send throttling. 41. Why use DirectPlay8 ? ... – PowerPoint PPT presentation

Number of Views:60
Avg rating:3.0/5.0
Slides: 42
Provided by: abdennour8
Category:

less

Transcript and Presenter's Notes

Title: CMPSEM027 Online Gaming


1
CMPSEM027Online Gaming
  • Abdennour El Rhalibi

2
AIMS
  • 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.

3
Learning 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

4
What 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?

5
Content
  • 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

6
Assessment
  • 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.

7
References
  • 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
9
What 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)

10
Massively Multiplayer Games (MMG)
  • Examples
  • Lineage, EverQuest
  • 2M players
  • 180K concurrent players
  • Characteristics
  • Large number of shared objects

11
Abstraction 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
13
Communication 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

14
Client-Server v.s. Peer-to-Peer
  • Client-Server Model of Massively Multiplayer games
  • Peer-to-Peer System

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

15
The 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.

16
ISO/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
17
ISO/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.

18
The 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.

19
IP 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
20
Transmission 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

21
User 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
23
DirectPlay
  • Introduction to DirectPlay
  • Features
  • Services
  • Protocol
  • Whats New in DirectPlay for DirectX 9

24
DirectPlay8 ConfigurationsGaming Topologies
  • Client-Server
  • Dungeon Siege (Gas Powered Games)
  • Giants (Planet Moon Studios)
  • JumpGate (NetDevil)
  • Peer-peer
  • Sacrifice (Shiny Entertainment)
  • MechWarrior4 (Microsoft)
  • GameVoice (Microsoft)

25
DirectPlay8 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

26
DirectPlay8 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

27
DirectPlay8 API
  • Easy to use and understand
  • Deterministic behavior
  • Logical message order
  • Matched messages
  • Create \ Destroy matching handled automatically
  • Groups
  • Send to Multiple targets efficiently

28
DirectPlay8 API
  • Powerful
  • Asynchronous operations
  • Overlapped I/O
  • Application payloads when connecting and
    enumerating sessions
  • Player context values

29
DirectPlay8 API
  • Flexible
  • Select ports
  • Multiple service providers / adapters / ports
  • Asynchronous or synchronous operations
  • Send parameters
  • Reject connections
  • Ignore enumerations
  • Scalability parameters
  • Push model

30
Push Model
  • Messages are pushed to the application via
    call-back function
  • Thread pool
  • Multithreaded
  • Scalable
  • A pull (polling) model can be implemented if
    required

31
DirectPlay8 Architecture
Application
API Calls
Call-backs
DirectPlay8
API / Core
Transport Protocol
IPX SP
Modem SP
Serial SP
IPv6 SP
IPv4 SP
SP Service Provider
32
DirectPlay8 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

33
DirectPlay8 CoreHost Migration
  • Host migration for peer-peer sessions
  • Deterministic host election based on connect
    order
  • Guaranteed transactions
  • No session fragmentation

34
DirectPlay8 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

35
DirectPlay8 Service Providers
  • Several provided
  • IPv4
  • IPX
  • Modem
  • Serial
  • New
  • IPv6
  • Bluetooth (Pocket PC)

36
DirectPlay8 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

37
DirectPlay8 Scalability
  • Written to scale
  • Multithreaded to support multiple processors
  • Tested with several thousand clients
  • Optimal and suboptimal conditions

38
Whats 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

39
Whats 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

40
Whats 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

41
Why 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
Write a Comment
User Comments (0)
About PowerShow.com