Software and Documentation

Visual C# and XNA Game Studio
Follow the instructions on this page (Join the XNA Creators Club and Download XNA Game Studio). Note: You don't need to joing the creators club to be able to develop games for Windows. You only need the subscription if you want to upload games to the Xbox.

For documentation, go to the Microsoft Developers Network (MSDN) web site. Especially, the XNA Framework Class Library.

Our safari online library has one book on XNA ("Microsoft XBA Unleashed"). I don't really like it that much, though ...

Our safari online library has a number of books on C#: C# in a Nutshell, Programming C#, Learning C#, Essential C#, Effective C#, C# for Programmers. (I have a paper copy of C# in a Nutshell and like it. I don't really know the others.)

A C# tutorial online

The GIMP website has links to downloads and documentation. (You can of course use any other image manipulation program that you have access to.)

Download TortoiseSVN here if you want to program on your own computer. Documentation.

TortoiseSVN is a subversion client for Windows. Use google or check out the info on the subversion website if you are looking for a client for another platform.


Web sites

International Computer Game Association
International Game Developers Association (IGDA)
IGDA Albany Chapter

Game design competitions

If you are interested in participating in either of those or some other competition and feel that having faculty mentor would be useful to you, let me know. I would be happy to serve as your mentor.

Material for classes and assignments

[Sept 9] What are games?

[Sept 11] Good games and bad games

  • Read Chapter 11 (Fun and Accessibility) from Game Design Workshop by Tracy Fullerton.
  • Skim Chapters 3, 4, 5 (Formal Elements, Dramatic Elements, System Dynamics) from Game Design Workshop by Tracy Fullerton.

[Sept 16] 1st Programming Project: Getting to know the XNA Framework

[Sept 16] More on game design

[Sept 23] 2nd Programming Project: Sprite Library

Instructions (pdf)

Images you will need: flower.png, WalkingSquare.png (due to George Clingerman)

Use the following "games" to test your Sprite library. There is one file for each subtask in the instructions. Use the file to replace Game1.cs. You then have to adapt Program.cs in your program and maybe also the namespace used in SpriteTestX.cs.

[Sept 23] Backgrounds

Simple horizontally scrolling tiled background: tutorial by George Clingerman

Pixel based collision detection: tutorial by George Clingerman

How to draw text:
msdn tutorial
another tutorial (easier)

How to play sounds: msdn tutorial

[Sept 25] Physics 1: Motion and acceleration, collision detection

Play: Crayon Physics, Tower of Goo, Spin the Black Circle

Read: Chris Hecker's first article on physics

[Sept 30] Physics 2: Collision response

The 2nd programming project is due today.

Read: Chris Hecker's second and third article on physics

[Oct 2] AI 1: steering behaviors and path planning

Let me know today which games you have picked for the "history of computer games" presentations.

Craig Reynold's site on steering behaviors

Millington, Ian (2006). Artificial Intelligence for Games. Morgan Kaufmann.

Nilsson, Nils (1998). Artificial Intelligence: A New Synthesis. Morgan Kaufmann.

[Oct 7] Presentations: History of Computer Games

Instructions (pdf)

[Oct 8] AI 2: decision making

Millington, Ian (2006). Artificial Intelligence for Games. Morgan Kaufmann.

Nilsson, Nils (1998). Artificial Intelligence: A New Synthesis. Morgan Kaufmann.

[Oct 14] 3rd Programming Project: Physics

Instructions (pdf)

[Oct 14] AI 2: learning

Russell, Stuart and Norvig, Peter (2003). Artificial Intelligence: A Modern Approach. Prentice Hall.

Nilsson, Nils (1998). Artificial Intelligence: A New Synthesis. Morgan Kaufmann.

[Oct 16] AI for board games

[Oct 21] Game Design Presentations

Instructions (pdf)

Hand in: (1) A paper describing your game and arguing why it is innovative and why people will want to play it. (each team member individually) (2) The slides from your presentation. (as a group)

[Oct 23] Input Devices

[Oct 28] 4th Programming Project: AI

Instructions (pdf)

Look at Craig Reynold's site on steering behaviors and on the material on steering behaviors and state machines on blackboard.

When you get to implementing your finite state machine, I don't expect you to write a general infrastructure for dealing with finite state machines. You can just hard code them using conditional statements.

If you decide to go for the jetpac option, here is a base game you can start from.

[Oct 30] More networking; Setting up inptu devices

[Nov 4] Presentations: Society and computer games

Instructions (pdf)

[Nov 6] 3D Games

[Nov 11] 5th Programming Project: Input Devices

Instructions (pdf)

Design doc and initial prototype due Nov 4.

[Nov 11] 3D Games

© 2008 Kristina Striegnitz