Teaching Game Design and Development

I have been teaching Game Design in Flash 8 with ActionScript 2 and C# programming since Term 4, 2005 at Unlimited Paenga Tawhiti public school in Christchurch, New Zealand. I have also run classes in web design, Unreal 2004 level design and some basics Maya 3D modelling.

Ages

My classes have up to 20 students per class. Secondary (High School) classes are a mix of ages ranging from 13 to 17. Intermediate classes are ages 11-12. Primary classes are ages 9-11. I have run primary classes with students as young as 7, but this really is too young. While they are able to understand some of the concepts they really slow the pace of the class.

As one might expect the majority of my secondary classes are made up of boys, and the girls I have seen were more interested in learning programming than game design. However, in the younger classes there is a more even split.

Teaching Style

13 Year old Student Platform Game

My teaching style has changed quite dramatically since I started. It turned out that magnificent 2 hour lectures on programming theory in a University style really didn't turn the students on. In fact, it only takes about 10 minutes of theory before the students eyes glaze over and they are up and running around the room.

I consider my classes to be two parts inspiration and one part learning. If I can't capture their interest and imagination, they will have no desire to do the learning. I soon as I see that they are hooked, this usually mean that they have this great game idea they want to make, then it is safe to start with the theory as they have something to relate it to.

Until that happens we work through class projects. I ask the students what type of game they want to make. I then make it on the big screen and they follow along. After each section of code I'll explain it (not before). It is usually pretty easy to keep the code at a simple level and introduce new programming concepts very slowly, regardless of the game. This is one of the beauties of Flash, but unfortunately not the case with C#.

In C# I usually start them with the calculator project. It might not sound that interesting but students never seem to complain. The good thing about a calculator is that they implicitly understand how it works, and programming concepts can be introduced incrementally. The solar system is another good first 3D project.

After the students are hooked into a project, then is the time to stop guiding and your role changes from teacher to mentor. Let them do it themselves and ask questions when they are stuck or confused how to get a feature working that they want. And remember, if you are of the geeky persuasion, that kids don't care if their game doesn't work perfectly. Go for the simplest solution rather than the right solution. Better that they understand what is going on than overwhelm them with concepts (usually math) that are too advanced.

Classes

One of the nice things about teaching game design is that you always get to teach fresh content, especially when the classes are students directed. Over the years we have made the following games:

Flash

  • Paper Scissors Rock
  • Simple Car Dodge'em
  • Wak'a'Mole
  • Pong
  • Point and Click Adventure Game
  • Scrolling Shoot'em'up
  • Platform Shoot'em'up
  • Asteroids
  • Space Invaders
  • Simple RPG
  • Simple Car Racing
  • Mine Sweeper
  • Snake
  • Pick-a-Path Adventure Story
  • Platformer
  • Fireworks Simulation

C#

  • Calculator Windows Forms
  • 3D Calculator
  • 2D Asteroids
  • 3D Cat and Mouse
  • 3D Solar System

Tutorials

I am slowly creating online tutorials for creating these games. You can find these at:

Flash Game Tutorials