Teaching Game Developmentteaching
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.
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.
Game Related Projects
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.
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 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:
- Ludum Dare happens every 3 months, but there are mini-LDs every other weekend.
- Game Jolt and itch.io both have a ton of user-hosted jams.
- One Game a Month encourages participants to make a new game every month.
- Global Game Jam takes place in January. It’s probably the biggest game jam, and it’s the only one that requires in-person participation.