teaching / guides / gamedev

Teaching Game Development


Video games are a highly visible example of what can be done with code, and many students become interested in code through playing and wanting to create their own video games.

Game development is a culmination of a bunch of programming concepts that Processing is specifically designed to make easy. Stuff like drawing, animation, and getting user input. So although the tutorials on this site aren’t specifically designed with game development in mind, they do provide the tools required for gamedev.


I would just run through the regular tutorials, and how you do that depends on how much time you have. See the guides on teaching classes for more info.

You might try to flavor the tutorials and examples to be more game-related. For example, instead of drawing a smiley face, draw Mario. Instead of drawing a ball bouncing around the screen, draw an angry bird.

Start Small

That being said, students aren’t going to be creating Mario right out of the gate. Encourage them to start small. Think Pong or Flappy Bird instead of Minecraft.

Trying to do too much at one time is a common problem that novices (and not-so-novices) have, so keeping students grounded is going to be especially important if they’re interested in game development.

Remind students that before Notch created Minecraft, he created dozens of smaller games!

You might also suggest projects that are related to games, but not quite games themselves. For example you might have a project that shows a high-score table, where the scores are simply read from a file. Or you could have students create a character customization screen, but then simply save the character to an image file instead of implementing the rest of the game.

Game Engines

Processing is designed to make it easy to create visual and animated programs, but it’s not specifically designed to create games.

Game engines are specifically designed to make it easier to create video games. The problem is, that means it’s harder to do other stuff. So I don’t really like game engines for teaching code.

If students are serious about game development, I’d recommend they start out in Processing, then “graduate” to Java, with an eventual goal of learning libGDX, which is a Java game engine. But note that this is pretty advanced stuff, so learn the fundamentals in Processing!

Game Jams

Game jams are programming competitions, but with more of a focus on getting something done than on actually winning anything (hence the “jam” part). They usually happen over the course of a weekend, where people have 2 days to create a game. You’d be surprised what you can accomplish in that time!

If your students are interested in game development, I’d encourage them to participate in a game jam. Here are just a few: