Cheating at Multiplayer Online Games

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Colyseus: A Distributed Architecture for Online Multiplayer Games
Game Programming Patterns Game Loop
Online Game Security - Quake III and its Hacks - (related paper: A Systematic Classification of Cheating in Online Games, Jeff Yanand and Brian Randell.
Cheating at Multiplayer Online Games An-Cheng Huang Bruce Maggs.
Network synchronization of Online Games Li, Zetan.
Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization I’m Curtis.
Multiplayer Online Games An-Cheng Huang Bruce Maggs.
Introduction to Computers
Ins and Outs of Computers Discover Computer Hardware Discover Computer Categories Produced by Amber Watkins, West Wendover Jr./Sr. High School Website:
Flash Cards Computer Technology.
Networked Games - consistency and real-time Objectives – –Understand the problems associated with networked games. –Realize the importance of satisfying.
A 2-D, multi-player tank game developed in PLT Scheme ~ ~ ~ Ben VandenBos, Tim Reeves, Justin Hall, and John Ericksen ~ ~ ~ Senior Project - CS496 Spring.
1 Network Gaming. History of Network Gaming MUD MUD –Multi-user Dungeons Modem Games Modem Games Match Makings Match Makings –Real-time strategy –FPS.
Introduction to Networked Graphics Part 3 of 5: Latency.
Time Manipulation.  The game states rendered at the clients are different because latency is dependent on the location of the client from the server.
Cheating at Multiplayer Online Games Bruce Maggs (with some slides from An-Cheng Huang)
Game Programming Patterns Game Loop From the book by Robert Nystrom
1 Introduction to Computers Prof. Sokol Computer and Information Science Brooklyn College.
Technology vocab. By:Laytosha Johnson. Data Data is individual facts,statistics, or items of information….evidence Data is individual facts,statistics,
Gaming today is a widely recognized part of our culture Gaming is very old (Egyptians – board games) Electronic games required the invention of electronic.
Index Background Costumes Making object walk smoothly Controlling an object with the keyboard Control an object with the mouse Changing costume when hit.
Spring 2011AOU. Spring 2011AOU 2 Section 1: Joining The Online World 1.1 and computer-based forums 1.2 Computer Mediated Communication.
Chapter 1: Introduction to Computers and Programming
Introduction to Computers
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
Network and hardware revision
Cheating at Multiplayer Online Games
Operating Systems What an Operating System is.
Section 2.1 Section 2.2 Identify hardware
History of gaming By Ryan McGraw.
Operating System & Application Software
Chapter 6 Input/Output Organization
Peripherals – Keypad The Keypad provides a simple means of numerical data or control input. The keys can be attributed whatever data or control values.
Discovering Computers 2012: Chapter 8
Clocks, I/O devices, Thin Clients, and Power Management
COMPFUN Caroline Nicole S. Orbeta.
Topics Introduction Hardware and Software How Computers Store Data
Introduction to Computers
Types of Computers & Computer Hardware
Computer Hardware and Software
Principles of Information Technology
Maths Space Gladys Nzita-Mak.
The Operating System Nick Sims.
Technology Literacy Hardware.
CHAPTER 2 Application Layer.
Introduction To Computers
Introduction to Computers
Introduction to computer
Introduction To Computers
Information Technology
Types of Computers & Computer Hardware
I/O Devices Chapter 14 9/20/2018 Crowley OS Chap. 14.
Essential Introduction to Computers
Microprocessor & Assembly Language
Language Basics.
Computer Basics: Inside a Computer Part II
Topics Introduction Hardware and Software How Computers Store Data
Introduction to Computers
Revision of Simple troubleshooting
Information Technology Ms. Abeer Helwa
Five Key Computer Components
Shipwrecked Gameplay Characters Networking Turrets Spawning
Introduction to Computers
Tonga Institute of Higher Education IT 141: Information Systems
Welcome to the computer!
The PLATO Computer System and Cheating at Multiplayer Online Games
Introduction to Computers
Presentation transcript:

Cheating at Multiplayer Online Games Bruce Maggs (with some slides from An-Cheng Huang)

Your professor is a notorious cheater A small confession… Your professor is a notorious cheater

PLATO Computer System PLATO IV Developed by the University of Illinois and the Control Data Corporation 1961 timesharing PLATO II begins 1964 invention of plasma panel 1968 PLATO IV begins Spun off as “NovaNET” late 1980’s Revived at www.cyber1.org

Innovations first LARGE on-line community invention of the plasma panel multimedia “personal notes” – email “group notes” – newsgroups “consulting mode” – desktop sharing widely used “term talk” (like Unix talk) Shared memory enabled multiplayer games IBM correctly attributes Lotus Notes to PLATO

Hardware Control Data mainframes designed by Seymour Cray Cyber 70, 176, CDC 6600, 7600 Magnetic core memory 60-bit words, 6-bit characters One’s-complement arithmetic Up to 1000 simultaneous users (NovaNET originally ran on Alpha processor)

PLATO IV Terminal 512x512 plasma panel https://digitalanalogues.wordpress.com/2011/04/22/it-really-is-deja-vu-all-over-again/ 512x512 plasma panel 1200 baud connection to mainframe Stream of commands for displaying text and symbols, and for drawing lines

Pressing the STOP key aborts output stream to the terminal. I pressed NEXT, then quickly pressed STOP several times, which allowed me to trace Rick Blomme’s record, and beat it!

Multiplayer Games Dungeons and Dragons Space Warfare e.g., oubliette, avatar Space e.g., spasim, empire Warfare e.g., airfight, panther

Empire

Empire Basics I am  shrike , a proud Klingon / Kazari Becoming a member of the Federation, a Vulcan/Orion, or a Romulan is equivalent to turning in your private key The goal is to conquer the universe Ship fires phasers, photon torpedos Firing at correct angle inflicts more damage. To fire phasers at angle 233, type “f 233 NEXT” Ship makes a hyperjump when you replot the screen, based on time since last replot

Empire

The Clone Brothers I built a device that you plugged a keyboard into, and then it plugged into two separate PLATO IV terminals Small circuit waited for both terminals to acknowledge keystroke before telling keyboard Why? Fly two ships to same location in empire, then have double the firepower! Nicknamed the “Clone Brothers” device migrated to different clusters of PLATO terminals around campus at U of I

PLATO V Terminal Plasma panel and CRT versions Same 512 x 512 display 8080 processor implemented all graphics

PLATO V Terminal From http://plato.filmteknik.com/

Empire Bot 8080 had access to stream of commands sent to terminal from mainframe I wrote assembly code to determine angles to enemies on the screen (using an arctan look-up table) Program displayed exact angle above each enemy, with keyboard shortcuts to fire phasers or torpedos at that angle Also displayed a growing ellipse around ship to indicate distance of hyperjump Possibly the first shooter-game bot - 1979? (“shoot’ em up” or “arcade shooter” genre)

Avatar

Avatar Basics Players join different guilds, e.g., fighter, magician, cleric, and gain different capabilities Players form groups and enter the dungeon together to fight monsters and gather treasures At one time possibly most popular multi-player on-line game in the world Co-authored with David Sides and Andrew Shapira, with help from many others My current character is dead on level one

Avatar

Duplicating Magical Items Strategy: give all of your magical items and gold to a friend, the crash the game before the changes to your character are recorded to disk! Negative: “unfair” and throws the game economy out of whack Positive: we quickly find out about serious bugs

Best Consulting Gig Ever I am hired by Jagex, maker of Runescape to document that third-party bots really work My character is exempted from being banned for using bots My kids complain that I am a cheater

Runescape

How do the bots work? Runescape is a Java applet Bot maker provides Java applet container Bot does not scrape the screen, but instead examines the bytecode Bot determines position on screen of character, objects, etc.

Anti-Bot Measures Code is rearranged in different instances of applet Ultimately, all data stored in one master array, permuted in random order, killing bots! Many players quit when bots were defeated

First-Person Shooter Games played over the Internet

Impact of Latency    Naïve approach: dumb client (e.g., Empire) render player1 at (x1,y1)   render player1 at (x1,y1) Player1 forward Response time for player: round-trip to server + server processing

Updating Position Locally  forward render player1 at (x1,y1)  render player1 at (x1,y1) at (x4,y4)  render player1 at (x1,y1) Player1 forward Other players see old position.

Predicting Where You Are Updates about other players’ locations not continuous Extrapolation (dead reckoning) At last update, player2 is at (x1,y1) facing N with speed S  It should be at (x2,y2) now Not good: in FPS, player movement very non-deterministic Interpolation Impose an “interpolation delay” for rendering Now Int. delay Now Now Update3 (x3,y3) Update2 (x2,y2) Update1 (x1,y1) time

Lag Compensation Interpolation introduces a fixed lag (int. delay) E.g., always see where players were 100 ms ago Need to lead the target when aiming Require players to extrapolate! Server-side lag compensation Server uses the old location to compute hit/miss Allows natural aiming/shooting Possible weird experiences for players being fired upon (e.g., being told that you died some time ago)  tradeoff for better game play

Fair Message Exchange   [Guo et al. NG03] Look at “fairness” in client-server games P1 (4 ms) room  P1 P2 P3  P1 P2 P3 P3 (1 ms) P2 (3 ms)

Fair Message Exchange (2) Different latencies can make the game “unfair” t=0 3 t=8 P2 1 t=11 P3 t=19 4 P1 Server (RTT 5) P1 (RTT 10) P2 (RTT 15) P3 time

Fair Message Exchange (3) Fair-ordering delivery without synchronized clocks (a simple case) t=16 P2,3,18 P3 t=18 P2 P3,1,16 P2,3,18 P2,3,18 t=0 3 t=8 P2 1 t=11 P3 t=19 4 P1 Server (RTT 5) P1 (RTT 10) P2 (RTT 15) P3 Server waits (here 15) before performing action. Ordering based on response time.

Cheating Strategy Introduce artificial delay between client and server Lie about how long it took to respond (or take advantage of server thinking update was received last) Server will think client was first to shoot, even though it receives message last

Texture Hacks! transparent