Cheating at Multiplayer Online Games Bruce Maggs with
Cheating at Multiplayer Online Games Bruce Maggs (with some slides from An-Cheng Huang)
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 “Nova. NET” late 1980’s • Revived at www. cyber 1. 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 • (Nova. NET originally ran on Alpha processor)
PLATO IV Terminal https: //digitalanalogues. wordpress. com/2011/04/22/it-really-is-deja-vu-all-over-again/ • 512 x 512 plasma panel • 1200 baud connection to mainframe • Stream of commands for displaying text and symbols, and for drawing lines
Multiplayer Games • Dungeons and Dragons – 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 byte code • 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 player 1 at (x 1, y 1) Player 1 forward render player 1 at (x 1, y 1) Response time for player: round-trip to server + server processing
Updating Position Locally render player 1 atat(x 1, y 1) at at(x 1, y 1) (x 4, y 4) Player 1 forward forward render player 1 at (x 1, y 1) Other players see old position.
Predicting Where You Are • Updates about other players’ locations not continuous • Extrapolation (dead reckoning) – At last update, player 2 is at (x 1, y 1) facing N with speed S It should be at (x 2, y 2) now – Not good: in FPS, player movement very non-deterministic • Interpolation – Impose an “interpolation delay” for rendering Now Int. delay Now Update 3 (x 3, y 3) Update 2 (x 2, y 2) time Update 1 (x 1, y 1)
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. NG 03] • Look at “fairness” in client-server games P 1 (4 ms) room P 3 P 2 (3 ms) P 3 (1 ms) P 1 P 2
Fair Message Exchange (2) • Different latencies can make the game “unfair” Server t=0 t=8 t=11 t=19 P 2 (RTT 5) P 1 3 P 3 (RTT 10) (RTT 15) P 2 P 3 time 1 4 P 1
Fair Message Exchange (3) • Fair-ordering delivery without synchronized clocks (a simple case) P 3 P 2, 3, 18 P 3, 1, 16 P 2, 3, 18 Server t=0 t=8 t=11 t=16 t=18 P 2 (RTT 5) P 1 3 P 3 (RTT 10) P 2 (RTT 15) P 3 P 1 1 4 Server waits (here 15) before performing action. Ordering based on response time. t=19
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
- Slides: 32