Themes

History of Technology in Games ! Technology’s impact on game design The Beginnings ! Hardware vs. Software (cyclic) CMPUT 250 ! Specialization vs. Generalization (cyclic) Fall 2007 ! State vs. Dynamics (cyclic) Tuesday, October 2 ! One Person vs. Teams (progression)

CMPUT 250 - Fall 2007 Lecture #8: History 1

The Early Days Hardware vs. Software

! The very earliest video games (pre-1975) ! Early switch to microprocessors were custom built machines ! General-purpose hardware that runs software ! Designed/built by engineers (like a TV) ! No need to engineer every game from scratch Tennis for Two (Brookhaven Labs,1958)

Gunfight (, 1975)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 (, 1972) Lecture #8: History 1 Software-Based Games Development of Early Games

! Once microprocessors were used for games, ! Programs written by one individual programmers took control ! Graphics, sound, controls, rules, AI… ! The advent of personal computers (~1976) …all by one person opened up the field to “amateurs”

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Development of Early Games An Early Graphics Innovation

! Games were simple Breakout (Atari, 1976) ! The machines were simple ! Very limited storage and speed ! No “pictures” or recorded music ! Focus on moving small things around on the screen ! Only so much one could do ! More people would be a waste of effort Boot Hill (Midway, 1977)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Game Technology State vs. Dynamics

! Fundamental distinction in computing Input Processing Output ! State: All information that describes the game at a given moment ! Dynamics: The way one state turns into another

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

State Dynamics

! Game entities: positions (and velocities) ! Agents moving due to player controls ! Map: walls, platforms, powerups ! Agents moving due to artificial intelligence ! Resources: health, magic points, money, fuel ! Agents moving due to “physics” ! Points: score, tokens collected, goals achieved ! Agents not moving due to “collisions” ! Inventories: weapons, magic items, gadgets, food ! Updating view of the world ! Switches: doors locked or opened, levers pulled ! Health changes from damage/healing ! Personalization: character names, stats ! Special powers/actions executed ! Much, much more… ! Everything that changes from one state to another

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Memory and Processors Processor Speed

! Two main parts of a computer: ! Processors are rated by how quickly they can perform calculations on things in memory ! Memory stores state ! A program is a set of instructions that tells the processor ! Processors change memory (dynamics) what to do with what’s in memory ! The main processor in a computer is called ! Programmers write these instructions the central processing unit (CPU). ! Late 70’s: 1.19Mhz (Atari 2600) ! “1+ million instructions per second” ! Today: 3.2Ghz (Xbox 360) CPU Memory ! “3+ billion instructions per second”

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Memory Size Storage Types

! Memories have a size ! Storage can be fast or slow ! In the 70’s, measured in kB (kilobytes) ! Video memory for showing graphics and doing ! In the late 80’s and 90’s, measured in MB (megabytes) calculations is fast (it can be accessed quickly) (1 MB = 1000 kB) ! Hard drives and DVDs are much slower but ! Late 90’s to present day, measure in GB (gigabytes) hold much more (1 GB = 1000 MB) ! Storage can be read-only or read-write ! Early games had as low as 4 kB ! Read-only memory (like a game’s DVD) ! Games today will cheerfully use several GB cannot be changed ! A factor of one million (1 DVD holds over 4 GB) ! Read/write memory can be changed

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Storage Types Storage for Games

! More Distinctions ! RAM chips: volatile, read-write ! Volatile: erased when power turned off ! Microchips for running game ! Non-volatile: retains information unpowered ! Part of game machine ! Moving parts: can reduce reliability ! ROM chips: non-volatile, read-only ! Expensive per amount of memory ! Microchips: store game programming

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Storage for Games Storage for Games

! Cartridges ! Cassette (magnetic tape): non-volatile, read-write ! ROM chips in a plastic case ! Moving parts, not very durable ! Durable, portable, and purchasable ! Early personal computers ! Cartridges with save memory ! Sequential access (must rewind/fast forward to reach ! ROM chips + non-volatile, read/write memory chips different information) ! Allows storage of saved games/high scores ! Floppy disk: non-volatile, read-write ! Memory cards ! Moving parts, not very durable ! Cartridges with non-volatile, read/write memory chips ! Early personal computers ! Used to save games when cartridges went out of style ! “Random” access (can quickly access any piece of information)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Storage for Games Storage for Games

! Hard disk: non-volatile, read-write ! Magnetic stripe cards: non-volatile, read-write ! Moving parts, expensive ! Arcade for saving stats/games (Initial D, F-Zero AX, Tekken 5) ! Later personal computers and XBox ! Very limited storage ! Much larger storage and faster access than floppy ! Very cheap ! Laser disc: non-volatile, read-only ! CD-ROM: non-volatile, read-only ! Moving parts, tons of storage ! Moving parts, lots of storage ! Able to store full screen video ! Cheap to mass produce ! Expensive (videophile technology) ! Arcade (Killer Instinct) and later personal computers ! Arcade (Dragon’s Lair, Mach 3, Space Ace) ! Consoles (3DO, Saturn, Playstation)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Storage for Games Game Technology

