Department of Cognitive Science

Game Development I

48056 ARTS-4520-01
46602 COGS-4520-01
46788 CSCI-4520-01

Wednesdays 2PM-5:50PM
Troy 2012

Instructors: Silvia Ruzanka and Marc Destefano
Offices: Sage 4202 and Sage 3118
Email: ruzans [at] rpi [dot] edu and destem [at] rpi [dot] edu
Ruzanka's Office Hours: Tuesdays and Fridays, 2-4PM and by appointment
Destefano's Office Hours: Tuesdays, 3PM - 5PM
Teaching Assistant: Matej Vakula, vakulm [at] rpi [dot] edu
Office: West Hall 313C
Vakula's Office Hours: Tuesdays, 2PM-4PM

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 team-based projects that you will complete over the course of the semester. Team-based projects will have team members preassigned beforehand. On the four presentation days, 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.

Percentage of Grade
Project 1 (HaxeFlixel)
Project 2 (Phaser)
Project 3 (Unity)
Final Project (Unreal 4)

Class Schedule

Sept 6 Orientation, Git
Sept 13 Haxe and Flixel, P1 assigned
Sept 20 Studio
Sept 27 Project 1 Presentations
Oct 4 JS and Phaser, P2 assigned
Oct 11 Studio
Oct 18 Project 2 presentations
Oct 25 Unity review, P3 assigned
Nov 1 Studio. HoloLens talk at EMPAC, 7PM
Nov 8 Project 3 Presentations
Nov 15 UE4, Final Project assigned
Nov 22 Thanksgiving recess no class
Nov 29 Studio
Dec 6 Studio
Dec 13 Final presentations


Windows users: FlashDevelop is recommended -

Install Haxe 3.4.2

Open a command line (Windows -> "cmd" -> Enter, or open Terminal from /Applications/Utility on a Mac) and run the following commands, one at a time:

haxelib setup
haxelib install openfl
haxelib run openfl setup
haxelib install flixel
haxelib install flixel-tools
haxelib run flixel-tools setup
haxelib set openfl 3.6.1
haxelib set lime 2.9.1

(Answer yes to the setup questions and select FlashDevelop as your default IDE). You can then install one of the many demos by changing to the directory of your choice in the command prompt, and running

flixel c

A list of demos will be displayed, and you can simply type the number of the demo that you want installed. To run the demo, type

lime test neko

at the command prompt, from the project directory.

Class Forum

Try using git

Git ebook

Git conceptual tutorial

Git tutorial

Atlassian's tutorials, particularly comparing workflows

Better Explained series: VCS | Distributed VCS | Git

A successful Git branching model

Git cheat sheet

GitHub training

Interactive git branching tutorial 

Haxe Manual

Flixel cheat sheet

Base Player.hx (remove .txt extension)

Duck spritesheet 

HaxeFlixel slides from class

HaxeFlixel class demo


Spritesheet workflow

Phaser tutorial starting point

Complete Phaser tutorial 

JS/Phaser slides 

UE4 Animation PowerPoint

Department of Cognitive Science
Rensselaer Polytechnic Institute
Carnegie 108
110 8th Street
Troy, NY 12180
Phone: (518) 276-6472
Fax: (518) 276-8268