Course Announcement

by Mike Gleicher on August 18, 2012

CS679: Computer Games Technologies, Fall 2012

image

This class will be most similar to last year’s (2011) offering (see the old course web). Previous years (2010, 2008, 2007) share some of the same course design, but our new emphasis on the design and software engineering aspects of the class, as well as our use of web-technologies for projects first emerged in 2011.

Some basic things:

Instructor: Mike Gleicher

Class Meetings: 2:30-3:45 Tuesday/Thursday, 1263 Computer Sciences. Note: we will also have some sessions in the computer labs, and we will also have scheduled sessions outside of class times (to be determined). You are are expected to be in class.

Intended Audience: Students who are interested in how computer games work, how the technologies behind computer games (like high performance graphics and rich internet applications) may be applied to other things, and/or want the experience of working on a non-trivial project as a group from design through testing.

Workload: This is a project intensive class. Over the course of the semester, you will build 3 games. Most of it in groups ranging in size from 2-4. On the other hand, this is not purely a project class. There will be reading and other assignments, and you will be expected to demonstrate that you’ve learned the technical materials.
Many students tell me the class was a lot of work. Few complain.

The story…

A “Games class” in computer science can mean a lot of things. In fact, it has meant a lot of different things to me over the years I’ve taught it. This year, my thoughts have evolved a bit. Understanding what I think this class is is important for you to know what to expect, what you will be doing (and why), how you will be evaluated, …

Over the course of the years, the class has evolved into being more of a project-based experience to help students learn about how to design and build cool interactive systems. This means learning how to work on projects in a group, to think about practical issues like efficiency, and understanding design and usability is as much a part of the class as learning some fancy new graphics trick or AI technique.

I see this class as having three interconnected parts:

  1. Technology for Games – The advanced computer science that goes into making games – graphics, AI, … Games have interesting demands on technology, with demands that are different than other applications.
  2. Games as Technology – The “science” (or art) of what games are and how to make good ones. Game design is particularly interesting because understanding how to make fun games gets at general issues of how to make “stuff” that is enjoyable to use, and to bring elements of game design to the creation of things other than games.
  3. Building Games – How to actually create the software that is a game. While a lot of this is “just” software engineering, the desire to make a game is a good excuse to learn how to work with others to make a non-trivial program.

In this class, you will learn about all 3. Each of these 3 topics is a key component of the class. This is a break in philosophy from previous offerings of this class which were focused on #1, and did a little bit of #2 and #3 since I wanted people to do a project.

What this means is that you should expect course content (lectures, readings, assignments) related to all 3 topic areas. We’ll spend time talking about software engineering, and expect you to do projects where you’ll get to try your hand and building things. We’ll spend time talking about game design, and try our hands at designing games and seeing how game design ideas can be applied in “the real world.” We’ll spend time talking about some advanced technical stuff, and try to apply them. …

This class is an experiment. There are many things a class on "Game Technologies" could mean. There are many different "technologies" involved in interactive systems and games and many different ways to teach people about it. The idea here is to pick some of the software technologies that are used in interactive applications and games and some of the ways to learn about them, and see how they work out in a class setting.

During this class, we’ll pick topics related to games that are some combination of:

  • Things that people in the games industry have told me they think are valuable for students to learn in a class like this.
  • CS topics that I think are important for computer games.
  • Topics in art, design, and psychology that are important for designing good interactive systems.
  • While this class is not "graphics 2", there will be an emphasis on graphics and animation techniques that apply to interactive things like games.
  • Projects that seem to be fun an interesting to do as part of a class like this.

If it sounds like I’m making this up as I go along, then you’ve read correctly.

A big part of this class is its project orientation: you will work on a pretty significant project as part of a team. You’ll get to see a project go from the initial design stages all of the way through testing. Experience working as part of a team and following through on projects is something that is valuable (for example if you’re looking for a job).

According to the Course Catalog:

Survey of software technology important to computer games and other forms of interactive technology. Real-time image generation, managing complex geometric models, creating virtual characters, simulating physical phenomenon, networking technology for distributed virtual environments.

Who can take it?

The official prerequisite is CS559 (Computer Graphics) – but I am open to the idea that some people have learned equivalent material on their own, so if you’re "self-taught" you should contact me. Having taken a graphics class is useful because many of the "technologies" we discuss are graphics related (animation, shaders, …).

If you really want to take this class, but have no graphics experience, please come talk to me. If you’re an art/design/education/… student who has a strong interest in game technology, we might be able to accommodate you. CS679 is targeted towards CS students who are experienced programmers – but if you have different (but relevant) skills, we might be able to adapt the class for you. You might need to sign up under a different number. Please contact Prof. Gleicher to discuss it.

When does this get offered?

Unfortunately, I cannot be sure when this class will be offered again. Basically, it gets offered if and when there are enough people to cover all of the other classes that need to be taught. Sometimes, we only find the opportunity to have a class covered at the last minute, which frees someone to teach this.

Right now, there is no plan to teach the course in Spring 2013, or in the 2013-14 academic year. But surprises happen. I am sorry that I can’t give a more definite answer, or offer this course on a regular schedule. At least we get to offer it period.

Print Friendly, PDF & Email

Previous post:

Next post: