Light Cycles Galore Building a Multi-Server Multiplayer Game Architecture By Per Lohmann.

Slides:



Advertisements
Similar presentations
Chapter 16. Windows Internet Name Service(WINS) Network Basic Input/Output System (NetBIOS) N etBIOS over TCP/IP (NetBT) provides commands and support.
Advertisements

System Integration and Performance
Categories of I/O Devices
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Transport Layer3-1 Transport Overview and UDP. Transport Layer3-2 Goals r Understand transport services m Multiplexing and Demultiplexing m Reliable data.
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Remote Procedure Call (RPC)
Csc333 Data communication & Networking Credit: 2.
Network synchronization of Online Games Li, Zetan.
CS162 Section Lecture 9. KeyValue Server Project 3 KVClient (Library) Client Side Program KVClient (Library) Client Side Program KVClient (Library) Client.
A Context Aware Framework Mark Assad Supervisor: Bob Kummerfeld.
On the Impact of Delay on Real-Time Multiplayer Games Authors: Lothar Pantel, Lars C. Wolf Presented by: Bryan Wong.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
Socket Addresses. Domains Internet domains –familiar with these Unix domains –for processes communicating on the same hosts –not sure of widespread use.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture and Protocols Socket Programming Instructor: Dr. Mohamed Hefeeda.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Gursharan Singh Tatla Transport Layer 16-May
Applying Real-time Simulation to Real-time Collaboration Bart Miller.
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
Hjemmeeksamen 1 INF3190. Oppgave Develop a monitoring/administration tool which allows an administrator to use a client to monitor all processes running.
Chapter 31 File Transfer & Remote File Access (NFS)
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
Holistic Mobile Game Development with Unity 2015 Taylor & Francis. All rights Reserved.
1 Transport Layer Computer Networks. 2 Where are we?
Hands On Networking Socket Programming Ram P Rustagi, ISE Dept Abhishek Gupta, ISE Dept Laxmi Kuber, MCA Dept June 28-30, 2012.
TCP/IP Protocol Stack IP Device Drivers TCPUDP Application Sockets (Gate to network) TCP: –Establish connection –Maintain connection during the communication.
Daniel Johnson. Playing a media file stored on a remote server on a local client.
1 Network Gaming. History of Network Gaming MUD MUD –Multi-user Dungeons Modem Games Modem Games Match Makings Match Makings –Real-time strategy –FPS.
Ophelia User-friendly Network Multi-player Game Engine Albert Öhrling.
 Socket  The combination of an IP address and a port number. (RFC 793 original TCP specification)  The name of the Berkeley-derived application programming.
CS/EE 145A Reliable Transmission over Unreliable Channel Netlab.caltech.edu/course.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
Outline Overview Video Format Conversion Connection with An authentication Streaming media Transferring media.
Warcraft III, by Blizzard CSE 381 – Advanced Game Programming Networked Gaming Issues.
TCP Lecture 13 November 13, TCP Background Transmission Control Protocol (TCP) TCP provides much of the functionality that IP lacks: reliable service.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
Chapter 2 Applications and Layered Architectures Sockets.
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 19 Domain Name System (DNS)
Wireless Pong on the Nokia 770 Jason Waterman EE194-WIR April 27th, 2006.
Internet multimedia: simplest approach audio, video not streamed: r no, “pipelining,” long delays until playout! r audio or video stored in file r files.
Warlords Patrick Levoshko SE 558 – Multiplayer Game Design.
Distributed systems (NET 422) Prepared by Dr. Naglaa Fathi Soliman Princess Nora Bint Abdulrahman University College of computer.
Review of key networking techniques: –Reliable communication over unreliable channels –Error detection and correction –Medium access control –routing –Congestion.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
4343 X2 – The Transport Layer Tanenbaum Ch.6.
Project Title: Establishing communication between the server and Envirobat using TCP/IP Presented by Apourva.P.
Socket programming in C. Socket programming Socket API introduced in BSD4.1 UNIX, 1981 explicitly created, used, released by apps client/server paradigm.
1 Network Communications A Brief Introduction. 2 Network Communications.
Networking Project. Game Networking Game Networking Topology Star (client/server) Topology – All devices are connected to a central hub (server) – Nodes.
The Transport Layer Implementation Services Functions Protocols
UDP TCP.
Unity Networking.
Layered Architectures
Working at a Small-to-Medium Business or ISP – Chapter 7
Working at a Small-to-Medium Business or ISP – Chapter 7
Remote Demos Remote Demo.
Working at a Small-to-Medium Business or ISP – Chapter 7
Process-to-Process Delivery:
Lecture 2: Overview of TCP/IP protocol
CPEG514 Advanced Computer Networkst
Internet Applications & Programming
Process-to-Process Delivery: UDP, TCP
Last Class: Communication in Distributed Systems
Transport Layer 9/22/2019.
Presentation transcript:

Light Cycles Galore Building a Multi-Server Multiplayer Game Architecture By Per Lohmann

Light Cycles the game Inspired by the movie Tron Similar to the game Snake Players drive around in a world controlling a Light Cycle Each Light Cycle leave a tail after it

Early design decisions Game is 2D Moves are either Up, Down, Left or Right World split into zones of fixed sizes Each zone is handled by a server No loading screen between zone transitions Visibility into other zones

System architecture

Master server consequences Single point of failure/limitation –Can be a bottleneck Single point of connection –Easy server setup –Client connection is simplified

Implementation Master server project –WinForm application Server project –WinForm application Game Client project –XNA 2.0 Common project –Containing shared objects and enums (mostly concerning network communication)

Representing the world (server) Zones are rectangular –Size set by the master server –Layout set by the master server –References to nearest eight world directions North, Northeast, East, Southeast etc. –Represented as a two dimensional array Each element represents a player id Id = 0 is reserved for empty space Id = 1 is reserved for walls

Collision detection Collision detection in constant time O (k) –Lookup in array at a specified position

Representing the world (Client) “Unlimited” size of game world No loading between zones Visibility into other zones Not practical with an array representation List of list of tiles (tiles are equivalent to player id’s) –Do not use structs when using lists in C#!

Representing the world (Client)

Client view Clients view is larger than the actual viewed part on the screen –Buffer area allowing the client to receive view updates before they are visible (buffer = one seconds movement)

Game state communication Client sends information when performing an action Server sends information when updates about players view occur Dead reckoning / Client side prediction –

Zone transitions Two types of server states –Active server –Passive server When clients view enters another servers area the active server informs the client to connect to a passive server Client sends commands to all “registered” servers Receives updates respectively –Will not work in a FPS game –Would work in World of Warcraft

Architecture scalability Currently Master server uses TCP –One TCP connection per server –One TCP connection per client –≈ free ports Server / client communication uses UDP –No real restrictions except bandwidth and server resources

The end Questions?

Server “crash” Detecting server “crashes” –TCP connection to Master server gets torn down –Any servers without zones get assigned that zone –All data from zone is lost but “world” continues –MS could inform players of server crash (currently it does not)

Transmitting data TCP TCP (Reliable, Connection oriented, etc.) –Encode/decode using built in binary converter –TCP is stream based and not message based –Multiple encoded objects received –TCP wrapper object appending object length

Transmitting data UDP UDP (unreliable) –Uses pure unreliable UDP –Encode/decode using own implementations –Highly efficient –Byte shifting –Could be done more easily using C (memcpy)