Kicking it with Lindsey Handley
Teaching with Magic (and Code)
As young people finish school and try to advance in their careers, it starts to become apparent that basic computer knowledge isn't enough anymore the way it used to be. In order to get far in just about any field, you have to learn how programs work - how they talk. And that can be boring or even difficult for some. Right now my roommate, someone with practically a master's in biology, is going through an online course to learn some computer programming skills to help advance her career. While she seems to be getting it, the sounds of her frustration echo through the apartment whenever there is a homework assignment due and her program isn't working right.
And imagine having to learn different programming languages without the possible reward of a promotion or a raise, or the idea that you may get into a field that you're interested in waiting at the end of the course. I took a programming class or two in high school, and while I went in there interested about the subject, by the end of the semester, I was more than done with it. It is not nearly as exciting as movies make it out to be.
That is where "CodeSpells" comes in. In "CopeSpells," brought to us by developer ThoughtSTEM, you control wizard character in an open sand-box world. You don't just push a button or click the mouse to shoot a spell, though. You have to code it.
Using a drag-and-drop Javascript editor (Blockly), players figure out how puzzle together the different programming building blocks that the game provides in order to create the spell effect. And because it is actual computer code, the possibilities for spells are almost limitless - especially considering the fundamental parts of the game's magic are the elements: water, fire, earth, air and (eventually) life. "CodeSpells" turns learning how to program into a literal game, where you have the ability to dive into the magic of computer code (literally), and alter the environment in just about any way that you can imagine. With the gorgeous environments and a realistic physics engine, creating that perfect spell should be very satisfying. Once you turn off the game, you'll be surprised to see how learning how to code for different spells in a game translates into real life skills.
"CodeSpells" is on Kickstarter right now and already more than halfway to their goal. Player Theory received the chance to talk to Lindsey Handley, co-founder of ThoughtStem, about their new game.
Player Theory: "CodeSpells" has only been active on Kickstarter for a few days, and it's already reached it halfway point for funding. That is a phenomenal start. How has your experience with Kickstarter been so far? Have you gotten much feedback from backers yet regarding "CodeSpells?"
Lindsey Handley: Our experience with Kickstarter has been phenomenal! We've had tons of support from family, friends, fellow educators, programmers, gamers, and parents who want their kids to learn how to code. We've gotten extremely positive feedback from backers. All of our backers are very interested in helping us make the game as fun as possible. Everyone seems to share our vision for a sandbox world where you can cast any magical spell you can imagine because you have a powerful tool - code.
PT: In the Kickstarter video, there is some talk about how you successfully used an early version of "CodeSpells" in a lab setting to educate children about code. Can you tell me a little about how "CodeSpells" has changed since that study?
LH: "CodeSpells" has undergone a monumental shift in philosophy from the previous version. The original developers of "CodeSpells," Sarah Esper, and Stephen Foster, were primarily interested in creating a game that guided kids through the process of learning how to code. In 2011-2013, "CodeSpells" was a game where students went around the world and performed quests for little gnome people. The quests involved programming challenges where students had to code in Java to solve a problem in the world. The graphics were not at all impressive, because Sarah and Stephen are not artists. In fact, the gnomes were pretty terrifying looking. (Interesting side note: kids loved the gnomes! But whenever an adult saw they game, they thought the gnomes looked terrifying.)
Today, we realize that the only way we're really going to teach kids around the world how to code is by making an incredibly fun game where coding is seamlessly woven into the gameplay. The new "CodeSpells" looks like a game that is fun to play! We have an fantastic environment artist who creates amazing scenes and characters that look both magical and natural. Our new lead developer has embedded a new spell editor with a visual programming language that makes it easier for beginners to dig right into spell-crafting. He's also implemented typed Javascript so that experienced coders can type their spells rather than drag-and-drop. There's an entire physics system in the game that didn't exist before that makes interacting with the world way more fun. The entire spell-casting system has been re-worked so that it is more intuitive for the player. Essentially, we're trying to keep everything that was "good" about our research studies and make a game that is more playable and more fun!
PT:As I understand it, "CodeSpells" was developed to be less of a game, and more of a system to making learning a boring and difficult subject much more interesting and rewarding (and the players can make a game from that). Ideally, how would you like to see "CodeSpells" used in an educational setting? Which age group do you believe would be the best to start using "CodeSpells" with?
LH : We'd love to see teachers using "CodeSpells." We are very interested in putting together a curriculum so that teachers can teach coding through "CodeSpells." ThoughtSTEM has created curriculum around Scratch, App Inventor, and "Minecraft" in the past, and "CodeSpells" would be a logical next step. The beauty of "CodeSpells" is that it resonates with a very large audience - our elementary school students love it, but adult programmers and gamers love it, too. So honestly, any age group could start using "CodeSpells." We'd love to see elementary schools start using "CodeSpells" (to inspire kids while they're young and impressionable), but middle school and high school students should use it too!
PT: Can you tell us a bit about how children seemed to respond to "CodeSpells?" Did they take to it quickly, or was there a steep learning curve to overcome first? Was it hard to pry them away at the end of the study/lesson?
LH: Children, as young as eight years old, respond to "CodeSpells" very positively. We have taught over a hundred 8- to 11-year olds using "CodeSpells" with instructors who have no prior programming experience. Students are engaged and excited to play the game, and learn the coding through our motivators such as badges and quests. They immediately seemed to know what they should do, understanding that it truly is a game, this helped them when they got stuck on coding errors too, because they would persist through the tough challenges in order to earn their badges. Precision was a difficult aspect of "CodeSpells" in the beginning, students needing to realize that if they wanted an object to "jump" that meant telling it to move up, then down, not just "jump." However they quickly learned this (within the first hour of gameplay) and were on their way to writing larger spells quickly. It was always hard to pry them away; the students were really excited to hear that it would be a video game that they could play at home in the future. Every time we came into the classroom it was a cheering frenzy, which made it very exciting.
PT: More advanced programmers that want to enjoy "CodeSpells" might feel hindered by the Blockly interface that the game uses for Javascript. Will there be a way to switch to a non-visual code editor or use another editor entirely? Is it possible for "CodeSpells" to use different programming languages in the future?
LH: Yes! Players will be able to switch back and forth between Blockly and typed Javascript. We very well might offer other languages in the future, but we haven't officially decided on any particular language to introduce after Javascript. Stay tuned!
PT: While creating a spell, if someone puts together a piece of code that simply does not work, will they be notified about it or will the spell just not work? Will there be consequences at all for putting together bad code?
LH: We'll definitely display errors to the player. Seeing what's wrong with your code is a huge part of learning to program, and we want that to be super clear. At the same time, we want to make it hard to create broken code so that most of the learning comes from exploration and not from reading piles of red text.
PT: On the subject of consequences, if a player makes a spell that would harm themselves (e.g., causing a rock to fly straight at them at high speeds) will they be knocked out/eliminated from the game? Or are the wizards in the game immune to damage like that?
LH: We're still playing around with balancing these types of scenarios. In all honesty, it will most likely be something decided by a given game mode. In a game about eliminating others, sometimes it may even be unclear who threw the rock -- if you and someone else were nudging the same rock with spells and the effect is that it hits you, how does that get resolved? Regardless, if you do eliminate yourself, it will be clear why and how it happened.
PT: You're covering the four main elements - earth, fire, wind and water. However, if you meet the stretch goal of $150k, you'll include "life." How will that look in game? Will it be about creating new animals or plants, controlling them? If I was a wizard specializing in life and I wanted to defend my in-game home against a rival fire wizard, how might I do that with the life element?
LH: We plan to have flora and fauna all around the "CodeSpells" world that players can observe. Through observation of these plants and animals, players will unlock new Life magic spells (code) that they can use to control living things. For example, if you observe a small creature guarding its young from predators, you might achieve the "guard" spell. Now you have the code you need to make a woodland creature guard you from foes.
PT: One of the really neat things about "CodeSpells" is the possibility for a ton of different games that players can play using this system. Is there a game type that you think will be very successful?
LH: It's really hard to predict what sorts of games players will dream up! But if I had to guess, I would say that competitive minigames that involve wizards laying traps for each other or trying to defeat each other with magic will become the most popular. So far, our backers are really excited about this idea of laying and defeating traps.
PT: I'm assuming you've played the game a little bit. What is your favorite element to work with? What was the first spell you ever made in "CodeSpells," and how does that compare to whatever you consider to be your "best" spell (after playing the game for a little bit)?
LH: Earth magic is the farthest along of the elements, so it's the one we've gotten the most interesting spells out of. The simplest spell that we made was the Push spell that just moves away from the player and grabs anything it hits to take with it. Probably the most interesting spell we've created so far is a combination of spells to build a rock creature composed of several rocks, including a rolling boulder as a base and able to take directions on where to go, destroying everything along its path.
PT: In 2012, there was another Kickstarter project called "Code Hero" which attempted to educate people about coding in a video game setting. After meeting their goal, the project was hit with a bunch of funding problems and the developer disappeared, leaving a lot of backers without anything to show for their investment and a bad taste in their mouths. Are you worried that this kind of black mark will affect backers' faith in your project? Is there anything you'd want to say to alleviate their fears?
LH: When we were putting together our Kickstarter, we did a lot of research about what went wrong with "Code Hero." We knew people would ask us why they should trust us when "Code Hero" was such a failure. The "Code Hero" team was a group of students with little to lose by not following through on their Kickstarter campaign goals. ThoughtSTEM, on the other hand, is an established company with customers who depend on us to follow through on our promises. We wouldn't put together a Kickstarter campaign if we didn't believe 100 percent that we could create a finished product. Throughout our campaign, we are striving to make it clear that we are a group of young professionals with the skills and motivation to create an amazing tool for teaching coding.
PT: Looking at the major elements in the game again, would you say that ThoughtSTEM has more "Captain Planet" fans or more "Avatar" fans?
LH: We have more "Avatar" fans for sure! Our lead developer is actually a big "Avatar" fan, and I think this may influence the development!
The Kickstarter for "CodeSpells" is going on right now, and will continue until Oct. 4. If you back now, for ten dollars, you can get yourself a copy of the game upon release. There is a long wait for the actual product, though; ThoughtStem hopes to have a playable version out by Fall 2015.