Technical wizardry

New game that teaches kids Java is actually fun

Elliot Bentley

Developed by a trio of academics, CodeSpells challenges kids to write magical ‘spells’ in Java – to apparent success.


Getting kids – particularly girls – interested in
programming from a young age is one of the industry’s greatest
challenges, but a new fantasy-themed video game developed by
researchers at the University of California, San Diego, may have
cracked it.

casts players in a colourful fantasy world which can be interacted
with using ‘spells’ written in Java. When the game was tested on a
group of 40 girls aged 10-12 years old, over half asked if they
take a copy home.

Outlined in a paper titled
“On the Nature of Fires and How to Spark Them When You’re Not
[PDF], the experiment was so successful that “students
expressed disappointment that it was ‘over so soon’”.

CodeSpells is far from the first game designed to
introduce players to basic programming concepts, but few have
managed to achieve widespread popularity. Indeed, the researchers
note in their paper that many educational games are described as
“chocolate-covered broccoli”.

More recently, sites such as Codecademy have combined
highly structured, interactive tutorials with game-like scores and
achievements, to some success. However, the UCSD researchers
suggested that a less restrictive approach might be more effective
in “sparking a flame” in students.

Over a series of interviews with seasoned programmers,
the researchers highlighted five recurring qualities common among
“origin stories”: self-structured activity, exploration,
empowerment, difficulty stopping and investment of “countless

While the full version of CodeSpells – currently under
development by the same researchers – usually provides a series of
quests for players to carry out, these were removed in order to
emphasise self-structured activity and exploration.

The authors noted that, for the young test subjects
wanting to carry on playing once their hour was up, “the simple
directive to ‘do interesting things’ was sufficient”.

Even more impressively, CodeSpells doesn’t present a
“kid-friendly” Scratch-like
syntax, either. A spell to set an object on fire is written in the
game’s custom Java API like so:


import june.*;

public class Flame extends Spell
  public void cast()
    Enchanted target = getTarget();


A stable version game is
said to be close to release
, free on both PC and Mac (a beta,
Mac-only version is already
available to download
), with a competitive multiplayer version
is also in development.

In the meantime, the authors say they are carrying out another,
longer test: a six-week study to determine whether CodeSpells can
maintain kids’ attentions long enough to get them truly hooked on

comments powered by Disqus