This summer, I’m working with Matt MacLaurin at Microsoft Research on Kodu Game Lab. For those of you who aren’t familiar, Kodu is an environment for people with no programming experience to quickly create games. Its visual programming language is designed to be intuitively understandable and its library of characters and objects facilitate rapid game development. If you’re interested in checking it out yourself, it’s currently available for the very reasonable price of $5 through X-Box Live Arcade.
One of my goals for the summer is to introduce some interesting AI features to the characters of Kodu. Among those features is learning. We want Kodu characters to be able to adapt their behavior based on their experiences.
I’m hoping that this will introduce Kodu users to artificial intelligence techniques, but will also inspire innovative game design within Kodu. After giving it some thought, I realized that games rarely feature something as unpredictable and adaptive as learning. Generally, game rules are fairly rigid and finely tuned. Adding learning to such a system can take it in directions game designers never anticipated, which threatens the carefully planned mechanics. Even in games where learning seems like an obviously good feature, such as strategy games, it is rarely implemented.
I personally believe that adding features like learning to a game system has a lot of potential, and really allows computer games to shine in a way that analog games can’t. I have a few game concepts in mind that would take advantage of the new features, but I’m very eager to see what creative ideas the blossoming Kodu community develops. Do you have any ideas for games that feature learning as a central mechanic? What type of learning would be useful for such games?
One final thought: one of the biggest challenges for introducing learning is making it accessible to people, especially those without extensive technical backgrounds. As I mentioned above, learning can often result in completely unexpected and unintuitive behaviors developing, which can be fun and exciting, but can also be terribly frustrating. I want to make sure that any learning features in Kodu improve a designer’s power and enjoyment of the game lab. Currently, my best solution to this issue is for learning only to generalize existing behaviors to new stimuli. Does anyone else have any suggestions or ideas related to making learning accessible and useful for inexperienced programmers?
About the author: Teale is a PhD student hailing from Fairbanks, Alaska. His interests include content generation, artificial life, and educational games.