Kodu Game Lab
Description
Matthew MacLaurin joined Microsoft Research in Redmond, and set out to answer one question in particular: could a child who had never programmed before create a working video game without a single line of code? The answer he built was Kodu — a 3D game creation environment where everything from behavior of characters to terrain and game rules happened via visual menus and tile-based programming, with no text syntax to memorize, and no error messages to decode.
Kodu was released on the Xbox 360 via Xbox Live Indie Games in April 2009 and on Windows via the Microsoft Download Center in July 2009 by Microsoft Research. Schools picked it up immediately as an accessible way to introduce programming concepts to middle school students. The tool taught conditionals, loops, variables and event-driven logic through the process of building something playable instead of abstract syntax exercises.
ORIGINS AND DEVELOPMENT
MacLaurin designed Kodu with the limitations of a game controller in mind, and this influenced the entire interface. Every programming action required to work without a keyboard, navigable entirely through directional inputs and a few buttons. That constraint drove the design to visual, tile-based programming with menu hierarchies instead of text entry — a constraint that proved to be an advantage in terms of accessibility. Students on touchscreens, students with physical limitations which made typing difficult, and young students who hadn’t developed fluent typing skills could all use Kodu without accommodation.
Microsoft Research made Kodu a free download and worked with school districts to distribute Kodu as a Computer Science education tool. The KoduCup competition, which ran from 2009 through the mid-2010s and was run by Microsoft, invited students to submit original games in Kodu to be evaluated, creating a community around the software, with rewards for the quality of the game design as well as the programming skill.
After the initial Microsoft Research phase, there was less active development, but the software was still available and maintained on a lower level. The Windows version continued to receive updates for compatibility with the latest versions of Windows through the 2020s.
KEY FEATURES
Tile-Based Visual Programming
Kodu programs have a rule system based on rows: each rule is made up of a “When” condition tile and a “Do” action tile. A rule could be: When see Apple – Do Eat. Multiple rules are used to stack and form behavior logic. Conditions include sensing objects nearby, sensing player input, sensing scores or responding to timers. Actions include movement, combat, scoring, playing sounds and spawning new objects. The tile system is a representation of the same conditional and action structures that text-based programming uses, but expressed using visual selectors instead of typed code.
3D World Building
The world editor sculpts terrain by painting hills and valleys onto a flat surface by using brush-based raising, lowering, smoothing, and flattening tools. Water fills low areas automatically. A tree and object placement tool randomizes the placement of objects on the landscape. The terrain supports multiple biome types such as grass, dirt, snow and sand with corresponding visual styles. Players can walk around the completed world in first or third person view during the testing process.
Character Customization
Kodu characters — in addition to the default round robot character Kodu, additional characters such as Cycle (a motorcycle), Sputnik, etc. — have customizable sizes, speeds, and physical properties. Each character has its own independent program so a game can have an AI enemy character with its own sensing and movement behavior and a player-controlled character responding to controller input, each running its own separate sets of rules.
Game Camera Controls
Multiple camera modes allow creators to define how the player perceives the world: follow – behind a character, fixed overhead, first person inside a character, or free-floating. The camera tracks the player character or an independent point in the world according to the configuration of the creator.
Score System
Scoring is based on colored types of scores — red, blue, green, etc — so that several competing scores or resource counts are running at once in a single game. Rules can check score values as conditions, allowing win conditions, enabling behaviors at score conditions, and comparative logic between two player’s score.
Multiplayer
Games made in Kodu support local multi-player for two players on the same machine. Individual player characters have separate input-responsive programs, and score counting is individual to each player.
Share and Download
The Kodu community site had a game library where creators could upload completed games and download games created by others. The community library expanded a catalog of student and hobbyist games for genres such as racing, maze, and action.