In the beginning

Hello, I'm Adam Gashlin. I am working to design games that explore powerful ideas in computation and programming. What exactly does that mean? That is the topic of this blog. I hope that by organizing my thoughts into blog-post-sized articles I can make some progress towards concrete designs.

I first started down this path in April 2008. I had been interested for some time in developing a programming language and environment that could be used on systems with very limited input schemes, such as the digital audio players that Rockbox runs on. I was calling this LITHIC (Limited Input Toy/Tiny Hardware Instruction Code), but I had not gotten to the point of implementing anything. I was concerned with finding an efficient means of entering identifiers with so few buttons, though it seemed that a combination of a T9 system and syntax awareness would be helpful.

This collided with a train of thought about video games with magic spells as programs. I realized that a LITHIC would work well on a video game controller, and that a game would be a fascinating way to teach someone how to use an unusual interface and language. As I was nearing the end of my undergraduate studies, I had also been thinking about the possibility of teaching Computer Science. I attended college part time that last semester, and as I was driving home everything came together. When I got home that night I explained it as follows to friends on IRC:

A game that teaches programming. Written in the same language in which solutions are devised, in later levels finding flaws in the structure of the game itself might become important.

This concept has remained very consistent over the years, though I have questioned every part of it. Embarrassingly, despite my confidence that games are uniquely well suited to communicating programming concepts, I have not yet implemented a prototype to explore and test these ideas. Hopefully as I pull things together for this blog I will find the concentration to assemble some demonstrations.