Thursday, July 20, 2017

Summer 2017 Course Revisions: Game Programming

I introduced the main ideas of my CS315 Game Programming course revision in my previous post. Since then, I have worked on the course design and come up with a plan that I think will work. I have posted the course description online in case anyone wants all the details; here, I want to document a few of the decisions and their rationale.

To get the students' hands dirty, I developed an assignment I've called "Flappy Whatever." The assignment specification is actually posted up on Ball State's Canvas instance. The university is conducting a pilot investigation of Canvas as an alternative to Blackboard; I am coming in on the second or third semester of the pilot, and I figured putting the assignment there would give me a chance to get to know the interface a bit. Short version: it's fine. More to the point, the assignment is for individuals or pairs to develop a minimally playable game in Unreal Engine 4 that meets the following requirements:

  • Includes firing a visible projectile in a parabolic trajectory, using UE4's physics engine
  • Include a scoring or end condition
  • Source code is posted to our class GitHub organization
  • Game title includes the word "Angry" modifying a noun
This is a riff on an assignment I gave one of the first semesters I taught CS315, where the students had a week to make a simple projectile-based demo. I fondly remember one of my students styling it as Homer Simpson throwing donuts. I've scheduled two class during which students are working on this, and I've added a requirement that students bring in questions about what they encounter. I hope that this will drive us quickly to the areas that are both important and misunderstood. We'll close up the assignment with a demo day, where students can show off what they came up with. I'll put together a demo of some kind using UE4's Paper2D system, since this will be something useful for the Collaboration Station revision, but I would be fine with students building something in 3D space for the assignment as well.

From there, I want to move rather quickly into incremental and iterative development. I will do one or two classes to introduce fundamentals of Scrum since there will be too many students for me to directly manage: I plan on using a Scrum-of-Scrums configuration, with students optionally rotating who is acting Scrum Master each iteration. I didn't put this in the course description, but I plan to grade each iteration the way I normally do for my game studio courses, with each student participating in a collective reflection and writing a personal, individual reflection. I intend on allowing students to shift between groups between iterations if they wish, and I am considering asking each team to identify its own OKRs based on the ones I wrote up before.

Careful readers may notice that I completely dropped the concept of my students making a public or private "How to learn UE4" site. As I imagined the structure and rhythm of the class, it seemed too far afield. I don't doubt that it could be interesting, but it would also necessarily distract the students from participating in the communities, forums, and wikis that are already out there. If some students express strong interest in it, I could bring it back as optional, but I don't think I'd really miss it if it were gone.

I am obligated to somehow interpret my students' project-based learning experience honestly into a grade, so I decided that the most clear and direct way to do this was to have them chase MacGuffins. Students earn MacGuffins for satisfactorily completing Angry Whatever and each project iteration that we endeavor. They can also earn a MacGuffin for completing an achievement, of which I currently have two: one is to participate in a game jam such as Ludum Dare; the other is to present at the 2017 Symposium on Games in Academia that my Serious Games Knowledge Group will be hosting in November. I will probably think of others as the Summer continues. If a student does all the expected work of the course satisfactorily and completes an achievement, they get an A. For each step down (or, equivalently, each MacGuffin they did not find), it knocks down one letter grade. This sounds fair to me: do only the in-class stuff, and you have done Very Good ("Well", natch). Skip an iteration, skip the intro assignment, or royally screw up someplace, you did Average. Anything less is Poor.

This plan leaves me with a bit of prep yet to do, such as designing the specifics of a Scrum tutorial and perhaps making some UE4 tutorial videos, but overall I think it is sound. Even if I simply left this alone until the semester started, it's enough to get everything rolling. That's good, because I think it's time for me to turn my attention to the revisions to CS222—which is moving to a Tuesday/Thursday schedule, affording some potentially significant changes—and retheming my game design colloquium around or upcoming project. More about that in later posts. Thanks for reading!

No comments:

Post a Comment