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.

CodeSpells 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 There” [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 hours”.

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 programming.

Inline Feedbacks
View all comments