Teach Programming with Games

Background

Because many computing students are interested in computer games, there has been some interest in using games to teach programming.

Project

Design some easy-to-create games that students in computing courses could implement (or maybe just play) that would demonstrate/illustrate important computer programming principles. An important structural programming fundamental is the any programming language that has sequential statements, branching, and loop structures can implement anything that is computable. More advanced ideas from object-oriented programming include concepts like inheritance and polymorphism.

Games could be used in various computing courses. For example, we are trying to make CIS 101 Introduction to Computing more interesting. A course module (a module is a part of a course - usually a few lessons) that teaches programming through computer game playing or game creating could be a valuable addition to the course.

Another module that would surely be of interest to students would be developing a smartphone app that implements a game.

General References

A Google search of "teaching programming + game playing" received some hits, see: 1 2 3

Project Details

The project for this semester will involve using computer gaming to teach coding/programming to users. This will involve using C++ to create a computer game, namely a role-playing game (RPG) that will contain weapons, characters, maps, levels, and many other features that a person would expect to find in any RPG. As for the educational part, it will contain a separate window containing the C++ code. Any time a certain part of the game is executed, the same code that that part is based off of will be shown in the coding window. For example, if a character in the game opens up a map, the code that references the map function will appear on the coding window. Furthermore, the game will have a Pause menu where players can modify the settings of the game, including the speed of the dialogue that appears in the game, the speed of the game in general, the difficulty level, and so on. Those changes will, of course, be reflected on the coding window once the changes are officially entered on the Pause menu.

As for the overall layout of the game, there will be a multitude of levels and dungeons situated in a harsh and unforgiving land. There will be enemies that will be fighting back when they spot the player or when the player attacks them. The enemies will all be programmed to die after various numbers of hits depending on what kind of enemy they are and depending on what type of weapon is being used against them. There will also be a health bar for the player, which will drop to 0 after a certain number of hits. After the character dies, the game will ask the player if he wants to continue or not? If yes, then the player will start at the most recent checkpoint that he passed in the game. If not, the game will return to the title screen and the only way to return to the checkpoint would be to provide specific passwords at the title screen. In other words, the game would pretty much function like as seen in the video game series known as The Legend of Zelda ("Legend of Zelda: Ocarina of Time 3D." Zelda Universe. 11 Feb. 2015).