Undergraduate Program - Graduate Program - Courses - People - Research - Lectures - Home
44829 COGS-4520-01
45283 CSCI-4520-01
Game Development I
Wednesdays 2PM-5:50PM
Sage 3101
Instructor: Marc Destefano
Office: Sage 3204
Phone: 276-3738
Email: destem [at] rpi [dot] edu
Office Hours: Mondays, 1-3PM
TA: Jeff Sult, sultj [at] rpi [dot] edu
Course Description: This class brings together software engineering and the arts to produce small real-time interactive video games. You will work with people outside your traditional discipline to create something that you could not create on your own. You will learn good software design practices, how to decompose large projects so multiple people can work on it simultaneously, and proper version control use.
Objective: My objective is to give anyone who is interested in entering the gaming industry the skill set necessary to compete. Developing video games takes a myriad of talents: art, programming, design, and most importantly, the ability to work in a team and communicate with others.
Course Policies
Preparation and Attendance: Attendance is mandatory. You are a member of a team, and constant communication with your team is necessary. This class features an intense workload, as complete games are very difficult to make, and you'll be working within a highly compressed timespan. You will spend more time with your team outside of the classroom than within.
Academic Honesty: Student relationships are built on mutual respect and trust. Students must be able to trust that their teachers have made responsible decisions about the structure and content of the course and that they are conscientiously making their best effort to help students learn. Teachers must be able to trust that students do their work conscientiously and honestly making their best effort to learn. Acts that violate this mutual respect and trust undermine the educational process. They counteract our very reason for being here at Rensselaer and will not be tolerated. Any student who engages in any form of academic dishonesty will receive an F in this course and will be reported to the Dean of Students for further disciplinary action. The Rensselaer Handbook has defined various forms of Academic Dishonesty and procedures for responding to them. All of these forms are violations of trust between students and teachers. Please familiarize yourself with this portion of the handbook.
Gender-fair language: Because the way we speak and write affects the way we think, everyone in this course is expected to use gender-fair language in all discussions and writing. A guide to gender-fair language is available from the Writing Center and from the Library.
Grading: Your grade will be based on four projects that your team will complete over the course of the semester, with teams being re-arranged after each project. At the beginning of each class when a project is due, each team will give a short presentation of their game to the class. Afterwards, each team will get feedback regarding their work. Each team will hand in a short printed document indicating what work was performed by each member of the team, with the document signed by every member of the team. This record of work will be balanced against the quality of the project to determine each student's individual grade.
Milestone |
Percentage of Grade |
Project 1 (2D) |
20% |
Project 2 (2D) |
30% |
Project 3 (3D) |
20% |
Final Project (3D) |
30% |
Class Schedule (not cast in stone)
| Sept 2 | Introduction, Python tutorial |
| Sept 9 | Pygame tutorial, Project 1 assigned |
| Sept 16 | Studio |
| Sept 23 | Project 1 due, Project 2 assigned |
| Sept 30 | Studio |
| Oct 7 | Studio |
| Oct 14 | Project 2 due |
| Oct 21 | Art export tutorial |
| Oct 28 | Panda3D tutorial, Project 3 assigned |
| Nov 4 | Studio |
| Nov 11 | Project 3 due, Final project assigned |
| Nov 18 | Studio |
| Dec 2 | Studio |
| Dec 9 | Final project due |
Resources: You'll need the following software:
Python cheat sheet
Pygame cheat sheet
Programmers - If you know C++, Python is easy to learn. You'll get over "the whitespace thing" very quickly. I recommend you read chapters 2-6 of Dive into Python to get started. Pay special attention to list slicing, list comprehension, and the differences between the __init__ method and a C++ constructor.
Artists - The way the pipeline will generally work is the following: While the models are being constructed, the programmers will use simple shapes to prototype the game mechanics. Once the model is built, rigged, and the UV map has been unwrapped, the model is then passed to the programmers for further prototyping. During this time the model is animated and textures, with the idea that the texture map can then simply be plugged into the game.
There is an SVN repository available
Assignment 1: Shmup
Panda template