Computer Games (Graduate level), Fall 2007
719 Broadway, Rm 1221
Mondays at 7:10pm-9pm

Office hours: Tuesday, 4-5pm

Text: Class notes (so make sure you come to class!), will be posted on-line after each lecture.


Denis Kovacs - kovacs AT cs DOT nyu DOT edu

Student homepages:

are here

The study of computer games offers a unique opportunity to bring together many complementary computer science sub-fields and techniques, and to observe how those sub-fields and techniques work together. Among the very large number of computer science topics involved in the creation of computer games are: accelarated graphical rendering of simulated natural phenomena, concurrent programming, digital audio synthesis, distributed systems, forward and inverse dynamics, multi-level object representations, network token passing and synchronization, real time animation, real time modeling, scientific visualization, scripting interfaces, software multiagent systems, and user interfaces. Unfortunately a single course in computer games can not hope to touch on all these areas. After all, we only have one semester. :-)

While this is a computer science course, you will also be exposed to some complementary elements essential to the experience of designing and implementing games. For this reason, certain basic elements of the visual, storytelling, and sound design elements of games are woven into the fabric of the course.

Course structure:

Chronologically the course will be divided into three successive modules:

  1. In the first module, which which will consitute the first several weeks of the class, you will be given an overview of the evolution of computer games. This evolution will be linked the parallel developments of related fields in computer science, such as computer graphics, scripting interfaces, user interfaces, and so forth. We will cover the different technical requirements for different genres of computer game, including casual games, first person 3D games, asynchronous multiplayer games, and massively multiplayer on-line game worlds.

    We will also be trying out games in class, interleaving our history discussions with participatory trying out of games, and students will be invited to lead discussion on games in which they are expert. :-)

  2. In the second module, which will consitute the next several weeks of the class, you will each build rapid software prototypes of simple 2D games, one per week. A web-based 2D graphics software substrate will be provided so that these games can run on the Web. In this part of the course you will gain hands-on experience of the principles of game design.

  3. In roughly the last half of the class, you will use a 3D game engine, working in teams to create a series of group projects. Each project will consist of three parts: design, implementation, and evaluation. Within each team, each student will take on, in turn, a different complementary role in the design, production and evaluation for each of the successive projects. In this way, everybody will get hands-on experience in each of key areas of game creation.

There will be no formal written final exam, as this will be a hands-on class. You will be graded on your projects work.

At the end of each semester, in lieu of a formal final exam, there will be a group show, to which the public will be invited, in which you will have an opportunity to demonstrate your best work.


September 10, 2007:

The first class we went over the history and philosophy of computer games, and of games in general.

Our grader Denis Kovacs has found this interesting video about the history of computer games:

Link to video

September 17, 2007:

In this class students reviewed their own choices for best game. Then we worked together to describe the different overlapping game genres, including sports games, first person shooters, puzzle games, massively multiplayer on-line role playing games (MMORPGs), side scrollers, arcade games, simulation games, construction games, physically immersive games, music games, cooperative games.

Your asignment for next class is to look at various games, especially games we have discussed in class, and try to describe them in terms of such categories. It's ok for a game to be in more than one category - in general a game will indeed be located in more than one category (eg: first person shooter sports construction game - not that I can think of any of those).

You should also try to articulate what is the game mechanic for particular games - eg: eating for PacMan, shooting for Doom, picking up things for Katamari Damasi. Also, try to identify the nature of the "Magic Circle" that surrounds any game. Ie: what is the particular real-world, possibly deadly serious, conflict for which playing this game provides a safe metaphor?

Next week you will begin implementing games for yourselves. The things you build will be influenced by your understanding of these categories and of how they work.

September 24, 2007:

In class, we developed the beginnings of three computer games The web page for hat, together with links to the source code, is here:

Examples of developing simple games

Your assignment, as we discussed in class, is to implement your own simple games, using this same simple graphics substrate. You can get the latest version of the java development kit on-line. It's the first download (Java SE) at java.sun.com.

Some other interesting links:

Prof. Gauthier's class
Games that teach math

Oct 1, 2007:

We went over your first game implementations, and collectively we critiqued them, working out the strengths and weaknesses of each, the game mechanics used, and suggestions for how they could work better, be more appropriate in their initial level, how the interface could be more discoverable, and how you could maintain a bigher level of fun engagement, without making things either too easy or too difficult for the player at any point.

Your homework for Monday Oct 15 is in two parts:

  1. Iterate on the game that you've already implemented, applying the principles we learned in class to make an improved version of it. If possible, put the improved version of this game under a separate link, so that the before/after can both be played on-line and compared with each other.

  2. Using the principles that you're learning, create a new game, using the same basic graphics and interaction tools as before. But this time the game has an additional design constraint: The player must learn something about math while playing it.

    You can choose from a wide variety of math topics - ideally you should choose from a topic that you yourself find to be fun and interesting. See if you can transmit to a player of your game that sense of fun and interest that you yourself feel.

Oct 15, 2007:

XNA information

Oct 22, 2007: The five student groups for the next project

On October 30 you should spend the class time working to refine your group project. As soon as you can (if you haven't already done so), please have your designated group representative send me a link to a URL where I can see the work-in-progress of your game, and so I can give feedback on your progress.

Remember - you should be focusing this week on game design and visuals, and any implementation you do during this stage should only be for working out and refining ideas of game-play.

Nov 5, 2007:

XNA Install Notes
SoftImage/XSI ModTool (for making 3D models)
Nov 12, 2007:
Students present their first individual experiments in the use of XNA as a platform.
Nov 19, 2007:
Students present their first week of working in groups of three to develop XNA-based games.
Nov 26, 2007:
Students present their second week of working in groups of three to develop XNA-based games.

We also have a special guest lecture by Christopher Romero, the CTO of Worldwide Biggies. Mr. Romero is a noted expert in the development of on-line games.

Here is a link to the wiimoterumbleworker from John Lee.

Dec 11, 2007 - final project showcase:
The Fall 2007 showcase is scheduled for December 11, 5-9pm and will take place on 13th floor of WWH.

There will be one "station" per student project. Our game class will have five stations altogether - one per game project. Each station will provide an easel, an outlet, and table space for a laptop. Your group should bring a poster and a laptop containing your project software, and any game controllers. If you need network access, they recommend you use the NYU wireless network, and that you test your wireless connectivity before the day of the show.

Each project will get a time slot at a particular station which will be accounted for by dividing the event into two time slots: 5-7pm and 7-9pm.

On your 24" wide by 36" high poster, in addition to a cool sexy picture that will get everyone excited and wanting to play your game, you should be sure to put the following info:

There will be light refreshments provided during the showcase.

You are responsible for your own poster. Oak tag (poster cardboard) 24" X 36" is available at the bookstore for 75 cents per sheet.

This will be a weekly reading seminar (students take turns presenting key research papers in the field) with an optional research project to build something, either hardware or software or both.

The seminar is not for credit, but if you would like to build something, then you have the option of taking this as an independent study class.

If you are interested, the most important thing to do now is to send me an email with your schedule constraints. I will schedule the day/time of the seminar based on the emails I receive.