CS315/515 Game Programming, Section 1, Fall 2013

Course information

Course title
Game Programming
MWF, 9:00AM to 9:50AM, in RB368
Paul Gestwicki


This semester is based around these essential questions of game programming:

  1. How does the nature of game design impact the practices of game programming?
  2. How does game software manage assets and resources effectively?
  3. How do you coordinate interpersonal and intrapersonal activity within a game development team?

We will engage with these questions by working together to create Web-based games in collaboration with Subaru of Indiana (SIA), a manufacturing facility in Lafayette, Indiana. These games will feature themes identified by SIA, including high quality manufacturing and "green" practices. We will work together to design games that match these themes, and example genres include racing, hidden-object, puzzle, and match-3. We will work together as a single studio, following best practices of game development.


All participants are expected to have a laptop computer for development.

We will programming in Java on top of PlayN, an open source, cross-platform game development library. This will allow us to deliver games in HTML5+Javascript while minimizing the amount of browser-specific fiddling.

You will need to install and configure the following software:

You may need to install the Maven integrations for Eclipse as well, depending on which version of Eclipse you have downloaded. Refer to the Eclipse setup instructions on the PlayN wiki for details.

In order for the MercurialEclipse Plug-in to work, you will need to install the Mercurial binaries for your operating system. On Windows, these can be downloaded during the plug-in installation process; users of other operating systems will need to install binaries manually. You will not need the CodeBeamer component of the plug-in.

In order to use the department's Mercurial server (csmerc-2.dhcp.bsu.edu, accessible on-campus or by VPN) you will need to configure your Mercurial installation to allow self-signed certificates. You can do this by adding the following to your global configuration file, the location of which depends on your operating system:


The newline at the end of cacerts= is significant. You will also need to configure your username within this configuration file, following Mercurial best practices. The entry will look a little something like this:

	username=Floyd Pepper <fpepper@bsu.edu>

We will be using Google Drive and related technologies to coordinate team activity. If you do not already have a Google account, you will need to create one. Using two-step verification is strongly recommended.

Reference book

We will be following Clean Code as part of our methodology, and so you will need to acquire a copy of the eponymous book.

Proposed Schedule

The semester is divided into three themed sections. We will begin with a week's worth of training and orientation, during which time you will learn more about our methodology and context. The majority of the semester will be spent in an estimated five "sprints," which can be roughly defined as iterations of planning, development, and and evaluation. The last few meetings of the semester, we will devote our attention to quality assurance, ensuring that the games we create are as defect-free as possible.

Aug. 19–Aug. 23 Training and Orientation
Monday, Aug. 26 Sprint 1 Planning Meeting
Monday, Sept. 2 Labor Day, no scheduled meeting
Friday, Sept. 6 Sprint 1 Review and Retrospective
Monday, Sept. 9 Sprint 2 Planning Meeting
Friday, Sept. 27 Sprint 2 Review and Retrospective
Monday, Sept. 30 Sprint 3 Planning Meeting
Friday, Oct. 18 Sprint 3 Review and Retrospective
Monday, Oct. 21 Fall break, no scheduled meeting
Wednesday, Oct. 23 Sprint 4 Planning Meeting
Friday, Nov. 8 Sprint 4 Review and Retrospective
Monday, Nov. 11 Sprint 5 Planning Meeting
Friday, Nov. 25 Sprint 5 Review and Retrospective
Nov. 27–Nov. 29 Thanksgiving break, no scheduled meetings
Dec. 2–Dec.9 Dedicated quality assurance—no new features
Friday, Dec. 13, 7:30AM Final team meeting

The majority of your time this semester will be spent in the authentic practice of game development, giving particular focus to game programming, as befits this course. As this is a three-credit course, undergraduate students are expected to devote nine hours of attention per week—graduate students, twelve. In a normal week, it is expected that all course participants spend eight hours of effort per week on production tasks and their remaining allotment on reflection. Graduate students are expected to spend their addition time in research so that their reflections are supported by contemporary scholarship and practice on game programming.


We will work together following an agile methodology for game development. In particular, we will follow the principles of Crystal Clear and practices from Scrum and Extreme Programming.

Methodology details will be negotiated during the first week of the semester and potentially revised in subsequent sprint retrospectives. This methodology will include expectations of professional behavior, such as conflict resolution and promptness, as well as policies for infractions.


Individual Achievement [5 points]

A student earns one point for each sprint in which all of his or her commitments have been met. Don't forget that validation is part of your commitment!

Collective Achievement [5 points]

All students earn one point for each sprint in which all commitments have been met.

Summative Reflection [9 points]

Our final exam slot will be devoted to a collective summative reflection on the semester. Participation in this activity will be worth nine points toward your grade.

Personal Reflections [45 points]

Students are expected to write personal reflections on the course's essential questions at the end of each sprint. These reflections bring together the content of game programming and the context of your experience. These reflections will be graded according to my triage grading rubric and must provide:

Personal reflections will be collected via Blackboard. Each must be completed prior to the next sprint's planning meeting or the final summative reflection, whichever comes first. Late entries will not be graded.

Letter grades

Grades are determined based on the number of points earned. This mapping is subject to change depending on conditions that arise during the semester.

GradeTop of range


The instructor may access email through services not affiliated with the University. Please note that such messages necessarily pass through the campus firewall in an unencrypted format, and they may be stored on servers not owned or managed by Ball State University. It is therefore advisable to restrict confidential information to office hours or appointments.

Academic Integrity

Students and faculty are bound by the Student Academic Ethics Policy of the Code of Student Rights and Responsibilities.

Intellectual Property

It behooves you to be aware of fundamentals of copyright law and the university's intellectual property policies for student-created work.

Notice for Students with Disabilities

If you need adaptations or accomodations because of a disability, if you have emergency medical information to share with the instructor, or if you need special arrangements in case the building must be evacuated, please make an appointment as soon as possible.