88025 ARTS-4966-01
86953 COGS-4520-01
88225 COGS-4520-02
87225 CSCI-4520-01
Wednesdays 2PM-5:50PM
Troy 2012
Instructors: Marc Destefano and Silvia Ruzanka
Offices: Sage 3118 and West Hall G2
Email: destem [at] rpi [dot] edu and ruzans [at] rpi [dot] edu
Destefano's Office Hours: Mondays, 1 - 3PM
Ruzanka's Office Hours: Thursday, 2:30 - 5PM
Learning Outcomes: 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: Our 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) |
20% |
Project 3 (3D) |
30% |
Final Project (3D) |
30% |
Class Schedule (not cast in stone)
| Aug 31 | Introduction, Resources, Python tutorial |
| Sept 7 | Pygame tutorial, Project 1 assigned |
| Sept 14 | Studio |
| Sept 21 | Project 1 presentations |
| Sept 28 | Lua, Corona tutorial, Project 2 assigned |
| Oct 5 | Studio |
| Oct 12 | Project 2 Presentations |
| Oct 19 | 3D Game Art |
| Oct 26 | Panda3D tutorial, Project 3 assigned |
| Nov 2 | Studio |
| Nov 9 | Project 3 presentations |
| Nov 16 | Unity tutorial, Final project assigned |
| Nov 30 | Studio |
| Dec 7 | Final project presentations |
Resources: You'll need the following software:
Recommended readings:
Python cheat sheet
Pygame cheat sheet
Pygame tutorial graphics
Pygame tutorial code
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.
Project #1:
Penguin graphic
Corona Device Build Guide
Notes on Lua
Penguin sample code
Project #2:
For 10/19:
Noah Schnapp's Boxman tutorial, Part 1
Panda tutorial files
maya2egg2012 command prompt instructions
Tagging collision objects in Maya
For 11/16:
Purchase the student edition of Unity Pro
Jesse's Unity package tutorial (Weapons! Particles! C#!)
Department of Cognitive Science
Rensselaer Polytechnic Institute
Carnegie 108
110 8th Street
Troy, NY 12180
Phone: (518) 276-6472
Fax: (518) 276-8268