! DVD-ROM: non-volatile, read-only ! Moving parts, tons of storage Input Processing Output ! Cheap to mass produce ! Personal computers ! Consoles (XBox, Playstation2, Gamecube) ! Coming up: DVD-HD and BluRay (PS3) ! Even bigger DVD

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Cathode Ray Tubes (CRT) Diagram of CRT

! Braun (1897): CRT oscilloscope ! Zworykin (1929): kinescope (early TV) ! Du Mont (1931): first commercial TV tube

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Diagram courtesy of Wikipedia Lecture #8: History 1 Lecture #8: History 1

CRT in Action CRT in Action

Video courtesy of the University of Illinois, Dept. of Chemistry

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Diagram courtesy of Williamson Labs Games with Vector Graphics Vector Graphics (gone after 1985) ! Use CRT’s beam like a pen ! Asteroids (Atari, 1979) ! Turn beam on and off to draw lines ! Lunar Lander (Atari, 1979) ! Use magnets to guide it ! Battlezone (Atari, 1980) ! How many lines you can draw depends on ! Red Baron (Atari, 1980) ! how fast you can move the beam around ! Tempest (Atari, 1980) ! how long the image is on the fluorescent screen ! Space Fury (, 1981) ! Draw all lines for one frame… repeat ! Star Wars (Atari, 1983)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Cool Things About Vector Issues with Vector Graphics Graphics ! Time to draw depends on the complexity of ! Wireframe (3D!) the frame ! Smooth lines (even diagonals) ! Beam moves in arbitrary pattern ! It’s all green and glowy and stuff… ! Different patterns possible for same picture ! What’s the best (fastest) pattern? ! Programming directly controls the beam

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Raster Graphics Raster (aka Bitmap) Images

! Basis of TV and almost all graphics today ! Treat screen like a “grid” ! Move beam in a fixed pattern lighting up the screen in little dots ! These dots are called pixels 0 0 0 0 ! Change beam intensity to make pixels 0 1 1 0 brighter or darker 0 1 1 0

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 0 1 1 0 Lecture #8: History 1 Lecture #8: History 1

Rendering the Screen CRT Screen Refresh 0 0 0 0 Video Hardware 0 0 0 0 0 1 1 0 Screen Image 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 Image Buffer 0 1 1 0

Game Software

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Grayscale Colour Pixels

Additive Colour 0 0 0 0 0 100100 0 0 50 50 0 0 10 10 0

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Diagram of Colour CRT RGB Images

0 0 0 0 0 0 0 0 0 0 0 0 0 100100 0 0 100100 0 0 100100 0 0 50 50 0 0 50 50 0 0 50 50 0 0 10 10 0 0 10 10 0 0 10 10 0

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 RGB Images How Many Pixels? ! If we make pixels smaller, we can fit more! 0 0 0 0 0 0 0 0 0 0 0 0 ! Fineness of grid called resolution (width x height) 0 100 0 0 0 100100 0 0 100100 0 ! Typical television resolution 0 50 0 0 0 50 50 0 0 50 50 0 ! grid of 648 x 486 (~300,000 pixels) 0 10 0 0 0 10 10 0 0 10 10 0 ! Computer screens, HDTV ! 1024 x 768 (~780,000 pixels) ! 1280 x 1024 (~1.3 million pixels) ! 1600 x 1200 (~1.9 million pixels) ! Old games ! 224 x 240 (53,760 pixels)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

How Many Colours? Colour Depth

! Suppose we’re using grayscale. ! The number of values we have for colour is ! If we have 10 different values for often called colour depth and is usually brightness, then we get black, white, and 8 measured in bits (k bits = 2k values) shades of gray. ! 4 bits = 16 colours ! If we have 10 different values for each of ! 8 bits = 256 colours red, green, and blue, then we have ! 10 x 10 x 10 colours (1000) ! 24 bits = 16m colours ! Only want certain colours… colour map

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Frame Rate Raster Side Effect: Aliasing

! How long does it take to “draw” the next frame? ! If it takes a tenth of a second… ! We can draw 10 frames per second (fps) ! Common framerates ! Minimum for “smooth” motion ~ 15 fps ! Film ~ 24 fps ! TV ~ 30 fps a.k.a “the jaggies” ! RTS ~ 8 fps ! platformers ~ 30 fps ! first person shooters ~ 60 fps CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Early Raster Games Vector vs. Raster

! Tank (Atari/Kee, 1974) ! Pacman (/Midway), 1980) ! Vector ! Raster ! Gunfight (Midway, 1975) ! Centipede (Atari, 1980) ! Breakout (Atari, 1976) ! Defender (Williams, 1980) ! Clean lines ! Aliasing ! Night Driver (Taito, 1976) ! Missile Command (Atari, 1980) ! Outlines only ! Filled areas ! Boot Hill (Midway, 1977) ! Donkey Kong (Nintendo, 1981) ! Space Invaders (Taito, 1978) ! Frogger (Konami, 1981) ! Refresh depends ! Refreshes at a ! (Atari, 1978) ! Galaga (Namco, 1981) on frame fixed rate ! Galaxians (Midway, 1979) ! Venture (Exidy, 1981) ! Direct control ! Image buffer ! Special monitors ! Home TV’s

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Vectrex Game Technology

