A few years ago, my group (opens in new tab) in Microsoft’s research organization began to experiment with tools that make it possible for kids to learn how to code in the context of Minecraft (opens in new tab), the wildly popular game where players build fantastical virtual worlds out of digital blocks, create and play mini-games within the game, and learn to survive monster-filled nights.
Confused? That’s okay. Many grownups don’t understand Minecraft. Even if they think they do, they don’t. That no rules, open-world environment is all part of its appeal. Our goal is to leverage this enthusiasm to teach kids how to code while playing Minecraft. After all, game playing is the most natural way for humans to learn.
The research is an outgrowth of our TouchDevelop (opens in new tab) program, which we started in 2011 to teach people how to program and build apps using the touchscreen on their phones. These devices are much more powerful, graphic and sensor rich computers than those we learned to code on as kids. Our TouchDevelop group wanted anyone to be able to program their phones as easily as we did 8-bit computers.
Then Minecraft emerged as the game people everywhere were playing and we found ourselves wanting to code inside Minecraft, too. The rest, as they say, is history.
Students in my after-school computer science classes lucky enough to tinker with coding in Minecraft went nutso crazy, in a good way. The ability to write code and immediately see the results in Minecraft, such as avatars that can jump 100 blocks high, dig through mountains and make it rain chickens, sent my students running around the classroom from screen to screen to see what their classmates did and shouting the IP addresses of their servers across the room.
Today, our Microsoft Research and Microsoft MakeCode (opens in new tab) teams are excited to make this learning experience widely available through Microsoft MakeCode for Minecraft on Windows 10 (opens in new tab).
The MakeCode for Minecraft (opens in new tab) editor has the pixelated look and feel of Minecraft. MakeCode allows coding with visual blocks, based on a drag and drop interface for beginners, as well as in text with a JavaScript interface for the more experienced learners.
Coding with blocks or text, MakeCode teaches the 101 of programming languages, including variables, control flow, if statements, loops and functions. More advanced users smoothly ramp up to more complex concepts such as recursion, fractals and object oriented or distributed programming.
The Microsoft MakeCode team also works on other editors that allow the programming of physical things such as micro-controllers including the micro:bit (opens in new tab) and Adafruit Circuit Playground Express (opens in new tab). In all these scenarios, the coding is directly linked to building something real, which is the primary reason most computer programmers learn to code in the first place.
Instead of thinking they are coding, students are playing a game, they are building their next superpower. Minecraft is a game. MakeCode for Minecraft (opens in new tab) fits the coding experience into the game itself. Check it out.
Related:
- Minecraft: Beyond just building (opens in new tab)
- Microsoft MakeCode for Minecraft on Windows 10 (opens in new tab)
- MakeCode for Minecraft (opens in new tab)
- Microsoft MakeCode (opens in new tab)
- Microsoft TouchDevelop (opens in new tab)
- Research in Software Engineering (RiSE) (opens in new tab)
- Project Malmo, which lets researchers use Minecraft for AI research, makes public debut (opens in new tab)