In this week’s ITConversations show with Matt MacLaurin we discuss Boku, a programming environment in which kids can create their own games.
What inspired Matt to create Boku was the following observation:
If I’m a kid today, looking at the computer, am I going to see it as an art tool, as something that’s there for creative expression? Or am I going to see it as a content channel, really just a television with some interactivity and a whole lot of channels?
He contrasts that with his own early experience of computers:
If you turn on a Commodore Pet, or an Apple II, the first thing you get is the Basic prompt, and it’s really just saying that the computer is a blank slate, and it’s waiting for you to create something in code. That idea that the computer screen is a surface you can paint your ideas on, and then have those ideas come to life in a magical way, that’s what I wanted to recapture.
True, the pendulum is swinging back toward an architecture of participation. Text, audio, and video artifacts are pouring onto the net. But, says Matt, “you can express creative ideas in programming that you can’t really express in any other way.”
Exploring ideas in the realms of gaming and simulation should be as accessible, Matt thinks, as blogging and podcasting have become. So he’s created, in Boku, a programming environment where programs always run, are never incorrect, and are developed by the accretion of actors, of objects, and of rules that govern their interactions.
The roots go back to Logo and Smalltalk, but there’s also a very modern aspect: the system is decentralized and loosely-coupled, behavior is emergent. The robotics examples that Henryk Nielsen demonstrates in this screencast are spiritual cousins to Boku: loosely-coupled systems of independent, rule-governed actors.
If Boku teaches kids to think in these terms, I think they’ll be well prepared not only to create their own interesting games and simulations, but also to negotiate the emerging ecosystem of online services. With the Commodore Pet and the Apple II you were the ruler of the universe. But no more. As programmers who act in a world of loosely-coupled services, we can no longer aspire to total control. Instead we need to learn how to be effective consumers, producers, and — above all — interactive peers.
Boku is also, by the way, fundamentally social.
If you make something that’s cool, not a 4-hour game but just a 15-second interesting visual phenomenon, you give it a name and maybe a tag, and you hit a button, and it goes up into the cloud so other people can pull it down and take it apart. You can’t download a game without getting the source, Boku doesn’t really distinguish between the two. We consider authoring and tweaking to be part of the play.
Matt recalls a conference at which Ray Bradbury spoke, and said that while he was impressed with all the tech, the real problem lay elsewhere.
He held up a blank sheet of paper. What do you do when you’re faced with a blank sheet of paper, and you don’t have an idea? How do you come up with that idea? How do you express it? Our shorthand for that is the blank page problem, and we think about it all the time for Boku. The community is the answer. If you’re stuck, go and surf what others have uploaded today. If you can’t figure out how to make the motorcycle jump over the canyon, go and browse motorcycle and jump, and look, someone else did it. So you pull it down, and of course the code’s built in. It’s obvious I guess, but the Internet as an infrastructure for creative communities to come together — that’s really what it’s all about.
In case you can’t tell, I hugely enjoyed this interview. I hope it will be heard not only by those who care specifically about game programming but also by those broadly interested in creativity, education, and commons-based peer production.
Scratch from MIT (http://scratch.mit.edu) is substantially similar – including the “always correct” and social aspects. It includes logo-like behavior (pen), sprite-based animations, some event-processing, etc. My 9-year-old daughter absolutely loves it – thinks up creative ways of doing things within the constraints of a fairly simple environment. My son preferred the flexibility of GameMaker – which is more powerful, a bit more difficult. But Scratch has the sharing/social aspects, is easier to use – has an animation bent, and best of all, it’s available right now, and you can even buy a sensor board.
We lost a whole generation of programmers to the consoles; when I was first around computers, the 8-bit machines were cheap enough for the home and had both the games and the programming environment. BI (Before Internet – or mass availability of the Internet), instead of downloading, you typed in BASIC code published in the magazines to build games. PCs had more power but while they were too expensive for many homes, consoles snuck in, with no programming at all. I’m seeing a drive towards codeless coding for gaming and casual online users and business users; it’s going to be interesting to see if this turns into a major trend.
But the blank page… I know most writers get their ideas from a little shop in Poughkeepsie and personally I get a lot of the inspiration for getting started on writing from external sources, but I hope we keep the valuable side of looking at a sheet of blank paper and being forced to create from within.
And can I quote Raymond Chandler? Writing is easy; you just look at a sheet of blank paper until your forehead bleeds.
Interesting post, i have bookmarked your site for future referrence :)
Somehow the attitude of how computers are perceived is already changed. In the past the computer was your partner. I.e. you communicated with the computer – you gave tasks, it did the tasks. Nowadays kids perceive the computer as a tool or as a gateway to receive and send content/entertainment. It is like a telephone – when you use it you do not think about the telephone itself, instead you are focused on the other side of the “wire”. These are just my two cents on the topic.
And another two cents: what makes me feel bad about all this computer revolution is that things are not compatible. If a person takes a 100 years old book, (s)he will be able to use it. If this person takes 20 years old computer, most likely (s)he will not be able to do anything.