Server-Oriented Multiplayer Games Presented by: Eric Fesenmaier

Slides:



Advertisements
Similar presentations
Physics: Principles with Applications, 6th edition
Advertisements

TP4: S TATE M ACHINE D ESIGN P ATTERN  Definition  Infrastructure  Transition Code  Conclusion.
Dead Reckoning Objectives – –Understand what is meant by the term dead reckoning. –Realize the two major components of a dead reckoning protocol. –Be capable.
Network synchronization of Online Games Li, Zetan.
Online Educational Game of Snakes and Ladders -Shalini Pradhan -Manali Joshi -Uttara Paingankar -Seema Joshi.
On the Impact of Delay on Real-Time Multiplayer Games Authors: Lothar Pantel, Lars C. Wolf Presented by: Bryan Wong.
A Service Platform for On-Line Games DebanJan Saha, Dambit Sahu, Anees Shaikh (IBM TJ Watson Research Center, NY) Presented by Gary Huang March 17, 2004.
Peer-to-Peer Support for Massively Multiplayer Games Bjorn Knutsson, Honghui Lu, Wei Xu, Bryan Hopkins Presented by Mohammed Alam (Shahed)
Computers Are Your Future © 2008 Prentice-Hall, Inc.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Behaviour and Performance of Interactive Multi-player Game Servers Ahmed Abdelkhalek, Angelos Bilas, and Andreas Moshovos.
Small group multiplayer games. Introduction Modern games have: z3D graphics znice music and sound effects zinteresting story zmultiplayer mode.
Scaling Peer-to-Peer Multiplayer Games with Doppelgängers Jeffrey Pang Frank Uyeda Jacob R. Lorch John R. Douceur Donnybrook project goal: Dramatically.
Implementation of Proxy/Buffering Strategies in Mpeg transmission for intermittent connectivity CS218 Samarth Pal, Ujjwal Lahoti, Xiaoyong Su Tutor: Dr.
Team 13: Cody Smoker Chris Rickerd Matthew Berryhill Galaxy Sleuth.
Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.
IMDraw An Instant Message and Drawing Program Tim Poley Kelly Whitacre.
Using Bluetooth on Android Devices to Implement Real-Time Multiplayer Games Brad Boone, Corey Darr, Chris Hayes, Dale Musser, Ph.D. Introduction With the.
IMDraw An Instant Message and Drawing Program Tim Poley Kelly Whitacre.
The Effects of Latency on Player Performance in Cloud-based Games Mark Claypool and David Finkel Computer Science and Interactive.
Applying Real-time Simulation to Real-time Collaboration Bart Miller.
Client/Server Technology Two-Tier Architecture Three-Tier Architecture Josh Antonelli Jenn Lang Joe Schisselbauer Chad Williams.
Super Pong Andrew Dunsmore CSC436. Overview Purpose Design Specification Software Engineering.
Holistic Mobile Game Development with Unity 2015 Taylor & Francis. All rights Reserved.
CSCI-235 Micro-Computer in Science The Network. © Prentice-Hall, Inc Communications  Communication is the process of sending and receiving messages 
Parallel Monte-Carlo Tree Search with Simulation Servers H IDEKI K ATO †‡ and I KUO T AKEUCHI † † The University of Tokyo ‡ Fixstars Corporation November.
Network Physics Created by Ruslan Yavdoshak for Nikitova Games, 2008.
MV-4474 Virtual Environment Network & Software Architectures Michael Zyda
1 Network Gaming. History of Network Gaming MUD MUD –Multi-user Dungeons Modem Games Modem Games Match Makings Match Makings –Real-time strategy –FPS.
Peer-to-Peer Support for Massively Multiplayer Games Zone Federation of Game Servers : a Peer-to-Peer Approach to Scalable Multi-player Online Games [INFOCOM.
Ophelia User-friendly Network Multi-player Game Engine Albert Öhrling.
Introduction to Networked Graphics Part 3 of 5: Latency.
Microsoft DirectPlay  5.0 Ajay Jindal Program Manager.
BASS Application Sharing System Omer Boyaci September 10,
Orbited Scaling Bi-directional web applications A presentation by Michael Carter
AN OVERVIEW OF GAME DEVELOPMENT
Distributed Virtual Environments Introduction. Outline What are they? DVEs vs. Analytic Simulations DIS –Design principles Example.
Dead reckoning in Sports and Strategy Games Ushhan D. Gundevia November 8, 2004.
Chapter 2 Describing Motion: Kinematics in One Dimension.
Ophelia User friendly Network Multi-player game engine Albert Öhrling.
A Space Game By William Sistar. The Problem What is provided:  Most network games are single player  Some do allow team work but not in a common environment.
Light Cycles Galore Building a Multi-Server Multiplayer Game Architecture By Per Lohmann.
Logic Analyzer ECE-4220 Real-Time Embedded Systems Final Project Dallas Fletchall.
TURBO TANKS PYGAME. GAME FEATURES Two or more players handled by client/server design. Angular motion for tank movement Threadpool server design (to optimize.
Dead Reckoning References: Gamasutra (1), Gamedev (1)1 Forum articles (1)1.
Wireless Pong on the Nokia 770 Jason Waterman EE194-WIR April 27th, 2006.
11 General Game Programming Approach. The program is event-driven The program is event-driven –Messages = events –So as all windows system (for example.
Efficient AOI-Cast for Peer-to-Peer Networked Virtual Environments.
Chapter 2 Describing Motion: Kinematics in One Dimension © 2014 Pearson Education, Inc.
Multiplayer games on networks potential and tradeoffs.
Super Pong Andrew S. Dunsmore CSC436 August 2004.
Dead Reckoning. Outline Basic Dead Reckoning Model (DRM) –Generating state updates –Position extrapolation Refinements –Time compensation –Smoothing.
Warlords Patrick Levoshko SE 558 – Multiplayer Game Design.
CSCI-235 Micro-Computer Applications The Network.
Linear Motion with Constant Acceleration. Effects of acceleration Object ’ s speed changes every second, therefore the distance covered each second is.
Networked Graphics Building Networked Virtual Environments and Networked Games Chapter 11: Latency and Consistency.
Java Networking I IS Outline  Quiz #3  Network architecture  Protocols  Sockets  Server Sockets  Multi-threaded Servers.
The average velocity of an object during a time interval t is The acceleration, assumed constant, is 2-5 Motion at Constant Acceleration.
Network Topologies for Scalable Multi-User Virtual Environments Lingrui Liang.
Chapter 3 Describing Motion: Kinematics in One Dimension.
Grade 9 Review Kinematics (motion) – Velocity and Acceleration Reference Frames and Displacement Average Velocity Instantaneous Velocity Acceleration Motion.
Networking Project. Game Networking Game Networking Topology Star (client/server) Topology – All devices are connected to a central hub (server) – Nodes.
Graphical Interpretation of Motion in One Dimension
Virtual World Architecture II
Network Configurations
Consistency in Distributed Systems
Describing Motion: Kinematics in One Dimension
Describing Motion: Kinematics in One Dimension
Design and Implementation of OverLay Multicast Tree Protocol
Presentation transcript:

Server-Oriented Multiplayer Games Presented by: Eric Fesenmaier

Outline A Short History of Multiplayer Games Architectures for Multiplayer Games Advantages/Disadvantages of Client- Server Client-Server Design Client-Server Design Issues

Multiplayer Game History They Had Computers Then? 1958 – William Higinbotham designs two-player pong like game on analog computer and oscilloscope.

Multiplayer Game History Sounds like something I played … 1979 – First Multiplayer User Dimension (MUD) is created – a text based RPG. It can handle up to 250 players.

Multiplayer Game History Wow! Coming soon – The makers of Everquest debut Planetside, a Multiplayer First Person Shooter (FPS) capable of handling users per server.

Multiplayer Game Architectures How should I connect? Client-Client (Peer-to-Peer) Client-Server Server Network (Server Pool)

Multiplayer Game Architectures Do I want this model? Client-Client (Peer-to-Peer) Client-Server Server Network (Server Pool)

Multiplayer Game Architectures Do I want this model? Client-Client (Peer-to-Peer) Client-Server Server Network (Server Pool)

Multiplayer Game Architectures Do I want this model? Client-Client (Peer-to-Peer) Client-Server Server Network (Server Pool)

Advantages Why choose Client-Server? Easier to connect Simplicity  Consistency by default  Client and Server separate out functionality Easier to develop Security/Administration

Disadvantages Reasons to try something else Server requirements – high bandwidth, high performance Reliability – single point failure

Design Generic Multiplayer Game Connect Socket Game State Player Threads Clients

Design Generic Multiplayer Game Connect Socket Game State Player Threads Clients events

Design Generic Multiplayer Game Connect Socket Game State Player Threads Clients events changes

Design Generic Multiplayer Game Connect Socket Game State Player Threads Clients events changes update

Design The Actors: Server vs. Client Server  sets up connections  updates state based off current state and events. s n = f(s n-1, event)  sends out updates (when appropriate) Client  sends events (when input changes)  renders updates

Design Turn-Based vs. Real Time Turn-Based – Clients only send a message when it is their turn (i.e. card games, board games). Real Time – Clients continuously send messages. Latency and bandwidth becomes a problem.

Design Issues Bandwidth & Latency Consider the bandwidth of a 28.8Kb/s modem (28.8Kb = 3.6KB): 3.6 KB/s= 120 bytes/frame 30 frame/s Limits the number/size of messages Average latency nation-wide is 50 – 200 ms An estimation method can resolve these problems

Design Issues Dead Reckoning with Point-to-Point Motivation: Clients can only receive 5 – 10 updates/s due to bandwidth, while fluid motion requires 30 updates/s. Also, the updates will be old due to latency. Solution: Server only send updates when necessary. All clients use an agreed upon estimation method to render the scene until an update is received. This achieves a consistent view.

Design Issues Dead Reckoning with Linear Convergence Point-to-Point method in example results in jerkiness Clients don’t receive update until later Solution: After receiving new point, create a smooth path

Design Issues Dead Reckoning with Cubic Splines Linear convergence looks unnatural. You’d like a smooth path that takes initial and final velocities into account. “Cubic Splines” are an easy way to fit a curve to some set of points Whenever you receive an update:  Take current point, and the next estimated point  Take the updated point, and estimate two points in the near future  Use “Cubic Splines” to fit a smooth curves to the points Equations in reference

Design Issues Dead Reckoning with Cubic Splines Linear convergence looks unnatural. You’d like a smooth path that takes initial and final velocities into account. “Cubic Splines” are an easy way to fit a curve to some set of points Whenever you receive an update:  Take current point, and the next estimated point  Take the updated point, and estimate two points in the near future  Use “Cubic Splines” to fit a smooth curves to the points Equations in reference

Design Issues Dead Reckoning with Cubic Splines Linear convergence looks unnatural. You’d like a smooth path that takes initial and final velocities into account. “Cubic Splines” are an easy way to fit a curve to some set of points Whenever you receive an update:  Take current point, and the next estimated point  Take the updated point, and estimate two points in the near future  Use “Cubic Splines” to fit a smooth curves to the points Equations in reference

Design Issues Dead Reckoning with Cubic Splines Linear convergence looks unnatural. You’d like a smooth path that takes initial and final velocities into account. “Cubic Splines” are an easy way to fit a curve to some set of points Whenever you receive an update:  Take current point, and the next estimated point  Take the updated point, and estimate two points in the near future  Use “Cubic Splines” to fit a smooth curves to the points Equations in reference

Design Issues Dead Reckoning with Cubic Splines Linear convergence looks unnatural. You’d like a smooth path that takes initial and final velocities into account. “Cubic Splines” are an easy way to fit a curve to some set of points Whenever you receive an update:  Take current point, and the next estimated point  Take the updated point, and estimate two points in the near future  Use “Cubic Splines” to fit a smooth curves to the points Equations in reference

Design Issues Dead Reckoning Example Two cars in the X-Y plane with constant speed Game State:  X, Y Position  X, Y Velocity  Orientation

Why use Client-Server? Scalable Easier to implement Less synchronization issues

Conclusion Architectures for Multiplayer Games Advantages/Disadvantages of Client- Server Client-Server Design Client-Server Design Issues

Questions???

References - the essentials of multiplayer games staff.cs.utu.fi/~jounsmed/papers/AspectsOfMCGs.pdf – theory of multiplayer games staff.cs.utu.fi/~jounsmed/papers/AspectsOfMCGs.pdf staff.cs.utu.fi/~jounsmed/papers/TR454.pdf – theory of multiplayer games staff.cs.utu.fi/~jounsmed/papers/TR454.pdf – articles and forums on designing multiplayer games warriors.eecs.umich.edu/games/papers/quakefinal.pdf – honors thesis on multiplayer game architecture warriors.eecs.umich.edu/games/papers/quakefinal.pdf cubic splines in multiplayer games (with equations) online.redwoods.cc.ca.us/instruct/darnold/laproj/Fall98/SkyMeg/splinepres/sld025.ht m -- cubic splines made easy online.redwoods.cc.ca.us/instruct/darnold/laproj/Fall98/SkyMeg/splinepres/sld025.ht m – articles on new games – articles on the history of multiplayer games cec.wustl.edu/~cs333/calendar/Multi-threadServerTutorial.ppt -- multithreaded server diagram cec.wustl.edu/~cs333/calendar/Multi-threadServerTutorial.ppt