Scratch is a programming language developed by Mitchel Resnick’s research group at MIT Media Lab. Scratch “makes it easy to create your own interactive stories, animations, games, music, and art — and share your creations on the web.” Scratch was designed for youngsters, to encourage them to build applications and games without having to learn the ins and outs of conventional programming languages.
Scratch programmers use their mouse to snap together blocks to form “stacks”. The stacks embed actions. For instance, some blocks allow players to control characters via keystrokes. Programmers sequence their blocks to create animations and games. Let’s consider how the concepts behind Scratch could be applied to 3D virtual worlds.
Virtual World Evolution
Previously, I wrote about the evolution of virtual worlds from self-expression to marketing to monetization. With the concepts behind Scratch, however, I wonder whether a similar framework for 3D virtual worlds can re-ignite the Self-Expression stage.
Wider Adoption via Easier Development Tools
Scratch was created to empower youngsters by making it easier to build computer applications. A similar approach may be needed to empower creators of 3D virtual worlds. Let’s face it, creating a virtual world is not easy – it requires specialized skills. Those who can afford it (e.g. corporations) often outsource 3D virtual world creation to agencies or development shops.
What results is a classic “chicken and egg” problem – the barrier for creation results in less supply (e.g. fewer interesting 3D worlds), which depresses demand (e.g. less people interested in visiting virtual worlds), which keeps the supply low (e.g. less interest to create them, since no one will visit).
This phenomenon may explain why IMVU is thriving, while other services (e.g. There.com, Google Lively, Vivaty) have folded. IMVU brings the world to you – that is, the self-expression is focused around your avatar, rather than building worlds. It’s easy to customize your avatar – and, if you’re so inclined, you can design virtual clothing and accessories, that are then made available to other users within IMVU.
Importance of Feedback Mechanisms
Scratch has two feedback mechanisms that are central to its success. First, users can see the result of their work (in real-time) as they’re building the application. The conventional cycle of computer programming is “code, run, debug” – with Scratch, you don’t debug, so much as you adjust your application as you go.
The second feedback mechanism comes from the Scratch community. Users can upload their application and have others post comments and suggestions. This gives programmers the positive reinforcement behind their work (e.g. there’s an audience for my creation), which creates more incentives to create more applications and be part of an active community.
Both mechanisms could be effective in 3D virtual world creation. The community aspect, in fact, addresses the chicken and egg problem, as the developers create an audience for each other – and can encourage their network of friends and colleagues to visit virtual worlds that they’ve found and reviewed.
Open Sourcing, Sharing and Remixing
The name “Scratch” is derived from the way disc jockeys scratch records to re-mix existing songs into new creations. Community members can view the code for any uploaded Scratch application and are free to re-mix and modify existing applications.
This is a tried and true way to learn computer programming – take someone’s existing program, study the source code, then add some pieces to it. Once you’ve done that a few times, you’re ready to write your own program from scratch (pun intended).
Sharing and re-mixing makes it easier to get started, will encourage wider adoption and is sure to generate interesting creations. Imagine if a similar framework existed for 3D virtual worlds.
One of the prominent barriers to 3D virtual world adoption is the lack of easy creation tools. Let’s learn from what MIT Media Lab has created with Scratch and see if we can apply their concepts to 3D virtual worlds. How about it?