Syllabus

Instructors

  • Blair MacIntyre, blair (at) cc (dot) gatech (dot) edu
    Office hours:  12-1 W (TSRB 231)
  • Teaching assistants
    • Iulian Radu (iradu3), HCC PhD
    • Miranda Bradley (mbradley36), MS CS
    • Sebastian Monroy (smonroy3), MS CS
  • TA Office hours
    • Iulian: W 9-10 (GVU Cafe – 2nd floor of TSRB)
    • Miranda: TM 1:30-2:30  (Klaus Tables near bathroom 1st or 2nd floor)
    • Sebastian:  Th 11-12 (Klaus Tables near bathroom 1st or 2nd floor)

General Infromation

Summary

This class will be broken down (roughly) into three parts, and your grade will be determined roughly equally from those 3 parts:

  • Video Game Architecture
  • Programming Compelling Interactive Experiences
  • Group Game Project

During the first part, you will learn about game architectures and how to build responsive, interactive programs.  You will build small prototypes of single and multi-player games.

During the second part, you will learn some elements of game design, but particularly how to build responsive, interactive games that feel good.  A large part of this material will be drawn from Steve Swink’s book Game Feel, which is required reading.  We also recommend Tracy Fullerton’s book Game Design Workshop, if you do not have prior experience designing and building games. You will build a number of small game prototypes to explore how to create interactive game mechanics and controls.

In the final part of the semester, you will work in groups of 2 or 3 students to design, prototype and test a 3D video game using the Unity3D game engine.

Every student in the class will build a sequence of game technology/interaction/mechanic prototypes by themselves in the first two parts of the semester, and will be expected to contribute significantly to their team’s game.  This is not a “process” class, where each member takes on a well-defined roll, with some programming, some designing and some managing.  Nor is this a “design” class, where we focus on the overall design process for games.  Rather, this is a game architecture and programming class, where each member of the team is expected to take on many roles to ensure the game is completed and working before the due date.

While this is not primarily a game design class, we will discuss the elements of games, and some ideas on game design, in support of you building games.  The main goal of this class is to understand how games are built (game architecture) and how the elements of a game engine are leveraged to build interactive experiences that are a pleasure to play.  While there are many parts to a game, from the story to the content to the levels, the part we will focus on in this class is how to build the second-by-second interactive experience such that it is fun and enjoyable to play.  In many ways, this is the core element of games that distinguishes them from other digital systems;  it is also the technical part of games that distinguishes them from non-interactive applications.

Beyond learning how to build engaging and fun interactions, building prototypes to test such interactions is useful because a major part of designing a game is testing and refining  the prototypes of the various parts of the game, especially the game mechanics, controls and interactive elements.  Since games are as much about the feel of the experience as they are about the technical implementation, testing and refining how the game feels and “plays” is critically important.  Therefore, a goal of this class is to give you experience developing such prototypes for a game you are building.

Laptops

You will be required to bring a laptop to class, and having Unity3D 4.x installed on it.  We will do in-class prototyping and programming exercises.  Please ensure you have a laptop that will run Unity3D effectively.

When we are not using them for in-class work, I will ask students to close them.  While I am inclined to let people do what they want with their time (and grade their results), I have received many complaints from students over the past few years about how distracting it is to have students browsing the web/facebook/twitter, watching videos, and playing games in class.  And here’s a nice article about a study documenting the negative impact on performance of students who are  seated near folks using laptops (even if they aren’t).

Please be courteous to your fellow students.   To put this another way:  I view using social media and unrelated web browsing as equivalent to talking on a phone in class.  If you are doing it and bothering me or others around you, I may ask you to leave class for the day.

Grading

The grade for the class will be computed as follows:

  • Class participation: 10%
  • Game Architecture Assignments ((2 + 8) + 10 + 10): 30%
  • Interaction Prototypes (10 + 10) + Critiques (3 + 3) + Pitch (1 + 3): 30%
  • Project: 30%

Class participation will come from many sources:  attendance (spot checks), in class exercises, participating in play testing, etc.

Final grades are computed as follow:  <50 (F), 50-65 (D), 65-75 (C), 75-85 (B), 85-100 (A)

Late Policy

Late submission will have 25% taken off the grade immediately, and an additional 25% taken off for each additional day.  A day is 24 hours from the specific time the assignment is due (e.g., if something is due at 6am Monday, and it turned in at 6:01am Monday, it is 25% off;  if it’s turned in at 5:59am Tuesday, it’s 25% off but will be 50% off at 6:00am Tuesday).

Some things will not be accepted late (e.g., slides for in class presentations).  They will either be obvious (e.g., if you don’t submit slides in time to use them, I don’t need to see them later, and won’t give you partial credit for handing them in after the fact) or will be noted on the assignment.   If in doubt, ask.

Assignments

The major activity of the class is centered around the individual assignments and prototypes and the group project (below), but there will be some in-class activities worth 10% of your grade.

Individual Web Pages

Each student will create an account on this blog, using an alias of their choosing.  DO NOT use a personally identifiable account name, but something that is not identifiable as you (if you want others to know about your work, you can re-publish the content on your own website).   We will use the t-square wiki to maintain a list of the aliases, and you will use this blog to publish your prototypes for testing.

The Project Web Page

Each team will create a subpage on the blog for their group (under the Group page), and have an identifying category for their group, as a sub-category of “Groups”.  The page should contain an up-to-date description of the game, goals and have the most recent media (prototype, video, etc) organized on it.   For each deliverable, the group will do a blog post, categorized with their group category, that will automatically be append to that page.  The first post will be a summary of the project, including a list of group members, the game design idea, etc.  This content should also be added to the page, and an additional post will be added for all the game turn-ins, the final game, all game prototypes, and the final video.  The content should be neatly and concisely laid out on each of these posts, and the main page updated to reflect the current state.  I expect each group page to be organized and polished at all times.  All game projects are expected to be targeted to Unity’s web plugin (with the unity3d file stored in t-square’s resources), so all of the game milestones will be playable on your post’s pages, and available to the your classmates and anyone on the internet who stumbles on your page.