Aravind RTP
Aravind RTP
“Game Development”
Submitted to the
BACHELOR OFTECHNOLOGY IN
INTELLIGENCE&MACHINE LEARNING)
BY
MALLE ARAVIND:(22WJ8A66E0)
1
DEPARTMENT OF EMERGING TECHNOLOGIES (SPECIAL BATCH)
CERTIFICATE
This is to certify that this Real Time Project entitled “Game Development” being
submitted by MALLE ARAVIND bearing 22WJ8A66E0 in partial fulfillment for the award
record of Bonafide work carried out under our guidance and supervision at Guru Nanak
—------------------------------
EXTERNAL EXAMINER
2
ACKNOWLEDGEMENT
I wish to express my sincere thanks to Mr. Sardar Gagandeep Singh Kohli, Vice-Chairman, GNITC
for providing me with the conductive environment for carrying through my academic schedules and
real time project with ease.
I wish to express my sincere thanks to Dr. Harvinder Singh Saini, Managing Director, GNITC for
providing me with the conductive environment for carrying through my academic schedules and real
time project with ease.
I wish to express my sincere thanks to Dr. Sreenatha REDDY, Director, GNITC for providing me with
the conductive environment for carrying through my academic schedules and real time project with ease.
I wish to express my sincere thanks to Dr. Rishi Sayal, Associate Director, GNITC for providing me with
the conductive environment for carrying through my academic schedules and real time project with ease.
I have been truly blessed to have a wonderful adviser Dr. Tariq Hussain, Department of Information
Technology and Computer Science and Engineering Special batch Emerging Technologies for guiding me
to explore the ramification of my work and I express my sincere gratitude towards him for leading me
throughout the completion of the real time project.
I would like to say my sincere thanks to Mr. S. Parabrahma Chari, Department of Computer Science and
Engineering Special Batch Emerging Technologies, Real Time Project Coordinator, for providing seamless
support and right suggestions are given in the completion of the project.
I specially thank my internal guide Internal Guide information, GNITC for his suggestions and
constant guidance in every stage of the real time project.
Finally, I would like to thank my family members for their moral support and encouragement to achieve goals.
MALLI ARAVIND
(22WJ8A66E0)
3
DECLARATION
Date :
Place : GNITC
MALLE AVAVIND
22WJ8A66E0
4
ABSTRACT
Games can be a valuable tool for enriching computer science
education, since they can facilitate a number of conditions that
promote learning: student motivation, active learning, adaptivity,
collaboration, and simulation. Additionally, they provide the
instructor the ability to collect learning metrics with relative ease.
As part of 21st Annual Conference on Innovation and Technology
in Computer Science Education (ITiCSE 2016), the Game
Development for Computer Science Education working group
convened to examine the current role games play in computer
science (CS) education, including where and how they fit into CS
education. Based on reviews of literature, academic research,
professional practice, and a comprehensive list of games for
computing education, we present this working group report. This
report provides a summary of existing digital games designed to
enrich computing education, an index of where these games may
fit into a teaching paradigm using the ACM/IEEE Computer
Science Curricula 2013 [13], and a guide to developing digital
games designed to teach knowledge, skills, and attitudes related to
computer science.
5
INTRODUCTION
As part of ITiCSE 2016, the Game Development for Computer
Science Education working group convened to examine the
current role games play in computer science (CS) edu-
7
vocabulary related to game design theory, provides a summary of
previous related computer science education research, and
provides a summary of relevant educational psychology. It also
provides a brief review of games created for computer science
education and how these map to CS2013.
This is followed with case studies of four games designed to teach
CS concepts. The games are analyzed in two ways: 1) for their
design elements using the Mechanics, Dynamics, and Aesthetics
(MDA) framework and 2) for how one might evaluate their
effectiveness. Using information from this analysis, our
background research, and our previous experience creating
games, we provide a set of best practices for creating meaningful
games for CS education
BACKGROUND
There is a unique relationship between digital games and
computer science, since computer science is the foundation of
such games. But more than that, the programming process itself
contains many of the same elements found in games. In 1980,
Thomas W. Malone [84] stated:
“In some senses, computer programming itself is one of the
best computer games of all. In the ‘computer programming
game,’ there are obvious goals and it is easy to generate
more. The ’player’ gets frequent performance feedback
(that is, in fact, often tantalizingly misleading about the
nearness of the goal). The game can be
played at many different difficulty levels, and there are many
levels of goals available, both in terms of the finished
product (whether it works, how fast it works, how much
space it requires, etc.) and in terms of the process of reaching
it (how long it takes to program, etc.). Self-esteem is crucially
involved in the game, and there is probably the occasional
emotional or fantasy aspects involved in controlling so
completely, yet often so ineffectively, the behaviour of this
8
responsive entity. Finally the process of debugging a
program is perhaps unmatched in its ability to raise
expectations about how the program will work, only to have
the expectations surprisingly disappointed in ways that
reveal the true underlying structure of the program.”
Though other areas of study may also contain elements of this
process, programming offers a unique parallel. Malone’s insight
into how self-esteem is intertwined into the process is worth
noting, as CS educational research supports the notion that
learner and instructor self-esteem and self-efficacy are important
to the learning process. We mention this here, as it is important to
note that although games for CS education may be designed to
teach disciplinary concepts, such as programming constructs or
computational thinking, they may have positive or negative
unintended outcomes that could affect behaviors and beliefs
about computing.
This section is designed to provide a contextual background to
readers and describe the important elements of research relevant
to the remainder of this report. We define the value of using games
to teach computer science education. We also provide a summary
of vocabulary for game design, as well as CS educational research
and the broader educational psychology that is relevant to game
design.
other words, the actual flow of the game. This flow emerges from
the interaction of the mechanics with each other in response to
player action. The aesthetics, then, refer to the resulting
experience of playing the game. This is conceived from the
perspective of a player as they play. This is distinct from the theme
of the game and the “look and feel” of the user interface. It instead
refers to the player’s experience itself. It is sometimes framed as
the set of emotions that a game may evoke.
The mechanics drive the dynamics because they constrain the
actions the player may take. However, the player also has a highly
influential role in the formation of the game dynamics, since
games typically provide players with a choice of possible actions.
Further, the skills of some players may be insufficient to sustain
certain dynamics, while other players discover subversive ways to
exploit the available mechanics in ways that designers may not
have anticipated. These different dynamics can have a profound
1
2
effect on the resulting aesthetic of the game. Again, there is
variance. For example, solving a puzzle may evoke satisfaction and
pride. However, if the puzzles are too repetitive, they may evoke
boredom and annoyance. Players can also differ in the way they
perceive an experience. Figure 1 illustrates an adaptation of MDA,
where Scott [110] proposes culture as a moderating factor
alongside dynamics. On the one hand, culture may shape a
player’s behaviour, while on the other, culture may shape a
player’s values and thereby influence how they interpret signs
and symbols to construct meaning. Hunicke et al. [65] state:
“From the designer’s perspective, the mechanics give rise
to dynamic system behavior, which in turn leads to
particular aesthetic experiences. From the player’s
perspective, aesthetics set the tone, which is born out in
observable dynamics and eventually, operable mechanics.”
It is also important to highlight a game designers’ focus on
aesthetics. As computer science students and educators, it may be
tempting to focus primarily on the mechanics, since art, sound,
and user interface design are typically not components of
computer science education. However, the aesthetics are often
what makes a game fun and more engaging, and considering
aesthetics can be pivotal to a game’s success.
Players
As with teaching, the target audience of a game is of primary
consideration. Players moderate the aesthetics of the games they
play, as their value systems will shape their interpretations, and
different dynamics may be accessed by different demographics
[133, 110]. Several player models have been considered and used
in designing games for different target demographics. Each of the
following player models with various levels of complexity have
been used to identify player preferences, providing information to
1
3
the designers who can then integrate those preferences within
their game. Though not a comprehensive list, this provides some
insight into how to consider player preferences within gameplay.
When designing a game, designers can link gameplay features to
specific player preferences to achieve specific goals. For example,
a game designer’s target demographic may be achievers, who are
known to enjoy competition and the ability to achieve high scores
and earn rewards.
Bartle’s Taxonomy. The Bartle’s Test was developed by Andreasen
and Downey, who based it on Richard Bartle’s player type analysis
[21]. This test is a questionnaire that was originally designed for
players of virtual worlds to take to provide insight into their
preferred play style. Four play styles are provided: Killers,
Achievers, Socializers, Explorers [20]. Also referred to as Hearts,
Diamonds, Clubs, and Spades, Bartle attempted to classify player
preferences in an effort to predict players who may enjoy dungeon
crawlers. Socializers (hearts) enjoy forming relationships with
other players within a game. Achievers (diamonds) enjoy meeting
goals in games and being rewarded for their efforts. Killers (clubs)
enjoy dominating others in gameplay using in-game means.
Explorers (spades) enjoy games that provide them with an
opportunity to explore and enjoy free-play. These styles are not
mutually-exclusive, and in fact, players often enjoy combinations
of these styles.
BrainHex. The BrainHex [1] is a broader model that defines seven
player archetypes based in part on neurobiological research:
Seeker, Survivor, Daredevil, Mastermind, Conqueror, Socialiser,
and Achiever [90]. More closely aligned with genres than Bartle’s
Taxonomy, it can still be used as a tool within a target demographic
(e.g. girls aged 10–13 in a particular middle school setting) to help
in determining the types of games they may prefer, thereby
creating a game to meet the preferred player styles of that
demographic.
Unified Model. The Bartle’s Test has been further adapted to
include the Keirsey Temperaments and the Bateman DG1 Model in
a Unified Model, as well as the alignment of these models with 7
1
4
others [124]. This also maps to the MDA framework of game
design, which defines a game based on Mechanics, Dynamics, and
Aesthetics. Motivation between the different types of players as
well as their preferred method of solving problems to achieve
goals differs. Their overall goals (Do, Have, Know, or Become)
provide a single action word summary into their play styles.
Five Factor Personality Traits. More recently, the Five Factor
Personality Traits survey, a validated instrument used in
psychology, has been used to predict game play preferences and in
designing games. Game designers at Ubisoft employ the Five
Factor Personality Inventory (also called OCEAN or the Big Five)
to measure five opposing dimensions in an individual’s
personality, Openness (versus Closedness) to Experience,
Conscientiousness versus Lack of Conscientiousness, Extraversion
versus Introversion, Agreeableness versus Hostility, and
Neuroticism versus Emotional Stability [126]. The Inventory has
been used in one study to show to that “conscientiousness was
negatively correlated with perceived use of first-person shooter
games and extraversion was positively correlated with both liking
and perceived ease of dancing games. Agreeableness was
positively correlated with liking of dancing games” [37]. An
alternative to OCEAN is HEXACO, which assigns personal
characteristics through Humility (H), Emotionality (E),
Extraversion (X), Agreeableness (A), Conscientiousness (C), and
Openness to Experience (O) [75].
Other psychosocial models. Though there are several ways to
define player styles, other psychosocial models can be used. For
example, Hofstede’s cultural model has four dimensions: power
distance (weak or strong), uncertainty avoidance (weak or strong),
individualism (versus collectivism), and masculinity (versus
feminism) [60]. One could form the basis for analyzing player styles
and preferences using such models.
These models encourage examining player preferences often
based on personality, in a very similar way that culturally relevant
pedagogy theory is used to develop curriculum [72]. These
models move beyond personal biological identities, with gender,
1
5
race, and ethnicity, for example, not given consideration. In a
classroom with learners, however, additional considerations may
need to be made: environment, socioeconomic influences,
instructor abilities and motivation, and more [57]. If seen as a tool
or only one form of several medium used in the classroom, games
should also be contextualized by the instructors. That is, the
instructor is still in control of the the learning process and
interpreting the in-game learning externally provides a method of
instructors integrating this knowledge—which is also referred to
as pedagogical content knowledge [118].
2.3Effect on students
Educational games may produce a number of learning and
psychological effects. These effects may be intended or
unintended. We list the most relevant effects of educational
games, as well as representative measures of these effects:
• Cognitive development. This effect can be summarized by
saying that games may present an opportunity for students to
learn more deeply. For example, according to Bloom’s
taxonomy [14], there are six levels of increasing cognitive
development, or according to the SOLO taxonomy [24], a
student may give responses to a task in five levels. Cognitive
development can be measured by means of different variables,
such as:
– Assessment performance.
– Time necessary to accomplish a task.
– Accuracy in performing a task.
• Affective and motivational effects. This category clusters a
number of subjective phenomena:
– Acceptance. Technology acceptance is a relevant issue in the
area of work and training [36]. Some students (especially
adult learners) may refuse the use of games in education.
– Emotions experienced. There is no universally accepted
classification of emotions. Some authors have proposed a set
1
6
of basic emotions, other being composed of the basic ones.
Thus, Zinck and Newen argue that the four basic emotions
are joy, anger, fear and sadness [134].
– Motivation. According to the theory of self-determination,
there are four classes of motivation towards a subject matter
or activity: intrinsic, extrinsic via identified regulation,
extrinsic via external regulation, and amotivation.
• Transversal skills or competences. In recent years, concern
about these general skills has increased. Some examples are
self-efficacy, communication or leadership skills.
• Behavior change. Computing students may develop
undesirable behaviors, such as cheating or hacking.
Educational games can guide students to consider their
behaviors in their academic and professional development.
Other effects can also be achieved with games but are not directly
relevant to CSE: motor skills (e.g. motor coordination), perceptual
and cognitive effects (e.g. attention, or visual or spatial skills), and
physiological effects (e.g. heart rate).
3. SURVEY
We examined over 100 unique games that have been or are
currently available for use in teaching computing concepts. Each
review consisted of inspecting available documentation and
commentary and, when possible, playing the game. Using this
information, we categorized each game with respect to numerous
pedagogical and game characteristics [5]. These games were
published over the last several decades, ranging from 1982 to
2016. Of the games reviewed, 34 are available commercially, 51 are
freely available, and 15 no longer appear to be available. In this
section, we provide a general summary of the games and a
classification of the games in context of the ACM/IEEE Computer
Science Curricula 2013 [13].
1
7
1Summary of Games for CS Education
With respect to the general computing topics addressed by the
games, just over half (64) focus explicitly on some aspect of
programming. Not surprisingly, within this group, topics typical of
introductory programming classes are addressed by numerous
games: arrays, assignment, data types, debugging, encapsulation,
event handling, expressions, I/O, iteration, modularization, object
orientation, parameters, recursion, selection, sequence, testing,
and variables. There are also more specialized programming-
related games that address artificial intelligence, algorithms,
bottlenecks, ciphers, concurrency, critical thinking, fault tolerance,
instruction sets, interprocessor communication, messaging,
memory access, multiagent systems, problem recognition,
registers, sorting, synchronization, tree traversal, and other topics.
We found that 17 of the games focus primarily on computational
thinking, in the sense defined by Wing [130]. Of the games that
focus on neither programming nor computational thinking, the
topics addressed include artificial intelligence, architecture,
circuits, data types, security, sensors, and systems. As part of the
review process, we attempted to identify specific learning
outcomes addressed by each game through either literature or by
playing the game. Though these details are provided in the online
appendix [5], they could not be summarized in a meaningful way.
We characterized the games in terms of the e-Learning Goals they
claimed or that we inferred based on our experimentation. Using
Clark and Mayer’s cognitive task analysis [32], we identified
“Inform” level goals for almost half of the games (55), “Perform
Procedure Tasks” for more than half (73), and“Perform Strategic
Tasks”for almost half (55). A majority of the games reviewed
specify their targeted demographics in terms of either age group
or educational level. All age levels from 3 to adult and grade levels
from preK to post-graduate are covered. Classifying the games
using the five stages of experience levels, novice, advanced
beginner, competent, proficient, expert, a fair number of games
1
8
state that the target specific levels of prior aptitude, education,
familiarity, or interest in either computing or gaming [42]. 61
(59.8%) targeted novices, 59 (57.8%) targeted advanced
beginners, 23 (22.5%) targeted those competent in computing
concepts, and 2 (2.0%) targeted those proficient in computing
concepts. We found documentation indicating that two of the
games (1.9%) were created to specifically target females.
The games reviewed include representatives of a wide variety of
genres, including action, adventure, arcade, board, dance, MMO
(massively multiplayer online), puzzle, RPG (role playing game),
(turn-based/real-time) strategy. Likewise, the user interface
styles employed vary widely, including command line, drag-and-
drop, first/third person graphical (key-based, mouse-based,
controller-based), and pointand-click. Finally, there is substantial
variety in the game mechanics. For example, many games are
either single player or competitive multiplayer, but some are
cooperative multiplayer. Also, within those games that use drag-
and-drop interfaces, in some cases the objects being manipulated
represent machine instructions, while in others they are
gamespecific actions.
Many of the games reviewed are based on established game
engines, such as Bioware Aurora, Codea, LibGDX, Moai, OpenFL,
Pygame, RPGMaker, Spring engine, XP, Unity, and XNA. Others are
built using identified languages and libraries such as .NET, C, C++,
C#, CSS, Flash, Git SCM, HTML, iOS, Java, Javascript, Logo, Lua, Ruby,
Scratch.
2
0
IS (Intelligent Systems) 4
SF (Systems 3
Fundamentals)
DS (Discrete Structures) 3
PBD (Platform-Based 2
Development)
SP (Social Issues and 1
Professional Practice)
PL (Programming 1
Languages)
Knowledge Area Concepts #
AR (Architecture and Digital Logic and Digital Systems 1
Organization)
Algorithmic Strategies 19
Fundamental Data Structures 10
AL (Algorithms and Complexity) and Algorithms
Advanced Data Structures, 1
Algorithms, and
Machine Level Representation of 2
AR (Architecture and Data
Organization) Assembly Level Machine 1
Organization
CN (Computational Science) Data, Information, and 11
Knowledge
DS (Discrete Structures) Basic Logic 3
GV (Graphics and Visualization) Fundamental Concepts 10
Programming Interactive 3
HCI (Human-Computer
Systems
Interaction)
Foundations 1
Security Policy and Governance 1
IAS (Information Assurance and
Network Security 2
Security)
Threats and Attacks 1
2
1
Cryptography 2
Basic Search Strategies 2
IS (Intelligent Systems)
Fundamental Issues 1
PBD (Platform-Based Game Platforms 1
Development) Web Platforms 1
PL (Programming Languages) Object-Oriented Programming 1
Fundamental Programming 46
SDF (Software Development Concepts
Fundamentals) Algorithms and Design 25
Fundamental Data Structures 3
Tools and Environments 1
Software Project Management 2
SE (Software Engineering) Software Verification and 1
Validation
Software Reliability 1
SF (Systems Fundamentals) Computational Paradigms 3
SP (Social Issues and Security Policies, Laws and 1
Professional Practice) Computer Crimes
Table 3: Games by Category and Area.
Table 2: Number of Games classified in CS knowledge areas.
4. CASE STUDIES
Of the games that were evaluated by the group, we selected and
performed a more rigorous analysis on four: The Foos, Human
Resource Machine, Lightbot, and PicoBot. These games were
chosen to represent well-designed games across a range of
demographics, their quality, and their usefulness in appearing to
meet their stated learning outcomes. We use these games as
2
2
lenses into the array of games for computer science education,
first describing each game using the MDA model and then
comparing and contrasting the four in an effort to gauge how
design elements affect the player’s experience. This review serves
as a backdrop for the next section in which we provide suggested
best practices for designing games for use in computing
education.
4.1 The Foos
The Foos, a commercial game developed by codeSpark [3],
teaches basic programming concepts to students 5-10 years old.
The game is available for iOS and Android. A simplified version
can be played online. This game is endorsed by Code.org as an
activity for the Hour of Code [2].
The Foos presents the player with a series of scenes featuring an
avatar, some obstacles, some bonus rewards, and a final prize. The
player constructs a series of moves her avatar can make in order
to capture the prize. For example, in Figure 2, the avatar must
jump on and off the wooden boxes in order to get the donut. The
green collectibles are bonus rewards the player can collect along
the way to the goal. For this level, the available instructions are
move and jump. After constructing an appropriate sequence of
steps, the player runs her program, which steps through the pro-
2
3
Figure 3: The heads-up display that reports the player’s
achievements in The Foos.
2
4
Figure 4: The avatar executing an assembly program that outputs
the maximum of each input pair.
2
5
progress is marked on the “corporate ladder,” a game screen
shown in Figure 5 that shows a verticallyoriented map of the
game’s levels.
In subsequent levels, new commands are gradually introduced
that allow the employee to accomplish increasingly difficult
operations on the input. Additional commands include jump,
conditional jump, store or retrieve tiles, add or subtract tile
values, increment and decrement tile values, and so on. The final
“boss” is a sort routine.
When a player beats a level, a report is generated by
management. The player’s program is scored using two metrics:
the number of instructions used in the program and the number
of runtime steps required to execute it. This dual scoring reflects
a tension commonly found in software development, in which one
often chooses between minimizing code size and minimizing
execution time. If the scores are below a certain threshold, the
player’s achievement is noted. The game informs the player that
optimizing one metric may produce a suboptimal score for the
other metric. Multiple
2
6
The players of Human Resource Machine are not expected to have
prior programming experience, as the developers state on the
game’s website: “Don’t worry if you’ve never programmed before
- programming is just puzzle solving. If you strip away all the 1’s
and 0’s and scary squiggly brackets, programming is actually
simple, logical, beautiful, and something that anyone can
understand and have fun with!”
They also identify the intended audience as “expert nerds.”
The developers do not discuss particular learning outcomes or
assessment. However, the comments from the game’s reviews on
Steam provide some informal but insightful responses from
players:
• “Due to the fact that there is ’optimization challenges,’ I do get
the feeling I would return to some of the earlier puzzles to
beat/match the best possible.”
• “Everyone will probably enjoy this game for a little while, if you
like solving abstract problems and basic programming you’ll
enjoy it more.”
• “After I finished this, I realised that I’d accidentally learned how
to write efficient assembly-code. Hooray!”
• “If you’re a CS student that hasn’t yet taken an assembly course,
this is a great intro. The assembly language is very conventional
(unlike TIS-100), so many of the skills and strategies you learn
will be directly applicable to, say, MIPS or x86.”
4.3 Lightbot
Lightbot is a game developed by Danny Yaroslavski [4], based on
a game he first built in high school. It is available as an online flash
game or for iOS and Android. The game comes in two versions, one
targeted for players aged 4–8 and one for players age 8 and above.
Lightbot is endorsed by Code.org as an Hour of Code [2] exercise.
The mechanics of this game are very similar to both The Foos and
Human Resource Machine. In this game the player is presented
2
7
with a grid of tiles and a robot, as shown in Figure 6. The player
constructs a sequence of moves to
2
8
impenetrable, as shown in Figure 7. When Picobot visits a cell, it
turns gray. The goal of the game is to have the Picobot visit all of
the white cells, turning them all gray.
The game models a finite state machine. The user defines rules
that dictate the Picobot’s next move and new state based on the
current state and which cells are in the immediate neighborhood.
For example, the rule “0: Nxxx -> W 1” specifies that if Picobot is in
state 0 and only its northern neighbor is barred (blue) and its
other neighbors are free (white), Picobot should move west and
go to state 1. An asterisk can be used as a wildcard. For example,
the rule “1: *S** -> S 1” specifies that if Picobot is in state 1 and
the southern neighbor is open, Picobot should move there and
remain in state 1. This rule effectively moves the Picobot south as
long as south is open.
Like the previous games, Picobotintroduces the player to basic
programming concepts, but using a declarative programming
language. It also provides visual analogy for programming
problems that provides immediate, clear feedback of both success
and failure. The interface also has a textual
2
9
has multiple maps with various levels of difficulty that encourage
players to seek and solve additional challenges.
Picobot is not polished to the same degree as the previous games.
Players enter rules using the keyboard. Its error messages can
often be inscrutable to novice programmers. Picobotdoes not
provide hints or have a builtin tutorial. It is intended to be
introduced in class by the instructor.
4.5Compare and contrast
The four games we reviewed are similar in many ways, but
provide substantially different user experiences. These examples
help illustrate the relationship between mechanics, dynamics, and
aesthetics and how they work together to make a game unique.
4.5.1Aesthetics
From the player’s perspective, a game is an aesthetic experience.
Hunicke, LeBlanc, and Zubek [65] suggest the following taxonomy
for categorizing the user experience:
1. Sensation: Game as sense-pleasure
2. Fantasy: Game as make-believe
3. Narrative: Game as drama
4. Challenge: Game as obstacle course
5. Fellowship: Game as social framework
6. Discovery: Game as uncharted territory
7. Expression: Game as self-discovery
8. Submission: Game as pastime
This list is not meant to be exhaustive and for the purposes of
educational games we can add a ninth experience:
9.Learning: Game as learning tool
These experiences are not mutually exclusive, in fact, games
typically aim to deliver on many of these objectives.
3
0
All four of the games we reviewed provide challenge. In each
case the difficulty of the challenge is targeted to a specific age
group/audience.
The Foos and Human Resource Machine both have a narrative
structure. It is strongest in Human Resource Machine where the
player is likely to empathize with the hapless employee trapped
in the dreary corporate world. In contrast the narrative structure
of The Foos is simple and fun and clearly more appropriate for a
younger audience.
All games provide some sort of sensation. The Foos and Human
Resource Machine use high quality graphics and sound to create a
rich sensation in the player. One can hardly resist being drawn
into the joyous world of The Foos with its fun characters, bright
graphics, fanciful animations, and cheerful sounds. In contrast
Human Resource Machine uses desaturated colors, repetitive and
mechanistic sounds, and mournful characters to convey the
dreariness of the corporate world (and the advantages of
automation). While graphics and sound are often considered
superfluous in learning games, they can greatly enhance the
user’s experience [6]. Based on admittedly anecdotal evidence, all
of our games we reviewed are effective learning tools for their
specific learning objectives and the audiences they target. The
Foos and Human Resource Machine provide a richer user
experience than Lightbot and Picobot. But that is somewhat
essential since they are teaching children programming concepts.
The fun of Lightbot and Picobot is derived largely from solving
difficult puzzles, which is perfectly fine for an older and possibly
captive classroom audience. Who would play if the games weren’t
fun? But that richness is not always easy or inexpensive to achieve.
4.5.3Mechanics
Mechanics are the rules of the game and the actions and controls
available to the player. The first three games have very similar
mechanics; the player drags and drops instructions to creates a
3
1
sequence their avatar follows to achieve some goal. This provides
a good introduction to imperative programming.
Picobot is different than the other three games in that its rules
are defined using a declarative programming language, which
may not be appropriate for classrooms that focus on imperative
programming. But this difference can also be a strength,
particularly an introductory computer science course that aims to
expose students to multiple programming language paradigms.
Human Resource Machine has the most sophisticated scoring
system providing two separate metrics by which a solution can be
evaluated: code size and execution time. Lightbot only focuses on
the first of these metrics but does so with a very hard constraint;
limiting the space to describe a solution effectively limits the
player to efficient solutions. The Foos scoring system is the most
forgiving; even wrong solutions can garner points. This is
appropriate given its young target audience.
4.5.4Summary
We consider each of these games to be fun learning tools for their
intended audiences, and as such each has the potential to be
effective. Games developed by professional designers/developers
with access to considerable resources are going to have greater
polish. But simple games that are designed for specific use in a
classroom can be highly effective in their own right and, therefore,
should be considered as another tool for enhancing learning.
3
2
Figure 8: Hainey’s evaluation framework for games-based learning
evaluation.
3
3
Many games for learning may be used as stand-alone games for
independent learning by the learners; however, providing context
for the learner’s in-game experiences is certainly part of the game-
based learning environment [92]. The manner in which the
instructor integrates the learning experience from games into the
classroom is very important to its effectiveness.
Based on this, integrating the learning into the classroom is an
important aspect of the curriculum design process, and
instructors can liken themselves to the Dungeon Master (DM) in
Dungeon and Dragons. The DM sets up the context for the
dungeon or game. They provide assistance during the game to
clarify any questions and can debrief after the game.
Important Caveats
Though this set of guidelines is not comprehensive, it has the
potential of being overwhelming for someone who has not yet
created games for learning. We recommend researchers new to
this field find one or two areas on which to focus, then expand
those areas as more work is considered.
As previously mentioned, though our initial goal was to provide a
guide for assessing games for efficacy, scope and time prevented
us from engaging in that activity. This should by no means be
taken to imply that this goal is not as worthy. We recognize its
importance and intend to pursue that activity in whole or in part
during the 2017 ITiCSE Working Group.
We note here that beyond knowledge and skills, attitudes and
dispositions are valid reasons for providing games as a learning
tool in CS. Motivation, engagement, happiness, satisfaction, and
perceptions of the field among students across a wide range of
demographics are important aspects of games for CS education. As
educators, the “wisdom of practice” may not be enough for this
new medium, and we may be interested in various levels of proof
that games are effective. A wide range of tools for understanding
effectiveness can and should be used. For example, test scores,
students surveys, quantitative or qualitative research methods,
and/or rigorous evidence (replicated, longitudinal) are all forms
3
4
of data that can be used to determine whether a game may be
effective for a particular group of students.
The next two sections on game development processes and game
design for games for use in CS education are presented in the
context of games for CS education where possible. These two
sections are also enhanced by Section 5.5, which discusses best
practices integrating games into the CS curriculum or a CS
classroom.
3
6
testing, one with users to gain critical feedback on concept builds,
early prototypes, alpha, and beta builds. In this type of test, users
are solicited for feedback on how to improve any part of the
system. The other, quality assurance, is the development team’s
responsibility. This type of test includes the painstaking process
of testing each element within the game (buttons, scene
transitions, scoring, general functionality, and more) as well as
art, animation, and sound.
Figure 10: Sample storyboard for the game Wake Up, Koala!
# Initialize Pygame
pygame.init()
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width,
screen_height))
pygame.display.set_caption("Simple 2D Platformer")
# Colors
BLACK = (0, 0, 0)
clock = pygame.time.Clock()
3
9
player = Player(screen_width // 2, screen_height - 100)
platforms = [
# Game loop
while True:
screen.fill(WHITE)
# Event handling
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
player.update(platforms)
4
0
player.draw(screen)
# Draw platforms
platform.draw(screen)
pygame.display.flip()
clock.tick(60)
python
Copy code
import pygame
# Player Class
class Player(pygame.sprite.Sprite):
super().__init__()
4
1
self.image = pygame.Surface((50, 50)) # Create player as a
50x50 block
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
# Movement variables
self.vel_x = 0
self.vel_y = 0
self.speed = 5
self.gravity = 0.8
self.jump_power = -15
self.on_ground = False
keys = pygame.key.get_pressed()
# Horizontal movement
if keys[pygame.K_LEFT]:
4
2
self.vel_x = -self.speed
elif keys[pygame.K_RIGHT]:
self.vel_x = self.speed
else:
self.vel_x = 0
# Jump
self.vel_y = self.jump_power
self.on_ground = False
# Apply gravity
self.vel_y += self.gravity
# Update position
self.rect.x += self.vel_x
self.rect.y += self.vel_y
self.check_collisions(platforms)
4
3
def check_collisions(self, platforms):
self.on_ground = False
if self.rect.colliderect(platform.rect):
self.rect.bottom = platform.rect.top
self.vel_y = 0
self.on_ground = True
self.rect.top = platform.rect.bottom
self.vel_y = 0
if self.rect.left < 0:
self.rect.left = 0
self.rect.right = 800
if self.rect.top < 0:
self.rect.top = 0
4
4
if self.rect.bottom > 600:
self.rect.bottom = 600
self.vel_y = 0
self.on_ground = True
screen.blit(self.image, self.rect)
python
Copy code
import pygame
# Platform Class
class Platform(pygame.sprite.Sprite):
super().__init__()
self.rect = self.image.get_rect()
self.rect.x = x
4
5
self.rect.y = y
screen.blit(self.image, self.rect)
How It Works:
Assets Folder:
4
6
player.png and background.jpg can be used to replace the
blocky player and background. You can import these images
using pygame.image.load("assets/player.png").
Extensions/Improvements:
Add Collectibles: Place items that the player can collect for
points or power-ups.
CONCLUSION
The Operating System 4 Computer Science (OS4CS) [30] initiative
lists five key challenges for computing education. One of these key
challenges identifies the need for more comprehensive, quality
instructional resources with a call to the community to create
these resources. Games can serve as an important, engaging
instructional resource for many of the reasons defined throughout
this study. However, the community fails to provide
comprehensive and high-quality games. It has also failed in
measuring the effectiveness of games in achieving their stated
educational goals.
4
7
This workgroup study provides a resource for the reader
interested in designing and developing games for computing
education. The high-level summary provides a starting point for
examining important underlying theories about digital game-
based learning, best practices to consider when designing and
developing a game, and relevant educational psychology, all in the
context of computing education. In addition, it defines a set of
games that can be used in computing education, and it identifies
gaps where future games can be developed to enable the creation
of a comprehensive set of resources for the education community.
The second part of this working group study will focus on the
evaluation of games to identify their efficacy. As part of that
process, several new games are currently being created using the
design guidelines provided in this report. These games will add to
the list of games for teaching computing education and provide
analysis of players’ learning.
We encourage the community to consider games that could be
created to make the available games more comprehensive.
We also encourage the community to keep in mind the need for
contextualizing learning and providing the necessary
interpretation of games in the context of computing. Just as we
interpret assignments, required readings, and other subsidiary
materials, our active incorporation of games into our educational
environments is key to achieving the learning that external media
can provide.
7. REFERENCES
[1] BrainHex. http://survey.ihobo.com/BrainHex/. [Online; accessed
29-August-2016].
[2] Code.org. https://code.org/learn. [Online; accessed 29-August-
2016].
[3] codeSpark. http://codespark.org. [Online; accessed 29-August-
2016].
4
8
[4] Developer spotlight: Danny Yaroslavski.
http://www.openfl.org/blog/2014/11/07/ developer-spotlight-
danny-yaroslavski. [Online; accessed 29-August-2016].
[5] Game survey. http://www.twodee.org/forothers/ game survey
iticse2016.csv. [Online; accessed 15-September-2016].
[6] Juice it or lose it. https://youtu.be/Fy0aCDmgnxg. [Online;
accessed 29-August-2016].
[7] Manifesto for agile software development.
http://agilemanifesto.org. [Online; accessed 29-August-2016].
[8] Molleindustria. http://www.gamedefinitions.com/. Accessed:
2016-07-13.
[9] Picobot. https://www.cs.hmc.edu/picobot/. [Online; accessed 29-
August-2016].
[10] Tomorrow corporation. http://tomorrowcorporation.com/.
[Online; accessed 29-August-2016].
[11] Unity3d. https://unity3d.com/. [Online; accessed 29-August-
2016].
[12] E. Aarseth. Computer game studies, year one. Game studies, 1(1):1–
15, 2001.
[13] ACM/IEEE. CS Joint Task Force on Computing
Curricula. 2013. Computer Science Curricula ACM Press and
IEEE Computer Society Press, 2013.
[14] L. W. Anderson, D. R. Krathwohl, P. W. Airasian,
K. A. Cruikshank, R. E. Mayer, P. R. Pintrich,
R. Raths, and M. C. Wittrock, M. C Wittrock. A Taxonomy for
4
9