The PLATO Computer System and Cheating at Multiplayer

  • Slides: 45
Download presentation
The PLATO Computer System and Cheating at Multiplayer Online Games Bruce Maggs

The PLATO Computer System and Cheating at Multiplayer Online Games Bruce Maggs

A small confession… 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

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

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

Foreign Languages Building, University of Illinois http: //www. smilepolitely. com/culture/a_computer_revolution_brian_dear_tells_the_story_of_plato/

Foreign Languages Building, University of Illinois http: //www. smilepolitely. com/culture/a_computer_revolution_brian_dear_tells_the_story_of_plato/

Hardware • Control Data mainframes designed by Seymour Cray • Cyber 70, 176, CDC

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)

Login Screen 8

Login Screen 8

Nova. NET 9

Nova. NET 9

CDC 6600 • $6, 891, 300 • 131 K words • four arms: •

CDC 6600 • $6, 891, 300 • 131 K words • four arms: • CPU • memory • peripheral processors • “small” disks (previously 1 m) http: //pages. sbcglobal. net/couperusj/CDC 6600. html 10

Operator’s Console http: //pages. sbcglobal. net/couperusj/CDC 6600. html 11

Operator’s Console http: //pages. sbcglobal. net/couperusj/CDC 6600. html 11

PLATO IV terminal • 512 x 512 pixel plasma (neon gas) panel • screen

PLATO IV terminal • 512 x 512 pixel plasma (neon gas) panel • screen is a write-only memory • Bitzer, Slottow, Willson, won emmy for • • invention of plasma panel (2002) 1200 -baud connection built-in touch panel built-in rearview slide projector external audio device (large read-write floppy disks) 12

PLATO IV Terminal From http: //www. chem. uiuc. edu/clcwebsite/history. html 13

PLATO IV Terminal From http: //www. chem. uiuc. edu/clcwebsite/history. html 13

Terminal Commands • • Load customizable character set Display text at coordinate Draw a

Terminal Commands • • Load customizable character set Display text at coordinate Draw a line between a and b Implemented in hardware 14

File System • Global namespace (no directories!) • 8 -character file names (no extensions)

File System • Global namespace (no directories!) • 8 -character file names (no extensions) • File types • • • Tutor programs Datasets Namesets Notesfiles Groups 15

TUTOR Programming Language • All “lessons” written in TUTOR • Interpreted • Program size

TUTOR Programming Language • All “lessons” written in TUTOR • Interpreted • Program size limited by memory • • constraints Apparently not designed by computer scientists (FORTRAN and assembly code available to system programmers) 16

Early Tutor • 150 variables • n 1, …, n 150 (integers) or •

Early Tutor • 150 variables • n 1, …, n 150 (integers) or • v 1, …, v 150 (floating point) • • Could assign names to these variables “jump” between “units” (like C functions) “do loop” (like C for loop) “conditional branch” (a. k. a. goto) 17

Later TUTOR Improvements • • • “do” (call a function) - stack depth 10

Later TUTOR Improvements • • • “do” (call a function) - stack depth 10 return values recursion local variables if, else while, repeat until 19

Users and Groups 21

Users and Groups 21

On-line Community 23

On-line Community 23

Privileges • Student Mode • Can only run programs • Author mode • Can

Privileges • Student Mode • Can only run programs • Author mode • Can run programs, edit files • Super users • Members of groups s, p, o, e 24

Author Mode 26

Author Mode 26

Foreground vs. Background Modes • Foreground mode limited to 10 TIPS • • (Thousand

Foreground vs. Background Modes • Foreground mode limited to 10 TIPS • • (Thousand Instructions Per Second) Background mode: no guarantees, but also no limits on CPU share; don’t try during the day Disk access rate above 10 DAPM (Disk Accesses Per Minute) frowned upon 27

Concurrency Primitives • No mutexes, semaphores, etc. • Undocumented feature: time slice will not

Concurrency Primitives • No mutexes, semaphores, etc. • Undocumented feature: time slice will not be interrupted in straight-line (i. e. , no backwards branches) calc code loop. if mutex = 0. . mutex 1 outloop. endif endloop 28

The branch q purge • branch q branched to end of straight • •

The branch q purge • branch q branched to end of straight • • • line code (or something like that) System was taken down All TUTOR files were scanned branch q replaced by branch to explicit label 29

 • Pressing the STOP key aborts output stream to the terminal. • I

• 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!

Common Memory • Upto 8000 words shared by all users of • • •

Common Memory • Upto 8000 words shared by all users of • • • a lesson Persistent, backed by disk Could load up to 1500 words into core storage (memory) at any time, nc 1, …, nc 1500 or vc 1, …, vc 1500 Provided communication between multiple users of a program, e. g. , between players in a game 32

Multiplayer Games • Dungeons and Dragons • orthanc, avatar • Space • empire, spasim

Multiplayer Games • Dungeons and Dragons • orthanc, avatar • Space • empire, spasim • Combat • dogfight, panther, airfight 33

Empire 34

Empire 34

Empire Basics • I am shrike , a proud Klingon / Kazari • Becoming

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 36

Empire 36

The Clone Brothers • I built a device that you plugged a keyboard into,

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

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

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

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

 • • • Empire Bot 8080 had access to stream of commands sent

• • • 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 41

Avatar 41

Avatar Basics • Players join different guilds, e. g. , fighter, magician, cleric, and

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 43

Avatar 43

Duplicating Magical Items • Strategy: give all of your magical items and gold to

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

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

Runescape

How do the bots work? • Runescape is a Java applet • Bot maker

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

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

Wallhacks How do these hacks work? Game client has complete model of the world

Wallhacks How do these hacks work? Game client has complete model of the world containing shapes and textures of objects, but asks the 3 D graphics card to render it only from a particular first-person point of view. Changing textures, e. g. , can make them transparent.