Undergraduate Program - Graduate Program - Courses - People - Research - Lectures - Home
28241 COGS-4520-01
27714 CSCI-4520-01
Game Development I
Wednesdays 2PM-5:50PM
Troy 2018
Instructor: Marc Destefano
Office: Sage 3204
Phone: 276-3738
Email: destem [at] rpi [dot] edu
Office Hours: Thursdays, 2-4PM
TA: Eddie Corlew, corlee [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 five projects that your team will complete over the course of the semester. On the days that projects are listed as due, they are due at the beginning of class. Each project will be graded as follows: 1/4 of your grade will be for art quality/consistency (team score), 1/4 will be for code functionality and project decomposition (team score), 1/4 will be determined by your team's evaluation of how much you did (individual score) and 1/4 will be how your teammates rated your ability to work in a team (individual score). Teams are re-arranged after each project.
Milestone |
Percentage of Grade |
Project 1 (2D) |
15% |
Project 2 (2D) |
20% |
Project 3 (3D) |
15% |
Project 4 (3D) |
20% |
Final Project (3D) |
30% |
Class Schedule (not cast in stone)
| Aug 27 | Introduction, Python tutorial |
| Sept 3 | Pygame tutorial, Project 1 assigned |
| Sept 10 | Studio |
| Sept 17 | Project 1 due, Project 2 assigned |
| Sept 24 | Studio |
| Oct 1 | Project 2 due |
| Oct 8 | Panda3D tutorial, Project 3 assigned |
| Oct 15 | Studio |
| Oct 22 | Project 3 due, Project 4 assigned |
| Oct 29 | Studio |
| Nov 5 | Project 4 due |
| Nov 12 | Final project assigned |
| Nov 19 | Studio |
| Nov 26 | No class - Thanksgiving Break |
| Dec 5 | 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 painted, with the idea that the texture map can then simply be plugged into the game. You may rename things, re-hierarchize things, and move/rotate/scale/change pivot points. If you *must* change any vertices or polygons (try not to!), be gentle in telling the programmers, as it may negate a good deal of work. Here's an older tutorial on painting a 3D model.
Pygame tutorial test file and image
Assignment 1:
Assignment 2:
Assignments 3-5: You'll need Panda3D. If you have a Mac and don't want to use Boot Camp, you can try building the source using this tutorial
Assignment 3:
Tutorial, eat animation, music, sound effect