The PLATO Computer System and Cheating at Multiplayer Online Games

Slides:



Advertisements
Similar presentations
Keyboarding I Vocabulary Study
Advertisements

Cheating at Multiplayer Online Games An-Cheng Huang Bruce Maggs.
COSC 120 Computer Programming
Lecture 1: Intro to Computers Yoni Fridman 6/28/01 6/28/01.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
1 DOS with Windows 3.1 and 3.11 Operating Environments n Designed to allow applications to have a graphical interface DOS runs in the background as the.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 1 Introduction.
Systems Software Operating Systems.
Copyright 2003 Scott/Jones Publishing Brief Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
The Operating System. Operating Systems (F) What you need to know about –operating system as a program; –directory/folder.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 1 Introduction to Computers and Programming.
Operating Systems Basic PC Maintenance, Upgrade and Repair Mods 1 & 2.
CSC 125 Introduction to C++ Programming Chapter 1 Introduction to Computers and Programming.
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.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Topics Introduction Hardware and Software How Computers Store Data
There are different types of translator. An Interpreter Interpreters translate one instruction at a time from a high level language into machine code every.
Hardware Lesson 1. Hardware is all of the electronic equipment that a computer includes. If you can touch it, pick it up, or move it around, it is hardware.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Chapter 1: Introduction to Computers and Programming.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1: Introduction to Computers and Programming.
Computer and Information Science Computer Software Computer Software Chapter 1.2.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
Eng.Abed Al Ghani H. Abu Jabal Introduction to computers.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
Cheating at Multiplayer Online Games Bruce Maggs (with some slides from An-Cheng Huang)
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
Application Software System Software.
Brief Version of Starting Out with C++ Chapter 1 Introduction to Computers and Programming.
Technology vocab. By:Laytosha Johnson. Data Data is individual facts,statistics, or items of information….evidence Data is individual facts,statistics,
Copyright © 2014, 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Eighth Edition by Tony Gaddis,
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Copyright © 2003 by Prentice Hall 1 Computers: Tools for an Information Age Chapter 3 Operating Systems: Software in the Background BSM025 Computers.
Chapter 1: Introduction to Computers and Programming
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
Cheating at Multiplayer Online Games
Branching Error (a.k.a. the VM Program Instruction Break Error)
Nature & Types of Software
Chapter Objectives In this chapter, you will learn:
Processes and threads.
Topics Introduction Hardware and Software How Computers Store Data
Key Ideas from day 1 slides
Types of Computers & Computer Hardware
Introduction
Beginning C++ Programming
Java programming lecture one
Cheating at Multiplayer Online Games
Computers Are Your Future
Introduction to Computing Lecture # 1
Chapter 1: Introduction to Computers and Programming
Language Basics.
Topics Introduction Hardware and Software How Computers Store Data
Information Technology Ms. Abeer Helwa
What is Concurrent Programming?
National Diploma in Computer Studies
Chapter 2: Operating-System Structures
What is Concurrent Programming?
Introduction to Operating Systems
There are different types of translator.
Welcome to the computer!
Little Man Computer There’s a little man in the mailroom that follows each instruction to the letter but he can only follow one instruction at a time.
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Windows.
Chapter 2: Operating-System Structures
Programming Logic and Design Eighth Edition
Chapter 1: Introduction to Computers and Programming
Chapter 1: Introduction to Computers and Programming
Presentation transcript:

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

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

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 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)

Login Screen

NovaNET

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

Operator’s Console http://pages.sbcglobal.net/couperusj/CDC6600.html

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)

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

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

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

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)

Early Tutor 150 variables Could assign names to these variables n1, …, n150 (integers) or v1, …, v150 (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)

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

Users and Groups

On-line Community

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

Author Mode

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

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

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

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 a lesson Persistent, backed by disk Could load up to 1500 words into core storage (memory) at any time, nc1, …, nc1500 or vc1, …, vc1500 Provided communication between multiple users of a program, e.g., between players in a game

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

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

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