Lessons learned from a multiplayer RTS development Based on: ures/20010322/terrano_01.htm - accessed on 17th December.

Slides:



Advertisements
Similar presentations
Packet Switching vs. Circuit Switching
Advertisements

COS 461 Fall 1997 Group Communication u communicate to a group of processes rather than point-to-point u uses –replicated service –efficient dissemination.
Stopping cheaters since By: Tigran Gasparian.
Network Certification Preparation. Module - 1 Communication methods OSI reference model and layered communication TCP/IP model TCP and UDP IP addressing.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Network Protocols Mark Stanovich Operating Systems COP 4610.
Network synchronization of Online Games Li, Zetan.
Dead Reckoning Andrew Williams. Dead reckoning Process of estimating a position using known information from the (recent) past. If you know the speed.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Effective Agent Participation in Rescue Operations Brent Dutson CS7100 Fall 2009.
Computer Science 162 Section 1 CS162 Teaching Staff.
1 PLuSH – Mesh Tree Fast and Robust Wide-Area Remote Execution Mikhail Afanasyev ‧ Jose Garcia ‧ Brian Lum.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
Using Bluetooth on Android Devices to Implement Real-Time Multiplayer Games Brad Boone, Corey Darr, Chris Hayes, Dale Musser, Ph.D. Introduction With the.
1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond J. Smed, T. Kaukoranta and H. Hakonen Gamasutra (First appeared at the Game Developer’s.
Multicast Communication Multicast is the delivery of a message to a group of receivers simultaneously in a single transmission from the source – The source.
File Systems (2). Readings r Silbershatz et al: 11.8.
MSF Testing Introduction Functional Testing Performance Testing.
1 CMSCD1011 Introduction to Computer Audio Lecture 10: Streaming audio for Internet transmission Dr David England School of Computing and Mathematical.
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
Guide to TCP/IP, Third Edition
TESTING STRATEGY Requires a focus because there are many possible test areas and different types of testing available for each one of those areas. Because.
11 September 2015 RE Meyers, Ms.Ed. CCENT ICND1 Exam Topics Review Describe the Operation of Data Networks: Network Diagrams and Data Paths.
Presentation on Osi & TCP/IP MODEL
Web application architecture
Network Physics Created by Ruslan Yavdoshak for Nikitova Games, 2008.
Copyright 2003 CCNA 1 Chapter 9 TCP/IP Transport and Application Layers By Your Name.
1 Network Gaming. History of Network Gaming MUD MUD –Multi-user Dungeons Modem Games Modem Games Match Makings Match Makings –Real-time strategy –FPS.
Chapter Nine The Session Layer. Objectives We’ll see how a new session is created, maintained, and dismantled. The process of logon authentication will.
1 7-Oct-15 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.

TELE202 Lecture 5 Packet switching in WAN 1 Lecturer Dr Z. Huang Overview ¥Last Lectures »C programming »Source: ¥This Lecture »Packet switching in Wide.
Computer Networks Lecture 5 Packet Switching & Circuit Switching, Causes of impairment Lahore Leads University.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
TEMPLATE DESIGN © Last Resort Animation, Modeling, AI, Networking, and Backend Alex Bunch, Nick Hunter, Austin Lohr, Robert.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
Emotional Models in Games Max Douglas Chris Zhu Tania Tam Luke.
Ophelia User friendly Network Multi-player game engine Albert Öhrling.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Transport Layer COM211 Communications and Networks CDA College Theodoros Christophides
Lecture 6 Page 1 Advanced Network Security Review of Networking Basics Advanced Network Security Peter Reiher August, 2014.
Module 2 Task Part 1.The first task consists of undertaking this Tutorial to ensure you understand (or have reviewed) all the basic .
Lecture 16 Page 1 CS 236 Online Web Security CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Networking Basics CCNA 1 Chapter 11.
Network Components By Kagan Strayer. Network Components This presentation will cover various network components and their functions. The components that.
Individual Project 1 Sarah Pritchard. Fran, a customer of your company, would like to visit your company’s website from her home computer… How does your.
Reading TCP/IP Protocol. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also.
SoftwareServant Pty Ltd 2009 SoftwareServant ® Using the Specification-Only Method.
LSNDI RMRA 1 Design and troubleshooting M Clements.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
Concurrency and Performance Based on slides by Henri Casanova.
Agenda  Quick Review  Finish Introduction  Java Threads.
Network Protocols Andy Wang Operating Systems COP 4610 / CGS 5765.
1 14-Jun-16 S Ward Abingdon and Witney College CCNA Exploration Semester 1 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
Data Link Layer.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 OSI transport layer CCNA Exploration Semester 1 – Chapter 4.
Chapter 9 The Transport Layer The Internet Protocol has three main protocols that run on top of IP: two are for data, one for control.
By: Brett Belin. Used to be only tackled by highly trained professionals As the internet grew, more and more people became familiar with securing a network.
VIRTUAL NETWORK COMPUTING SUBMITTED BY:- Ankur Yadav Ashish Solanki Charu Swaroop Harsha Jain.
1 Group Communications: Host Group and IGMP Dr. Rocky K. C. Chang 19 March, 2002.
The Distributed Application Debugger (DAD)
The FAST Report Scheduler
Packet Sniffing.
Net 323 D: Networks Protocols
TCP Congestion Control
Computer Networks Protocols
The TCP/IP Model.
Presentation transcript:

Lessons learned from a multiplayer RTS development Based on: ures/ /terrano_01.htm - accessed on 17th December ures/ /terrano_01.htm

The article The article is linked from my webpage It is from 2001 and concerns Age of Empires 2, Age of Kings 2 and Age of Empires 3 – There is stuff about modems in there It is an extraordinarily interesting read Particularly note the synchronized simulation

Design Goals The design of the multiplayer system started with a series of goals: – “Sweeping epic historical battles with a great variety of units – Support for 8 players in multiplayer – Insure a smooth simulation over LAN, modem-to-modem, and the Internet – Target platform of: 16MB Pentium 90 with a 28.8 modem – The communications system had to work with existing engine – Target consistent frame rate of 15fps on the minimum machine config”

Genie Engine Originally the game ran on the Genie Engine: – Single threaded – 2D – Sprites in 256 colours Post optimization performance (roughly) – 30% Rendering – 30% AI and pathing – 30% Running the simulation & maintenance

Genie Engine Performance Performance varied greatly As much as 200 msec / frame, depending on what the player was doing – How many items on screen? – Was the user just watching? – What was on the terrain? – What was the AI trying to do?

Genie Engine – distributing data What sort of information would we need to distribute per unit? – X and Y coordinates – Orientation – Status – Action – Damage Even just that set would have restricted them to a maximum of 250 active units in the game

Solution Simultaneous simulation – Each machine in the game runs the game in a synchronized fashion – Each machine “synchronizes its watch” – Then commands are replicated around the network – Note: commands, not information about units So long as every game starts at the same point and executes the same commands …

Network Limitations Latency swings of 20 – 1000 msec (remember, this is 2001) Ensuring that every machine executes every command (bear in mind that receipt of “other” players’ commands will be subject to this latency) would be tricky Solution is to run the simulation two commands behind

“Communications Turns” Commands issued on turn 1000 would execute on turn 1002 and commands issued on turn 1001 would execute on turn 1003 Diagram is from the Gamasutra article (op cit)

Speed Control The game can only execute as fast as the slowest PC On each turn, each PC sends information about how long the last executed turn took – latency – execution time The designated host would take these messages and work out turn rate to all “clients”

Protocol UDP was used for communications Remember, UDP does not guarantee delivery Each packet sent included sequence information – If messages were received out of order, recipient would send a re-send request – If acknowledgement was overdue, the sender re- sends (ie assumes the message was dropped unless it hears otherwise)

Security benefits The synchronized nature of the simulation meant that it was difficult to cheat – Any client that is different (eg if someone has added extra food in their client) is tagged as out- of-sync and the game stops.

Problems with the approach Suppose a unit is slightly out of alignment – In your simulation he chucks a spear, kills the deer and takes home some food – In mine, he misses the deer and takes home none Even if you have a checksum on the amount of food and that reveals a discrepancy, that is not the cause of the bug, just its symptom

Lessons learned 1.Know your user – The article says some interesting things about user perception of latency So long as the latency is steady it is fine up to about 500msec – It is better to be consistent and slow than to be fast most of the time but slow at others – Measure user behaviour How often does your user issue commands? Design the system to cope with peak issuing times (3- 4 commands during battles)

Lessons learned 1.Know your user (continued) – Watch out for pathological behaviours At times of excitement users would issue the same command multiple times The developers introduced a filter so that identical commands were not sent over the network multiple times

Lessons learned 2.Metering is king – Meter your communications system The developers put in metering to see how the network was behaving Furthermore, they trained their testers on interpreting the metering information

Lessons Learned 3.Educate the developers – The team used a system of communication turns – A command issued on turn 500 would be executed on 502. – Programmers had to get used to this concept. – Programmers also had to remember (eg) to re- seed the pseudo-random number generator to ensure that all simulations remained in synch

Lessons learned 4.Be careful of third party tools – There is always a danger that they will not operate as you expect them to – Be prepared for testing Simulation applications Stress testing – You have to build these things yourself!

Lessons learned 5.Unexpected benefits – The approach they took to simulation made it very easy to do game recording – This was critical for debugging of course – It also turned out to be an extremely popular gameplay feature: Players could replay battles Players could save their performances Players could analyze strategy

Task The article on which this lecture is based is from – Does modern, improved connectivity mean that we don’t need to do this sort of thing anymore? – How does a modern RTS do it?