In Spring 2007, I taught a section of Special Topics in Game Design and Analysis devoted to the Atari VCS (2600). This was a graduate course open to students in Georgia Tech’s Digital Media graduate program in the School of Literature Communication and Culture, as well as students in the College of Computing.
The course included on both criticism and construction, with a focus on the approach Nick Montfort and I call Platform Studies.
The syllabus is reproduced below.
LCC 8732 – Special Topics in Game Design and Analysis
CS 8803 – Special Topics
The Atari Video Computer System (2600)
Prof. Ian Bogost
Skiles 024, Office Hours by appt
ibogost at gatech dot edu
(404) 894-1160
In this intensive critical/practical seminar, we will explore every aspect of the Atari VCS (2600), the most important early home videogame console. Despite its historical, cultural, and economic impact on the videogame medium and industry (both good and bad), the VCS has received very little critical attention in game studies. In this course, we will perform a kind of critical-technical practice Nick Montfort and I have called “platform studies.” This approach recommends an investigation of the cultural artifacts of a computational system in concert with an analysis of its technical properties, its hardware and software platform(s). In the case of the VCS, students will learn about the properties of the computer, including the 6507 processor, TIA and RIOT chips, and specific RAM/ROM specifications. Students will play and critique a selection of VCS games from the perspective of the hardware and software constraints under which they were created. Students will also program original programs and games on the original Atari VCS hardware, first using BASIC, then 6502 Assembly. Previous programming experience is required, but no previous knowledge of Assembly is necessary.
REQUIREMENTS
The purpose of this course is to introduce the student to the intimate details of the Atari VCS, both for the purpose of creating new games or other digital works on that system, and for the purpose of critiqueing Atari games.
Students will be required to program the Atari VCS, to play Atari games, and to read both critical and technical readings about the machine and its games/software.
The course will be run as a combination seminar/studio. That means that we will spend the majority of our time talking about readings, hardware, and code; or programming. Students with laptops are encouraged to bring them to class, although we will also meet in the LCC Experimental Game Lab (EGL) when we need machines.
Deliverables
– one Atari game or program, written in the BatariBasic environment
– one Atari game or program, written in 6502 Assembly
– one critical analysis of an Atari game, from the perspective of the VCS platform
– weekly short assignments and exercises, to be shared and discussed in class
READINGS & MATERIALS
Students will need to have access to an Atari VCS and/or a VCS emulator. Playing games in the emulator alone is not always adequate to get a sense of how the game behaves or displays on screen; as such, students are encouraged to use the VCS in the EGL liberally.
Most materials for the course will be provided online or in handout. The book “Zap!” is available at the Engineer’s Bookstore
SCHEDULE
The following schedule is tentative and is subject to change.
WEEK 1, January 10
Introduction
Platform Studies
Atari hardware and emulators
WEEK 2, January 17
The Atari VCS
Read: Zap!
Combat in Context, Nick Montfort
http://gamestudies.org/0601/articles/montfort
Play: Combat
WEEK 3, January 24
Batari Basic
Read: Batari Basic language reference: http://www.alienbill.com/2600/basic/
Play: A selection of Atari games
games are available in the EGL, or via ROMS on atariage.com
WEEK 4, January 31
Batari Basic, cont’d
Sound, Register addressing
WEEK 5, February 7
6502 Assembly for the VCS
Dev Environment, Dissassemblies, Hacking ROMS
Read: Assembly in one step: http://www.geocities.com/oneelkruns/asm1step.html
6502 Instructions: http://www.obelisk.demon.co.uk/6502/instructions.html
Combat disassembly: http://www.qotile.net/minidig/disassembly/dicombat.asm
WEEK 6, February 14
6502 Assembly for the VCS
Initialization, Memory management, the Kernel
Read: Cycle counting: http://alienbill.com/2600/cookbook/cycles/nickb.txt
Smarter variables: http://alienbill.com/2600/cookbook/vars.html
WEEK 7, February 12
— NO CLASS MEETING
WEEK 8, February 28
6502 Assembly for the VCS
The TIA, The Screen, Color
Read: Stella Programmers Guide: http://members.cox.net/rcolbert/stella.pdf
TIA Color Chart: http://www.qotile.net/minidig/docs/tia_color.html
Warren Robinett, Adventure as a Video Game: Adventure for Atari 2600, from the Game Design Reader (690-724; handout)
Warren Robinett, presentation on Adventure (http://warrenrobinett.com/adventure/adventure_lecture.ppt)
Play: Adventure
WEEK 9, March 7
— NO CLASS MEETING
WEEK 10, March 14
Sprites, Collisions, User input
Play: Pitfall, Pac-Man
WEEK 11, March 21
— SPRING BREAK
WEEK 12, March 28
Playfield graphics
Read: http://www.atariage.com/forums/index.php?act=Attach&type=post&id=11614
WEEK 13, April 4
Asymetrical Playfields, Scrolling playfields, Splashscreens, etc.
Read: http://www.alienbill.com/2600/cookbook/playfield.html
Play: TBA
WEEK 14, April 11
Multiple sprites, 6-digit Score, etc.
Play: Space Invaders, Freeway
WEEK 15, April 18
Sound
Read: Atari music guide: http://qotile.net/files/2600_music_guide.txt
Paul Slocum’s sequencer: http://qotile.net/sequencer.html
Paul Slocum’s Synthcart: http://qotile.net/synth.html
Play: Star-Wars: The Empire Strikes Back
WEEK 16, April 25
Cleanup, share final work
EXAM WEEK, May 2
— DEMO DAY