Sunday, October 26, 2008

The Next Level of Open-Source

On the subject of games with a purpose, a game that came to mind was light-Bot. This game applies basic computer programming principles as a part of gameplay in such a way that it teaches basic concepts of functional programming. It also helps teach problem solving skills that a programmer might need to tackle certain problems, such as a limited amount of memory, or a limited instruction set. Like the Logo programming language developed by Papert, this game can help teach people programming through the game.

Following in that example, I propose an idea for a "game with a purpose" (GWAP) that uses a game to create computer programs. Similar to light-Bot, the player controls a Turing machine through a set of instructions that they can input. Levels can be designed so that solving them generates the code needed to do the task. For example, the player might be able to generate a sorting algorithm given some kind of swap and comparator function and the ability traverse the array of elements. This might aestetically take on the form of lining up people for taking a picture, or making sure each of the bears in Goldilocks and the Three Bears gets the correct size bed.

As the player advances to higher levels of difficulty, they might be able to get to higher levels of abstraction, making use of other player's algorithms that had been created before, like the swap function mentioned before. As players complete levels, they are scored on efficiency and speed, with the top algorithms being chosen for the "final" program.

Although this idea is heavily dependent on the "level-design" and the structuring of the problems, it brings new insight and perspective into certain problems that normally might not be there. It can expose these problems in an accessible way to those outside of the field of computer science, math, or other hard sciences. This also allows computer science to really separate itself from the notion that computer science is about computers as much as astronomy is about telescopes.

No comments: