Through the Event List Editor, it is much easier for
students to write this pseudo-code and understand
the programming constructs of sequence, loops,
decisions, logic operators, classes, and objects.
4 TEACHING PLAN
4.1 The Approach
The focus of teaching programming concepts via
game design should be on fun, challenge, and
exploration. Learning will inevitably take place as a
result. The main steps are:
1) Introduce students to a game-creation tool. The
purpose at this stage is not to teach the minutiae of
the game creation process or the software; the
software is simply a means for the student to
experience fun and challenge and to develop a liking
and appreciation of programming in that process.
2) Have students come up with a simple game idea
for a game they will construct using this software.
3) Each subsequent class period will be a time where
students work on their games in a guided but
relatively free environment amenable to exploration
and creativity. In this way, students explore
problem-solving concepts central to the learning of
programming in an engaging gaming environment.
4) After the games are completed, the students will
convert their event editor code to pseudo-code,
written with IF-THEN_ELSE, DO LOOPS, and
other common programming constructs.
4.2 Modular Teaching Plan
The teaching module can be implemented as a one to
three credit course in game design, which could be a
pre-requisite to a formal programming course, or on
a smaller scale during the beginning weeks of an
introductory programming course. A sample
modular teaching plan is outlined below. The
description is based on the use of Multimedia Fusion
as the game-creation tool but any other similar tool
would work. All teaching sessions are conducted in
a laboratory environment.
Session 1: Show the capabilities of the game
creation software and create a rapid game. Explain
that students can make such games with none or
little programming knowledge. Discuss the frame
editor and the types of objects. Discuss the use of
various movements (such as “Bouncing Ball”
movement and “Eight-Directional” movement) and
simple conditions for collisions and counters. Lead
the students through the creation of a simple pong
game. Divide students into pairs and ask students to
come up with individual simple game ideas to be
developed into a game in two weeks. Create a web-
based asynchronous discussion forum to continue
discussions among and with students.
Session 2: Discuss more features of the game
creation software. Ask students to begin work on
their game project. Be present to answer questions.
Encourage an atmosphere of conviviality, learning,
sharing, and creativity.
Session 3: Give a short lecture on common
programming constructs. Then let the students
continue work on their games. Be prepared to
answer many questions from students who have
worked on their project over the weekend.
Session 4: Ask students to convert their event editor
code to programming pseudo-code, with common
programming statements. Demonstrate games
created by the students. Discuss examples of
programming pseudo code. Conclude with lessons
learned.
5 BENEFITS
We see numerous benefits to learning programming
using game design. The student is exposed
organically to programming concepts and constructs
and develops intrinsic motivation to learn
programming given the fun, challenge, and novelty
of the game creation process as well as having a task
to perform that offers contextualization,
personalization, and choice (Cordova and Lepper,
1996) Collaborating on game design allows
exchange of ideas and knowledge. Moreover, having
created a game, students develop some confidence
early in the programming process. Later, when
concepts such as object-orientation, abstract data
types, classes, attributes, methods, inheritance, and
polymorphism are taught formally, students will find
it easier to understand them if references to the game
are made to provide instances of those concepts. As
users develop a love for game-creation through this
easy-to-learn structure, a few may attempt to master
the advanced aspects of the tool, and in doing so,
will be able to create more complex and original
games with a deeper understanding of game
programming. When the limitations of the tool itself
seem to be reached, their interest in game
programming will inspire them to learn more
powerful languages.
LEARNING COMPUTER PROGRAMMING WITH GAME DESIGN
137