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.

Syllabus

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