Systems of Play
Spring 2007
Tuesdays, 6:30-9:00pm

 Home         1   2  |  3   4  |  5   6  |  7   8  ||  9   10  |  11   12  |  13   14




Syllabus

Each class will investigate the design of game systems and the programming concepts needed to implement them. The course will cover a broad range of game design theory topics. The first few classes will teach basic object-oriented programming concepts and syntax (in ActionScript 2.0), and the remainder of the classes will address a number of language-agnostic game programming topics.

The course is structured around the construction of three quick game system prototypes and one final project, which will be brought to a 'beta' level of completion. Students will develop each prototype over two weeks, and each prototype will focus on different implementing and experimenting with different aspects of game design and programming. The final project will integrate lessons learned from development of the prototypes, and may integrate design and code from the prototypes as well.

There are three major sources for reading assignments for the class. They are abbreviated below as:
(ROP) Rules Of Play;
(EAS) Essential ActionScript 2.0;
(WEB) The Internets.



Class 1 -- Introduction
2007.Jan.16
- systems
- games
- games as systems

reading:
(ROP) Chapter 5 :: Systems
(ROP) Chapter 6 :: Interaction
(EAS) Chapter 2 :: Object-Oriented Actionscript
(EAS) Chapter 3 :: Datatypes; pp. 24-36

assignment:
Diagram the game system of any game of your choosing.



Class 2 -- Systems and Object-Oriented Programming
2007.Jan.23
- game systems revisited
- interactivity and choice
- OOP structure and systems
- AS2 syntax

reading:
(ROP) Chapter 7 :: Defining Games
(ROP) Chapter 23 :: Games as the Play of Experience (core mechanic)
(EAS) Chapter 4 :: Classes
(EAS) Chapter 6 :: Inheritance

assignment:
Build a simple interactive system in AS2, with at least 3 discrete elements.

examples:
SimpleBall
ProxyBall



Class 3 -- Core Mechanic / Classes
2007.Jan.30
- core mechanic
- input / control

reading:
(ROP) game space (pp 392-398)
(WEB) Gamasutra :: Interview with Frank Lantz (big games)
(WEB) Radio OpenSource :: Living in Game Space (Second Life)
(WEB) Amit's Game Programming :: Tile-Based Games

assignment:
PROTOTYPE 01a: Build a simple core mechanic.

examples:
BetterBall
keyboard and mouse input



Class 4 -- Game Space / Inheritance
2007.Feb.06
- game space
- inheritance, polymorphism

reading:
(ROP) Chapter 14 :: Games as Emergent Systems

assignment:
PROTOTYPE 01b: Contextualize last week's core mechanic experiment:
place the core mechanic into a game space and build a simple game around it.

examples:
Ball collection - composition
Ball collection - inheritance
BallManager (polymorphism)



Class 5 -- Object Relationships
2007.Feb.13
- object relationships
- emergence

reading:
(ROP) Chapter 18 :: Games as Cybernetic Systems
(ROP) pp 345-353 (reward and punishment; boredom and anxiety)
(WEB) bitstorm.org's Game of Life

assignment:
PROTOTYPE 01c: Complete the first prototype by developing clear relationships between all elements of the game system.

examples:
Slingers



Class 6 -- Cybernetics / Grids
2007.Feb.20
- feedback loops
- reward and punishment
- tile-based games
- grids

reading:
(WEB) N collision detection tutorials

assignment:
PROTOTYPE 02a: Begin your second prototype.
Experimenting with a grid is not required, but is encouraged.
As before, start by developing a core mechanic.

examples:
Grid
GridObjects
GridAvatar
GridCell



Class 7 -- Collision Detection
2007.Feb.27
- collision detection techniques

reading:
(ROP) Chapter 10 :: The Primary Schemas
(ROP) Chapter 11 :: Defining Rules
(ROP) Chapter 12 :: Rules on Three Levels

assignment:
PROTOTYPE 02b: Add some collision detection to your second prototype.

examples:
collision detection - proximity
collision detection - bounds
collision detection - bounds (Rectangle)
collision resolution





----- Spring Break -- March 12-16 (woohoo!) -----







Class 9 -- Rules
2007.Mar.20
- rules (defined)
- game engines
- math and motion
- physics

assignment:
PROTOTYPE 02c: Finish second prototype.
Consider the constituative (and operational and implicit) rules of your game system, and how they affect gameplay.

reading:
(WEB) The Art and Science of Level Design: III. On Design Techniques (ONLY)
(WEB) Behind the music of Guitar Hero 2
(WEB) Narrative Landscapes: Shaping Player Experience through World Geometry
(WEB) Lemmings! -- play any 10 levels of your choosing.

examples:
VectorBall
FallingBall
BouncyBall
FrictionBall
Sled



Class 10 -- System Design / Events
2007.Mar.27
- level design
- data-driven design
- events
- writing a design document

reading:
(ROP) Chapter 13 :: The Rules of Digital Games
(ROP) Chapter 15 :: Games as Systems of Uncertainty

assignment:
Make two Terraformer levels:
- one that demonstrates the core mechanic (tutorial/first level)
- a challenging (but not impossible!) level

Compose the design document for your final project, and begin building your core mechanic.

examples:
EventDispatcher
CircleTurret
CircleAttack
Terraformer files



Class 11 -- Rules / Change
2007.Apr.03
- rules (applied)
- change over time
- randomness
- present final project design documents
- digital game production processes

reading:
(ROP) Chapter 20 :: Games as Systems of Conflict
(ROP) Chapter 26 :: Games as Narrative Play
(ROP) Chapter 30 :: Games as Cultural Rhetoric (optional)

assignment:
Complete the final project core mechanic, and develop it into a prototype.

examples:
EventManager
Spawning
RandomMotion



Class 12 -- Conflict and Narrative
2007.Apr.10
- conflict
- narrative
- state machines
- programmatic timeline control

assignment:
Develop your final project alpha.

examples:
SimpleStateMachine
CharacterAnimation



Class 13 -- Final Project :: Alpha
2007.Apr.17
- personal meetings: discuss final project alphas

assignment:
Develop your final project beta.



Class 14 -- Final Project Presentation
2007.Apr.24
- present final project betas