Welcome to CS 491: Game Development for Learning!
I was recently reading about a software developer who was trying to teach his 7-year-old to code. I was reading it because I too had a 7-year-old and 5-year-old that I was trying to teach to code. What struck me about the article was that the father seemed caught up in definitional knowledge. Did his son know what a variable was? An array? Or, for goodness sake, a closure? His father had this to say about the success of their learning venture: “Ding, ding, ding! He got it!!!”
The son got definitions, but what can he do with them? (Maybe good things; the article doesn’t say.) My own sons and I have talked very little about the concepts of computer science, and we focus instead on making things. I believe that they will learn computer science on the way to something bigger. Initially we programmed 3D models, but then their school had a science fair. We decided to build games in Unity. Each would develop a game, and I would not touch the keyboard. Here are the results:
I share this with you because I think this is the best kind of learning: making something and picking up what you need to know along the way. This class is not about game development; it’s about making a game.
Making games in a group is how we’ll be spending our time. I will rarely lecture, though I will probably record some videos on Unity that I think will help you.
Let’s briefly discuss the expectations of the class…
I wanted to make this class an opportunity for folks to interact with a real live game development company. Certainly, I was hoping that this would be an opportunity for you to get your abilities noticed and get you recruited as an intern or full-time employee. But also I want us to get feedback from some people that makes games. I don’t make them for a living, and I don’t feel qualified to give the feedback that you need.
Filament Games, therefore, is partnering with this class. We had the opportunity to visit them on Friday. Let’s talk about the trip and what we learned…
The rest of our time today is best spent organizing ourselves. These are the things you need to do:
Here’s your individual TODO list:

To help structure your progress, your box is actually expected to pop out four versions of your game in various stages of completion. These milestones and their due dates are described below.
Your first milestone is a prototype of your game on paper and in some digital experiments. It should allow you and your playtesters to test out the game’s mechanics, visualize the user interface and level design, and help you piece together a coherent sequence of play.
Deliverables include the following:
The central purpose of the prototype is to fail fast—to find issues in your design before you’ve committed too much time into them and become their slave.
Due February 9. You have three weeks for this milestone.
The second milestone is a digital prototype of a single playable level of your game. Its assets are probably rough stand-in shapes and sprites. It lacks main menus, music, and other non-primary interface elements. Avoid tackling horizontal concerns; we aren’t interested in a cohesive whole at this point.
Deliverables include the following:
prototype branch.The central purpose of the vertical slice is to familiarize yourself with the game engine by applying it to a contained portion of your game.
Due March 9. You have four weeks for this milestone.
The third milestone is an alpha version of your game. There may be bugs and incomplete features, but the all mechanics should be in place, and at least half of the levels should be functional.
Deliverables include the following:
alpha branch.The central purpose of the alpha version is to provide playtesters a feel for the overall structure of your game. Along the way, you will almost certainly develop tools and workflows that allow you to scale your efforts across levels.
Due April 20. You have four weeks (not including spring break) for this milestone.
The fourth milestone is a build of your game that you can ship to your stakeholders (Filament Games) for evaluation. All levels should be complete, with a cohesive narrative gluing together the gameplay. In addition to the core gameplay, sound and visual effects should be present to give your game polish.
final branch.The central purpose of the final build is to tie together all your ideas, art, and code into a package that you can deliver with reasonable confidence to your players.
Due finals week. You have four weeks for this milestone.
]]>