Input Processing Output

Vector did make it to the home! CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Interfaces Next Gen Arcades

! Buttons ! Joystick ! Trackball ! Paddle/Rotary ! Yoke ! Steering Wheel ! Light Gun

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 … Versus Home Consoles Genres

! Categorization of games ! Genres help us talk about games, player expectations, and design ! There is no “correct” genre breakdown

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Pre-1983 Games ! Pong (Atari, 1972) ! Berzerk (Stern, 1980) ! Night Driver (Atari, 1976) ! Centipede (Atari, 1980) ! Tank 8 (Atari, 1976) ! Cheeky Mouse (Universal Corp., 1980) Genre: Racing ! Sprint 2 (Atari, 1976) ! Defender (Williams, 1980) ! Tornado Baseball (Midway, 1976) ! Missile Command (Atari, 1980) ! Checkmate (Midway, 1977) (early ! Tempest (Atari, 1980) ! Night Driver (Atari, 1976) “light cycles”) ! Warlords (Atari, 1980) ! Space Invaders (Taito, 1978) ! Donkey Kong (Nintendo, 1981) ! Sprint 2 (Atari, 1976) ! Super Breakout (Atari, 1978) ! Qix (Taito, 1981) ! Atari Football (Atari, 1978) ! Frogger (Konami, 1981) ! Rally X (Namco, 1980) ! Asteroids (Atari, 1979) ! Galaga (Namco, 1981) ! Turbo (Sega, 1981) ! Galaxians (Midway, 1979) ! Scramble (Konami, 1981) ! Lunar Lander (Atari, 1979) ! Vanguard (SNK, 1981) ! Pole Position (Namco, 1982) ! Atari Baseball (Atari, 1979) ! Venture (Exidy, 1981) ! Basketball (Atari, 1979) ! Pole Position (Namco, 1982) ! Pacman (Puckman) ! Robotron (Williams, 1982) (Namco/Midway), 1980) ! Zaxxon (Sega, 1982) ! Battlezone (Atari, 1980) ! Mr Do! (Universal/Taito, 1982) ! (Universal, 1980) CMPUT 250 - !Fall Tron2007 (Bally Midway, 1982) CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Genre: Sports Genre: Shooters

! Pong (Atari, 1972) ! 2D Static (screen and player static, a.k.a. gallery) ! Space Invaders (Taito, 1978) ! Tornado Baseball (Midway, 1976) ! Galaxians (Midway, 1979) ! Atari Football (Atari, 1978) ! Centipede (Atari, 1980) ! Galaga (Namco, 1981) ! Atari Baseball (Atari, 1979) ! 2D Field (screen static, free movement of player) ! Basketball (Atari, 1979) ! Gunfight (Midway, 1975) ! Asteroids (Atari, 1979) ! One on One (Electronic Arts, 1983) ! Venture (Exidy, 1981) ! Robotron (Williams, 1982)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Genre: Shooters Genre: Shooters

! Side Scrolling (screen advances horizontally) ! Light Gun ! Defender (Williams, 1980) ! Triple Hunt (Atari, 1977) ! 1st game with action off-screen ! Desert Gun (Midway, 1977) ! Scramble (Konami, 1981) ! Crossbow 2.0 (Exidy, 1983) ! Top-scrolling (screen advances vertically) ! Turkey Shoot (Williams, 1984) ! Xevious (Namco, 1982) ! Duck Hunt (Nintendo, 1984) ! 1942 (Capcom, 1984) ! 3-D (first person) ! 2.5D (isometric view) ! Battlezone (Atari, 1980) ! Zaxxon (Sega, 1982)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1 Genre: Maze Genre: Platform

! Heiankyo Alien (Denki Onkyo, 1979) ! 2D Static ! Puckman a.k.a. Pacman (Namco, 1980) ! Donkey Kong (Nintendo, 1981) ! Frogger (Konami, 1981) ! Mario Brothers (Nintendo, 1983) ! Pengo (Sega, 1982) ! 2D Scrolling ! Super Mario Brothers (Nintendo, 1985) ! Dig Dug (Namco, 1982) ! Mr Do! (Universal/Taito, 1982) ! Crystal Castles (Atari, 1983)

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1

Questions? Still To Come…

! More Graphics ! Hardware to the rescue #1: Sprites ! Hardware to the rescue #2: 3D ! More History ! Crash of 1983 ! Atari, Nintendo, Sony, Xbox ! Specialization vs. Generalization

CMPUT 250 - Fall 2007 CMPUT 250 - Fall 2007 Lecture #8: History 1 Lecture #8: History 1