Kodu, short for Kodu Game Lab, was created in 2009 by researchers at Microsoft’s FUSE Labs, led by Matthew MacLaurin and James MacLennan. Kodu is a visual programming language and environment designed for creating games and interactive simulations, particularly aimed at education and novice programmers. It is used in classrooms, educational programs, and hobbyist projects. Developers and learners can access Kodu through the official Kodu Game Lab, which provides the development environment for Windows platforms.

Kodu exists to provide an intuitive, visual approach to programming and game design. Its design philosophy emphasizes simplicity, creativity, and immediate feedback. By using a tile-based visual interface where rules and behaviors are assigned to characters and objects, Kodu solves the problem of teaching programming concepts without syntax errors, allowing users to focus on logic, storytelling, and interactive design.

Kodu: Tiles and Rule-Based Programming

Kodu programs are created using tiles, which represent actions, conditions, and controls. Users combine these tiles to define game logic for characters and objects.

-- Conceptual Kodu rule
WHEN see apple
DO move towards apple
DO eat apple

Tiles encapsulate event-condition-action relationships, making programming visually intuitive. This concept is similar to block-based programming in Scratch or behavior rules in Lua game engines.

Kodu: Worlds and Objects

Kodu environments, called worlds, consist of landscapes, objects, and interactive characters. Each object can have properties, sensors, and behaviors assigned.

-- Conceptual world setup
Place terrain: hills
Place object: apple at (5,10)
Place character: player at (0,0)

Objects interact according to assigned rules, allowing simulation of game mechanics and environmental responses. This is conceptually similar to object-oriented interactions in Lua or actors in Simulink simulations.

Kodu: Conditions and Actions

Kodu allows defining conditions that trigger actions based on events in the world.

-- Conceptual conditional example
WHEN player near apple
DO collect apple
DO increase score by 1

Conditions and actions provide event-driven programming in a visual form, similar to rule-based programming in KRL or sensor-triggered behaviors in Lua games.

Kodu: Loops and Timed Events

Kodu supports loops, counters, and timed events for repeated actions or scheduling behaviors.

-- Conceptual loop example
EVERY 10 seconds
DO spawn enemy at random location

Timed and repeated actions enable dynamic gameplay mechanics. This concept is similar to timed loops in Lua or event scheduling in KRL.

Kodu is widely used in education, game prototyping, and hobbyist projects to teach programming, logic, and creative problem-solving. Its tile-based, rule-driven environment, visual world-building, and interactive objects allow learners to rapidly create games and simulations. When combined with Scratch, Lua, and Simulink, Kodu provides an engaging platform for learning programming concepts through visual and interactive experiences.