E-4: Virtual Worlds
Harvard Extension School
Mondays 7:35-9:35pm EST, Fall 2007
Berkman Center Conference Room and Live Webcast on Berkman Island
Instructor: Rebecca Nesson

Assignment 5 -- Scratch + SL Object Creation

Total Points: 100
Due Date: October 29, 12:00 noon EST

The Scratch part of this problem set is adapted from the Scratch problem set used in CSCI S-1 and CSCI S-111a by instructors Henry Leitner and David Malan. I take full responsibility for all errors in it (and any pain and suffering caused to my students while doing it!)

A Little More Scratch

30 points

Perhaps as important as an ability to write one’s own code is an ability to understand another programmer’s code (or your own code months after you wrote it!). Quite simply, the more readable your code is, the more maintainable it is by others (and you). For this problem, not only will you take Scratch out for one more spin, you’ll also experience what it’s like to work with another programmer’s code.

Here’s what we want you to do: either introduce yourself to another student in this class (either in RL or in SL), and have him or her show you their Scratch project (their firstname_lastname.scratch). You can, of course, have them explain to you any details of the code to help you understand how their project works. Alternatively, simply download one of your classmate's projects from the course's gallery at http://scratch.mit.edu/galleries/5368.

Your task is to implement “version 2.0” of your classmate’s project, saving your version of the project as theirlastname-yourlastname.scratch, where theirlastname is your fellow student’s last name and yourlastname is your last name.

Perhaps you’d like to change how it works. Perhaps you’d like to enhance it with new features. Perhaps you’d simply like to make it better, fixing any bugs along the way. Whatever your goal, your job for this problem is simply to build upon the work of another student. We expect, quite simply, that your final product will be on the order of 50% different from your fellow student’s original version. In other words, it should be quite clear to the staff that you did more than change a few puzzle pieces. If you suspect your version might fall short of our expectations, feel free to ask us for our opinion prior to submitting.

If, after making friends with someone in the class, you find that you would rather not modify his or her project, feel free to introduce yourself to someone else and work on their Scratch project.

  • Once you are done modifying the project, "Share" it/upload it to your Scratch account, and add it to the class gallery at http://scratch.mit.edu/galleries/5368.
  • Write a few paragraphs explaining precisely what changes did you make to your fellow student’s project and why.

Second Life Object Creation

60 points

The idea of code as law becomes a lot more concrete (virtually, that is...) in the world of Second Life. Here you can create objects that behave in certain ways. The code of those objects dictates how avatars in Second Life can interact with them. Now that you've got a little programming experience under your belt, it's time to try applying it in the Second Life context.

This week you had a tutorial on creating objects in Second Life. Use what you learned in that tutorial to build an original object of your own choosing. Your object should:

  1. Have a meaningful name that includes your avatar name so we can find it in our inventories.
  2. Contain at least 3 primitive shapes
  3. Use at least 2 different textures or colors
  4. Have at least 1 behavior, such as responding to avatars coming near it, responding to a voice command, responding to being touched, etc.
  5. Your object should be somewhat more complex than the simple, short examples that we created in our tutorial.

Feel free to look around in SL for editable objects that you can use for inspiration, but your own project should not be terribly similar to any of them. Try to think of an idea on your own, and then set out to implement it. If, along the way, you find it too difficult to implement some feature, try not to fret: alter your design or work around the problem. If you set out to implement an idea you find fun, you should not find it hard to satisfy this problem’s requirements.

Many of the avatars who spend a lot of time in the Berkman Sandbox on Berkman Island are very experienced builders and friendly people. They can be a good resource for ideas and help. However, they are not paid staff so please be respectful of them and their time. There are also others in the Berkman Sandbox from time to time who may not be so friendly -- if you encounter such an avatar, don't sweat it just move on.

There are lots of free building classes all over SL. They vary greatly in their level and their quality. If you feel that you need more help learning to build you can try out some of these classes. You may find the people and the help available at Dreams to be useful.

If you suspect your object might fall short of our expectations, feel free to ask for our opinion prior to submitting. All right, off you go. Impress us!

Once you have completed your object:

  • Give a copy of your object to Rebecca Berkman, AmarBerkman Beaumont, and EricR Infinity.
  • Send a copy of your .sb files to e4staff@gmail.com and to eric_r@mit.edu.
  • Write a short paragraph explaining what your object is and what it does.
  • Write a few short paragraphs explaining how you created it and how it works.

Evaluate Your Experience

10 points

Create a text file (using NotePad on Windows, or TextEdit on Mac) called questions.txt. Place your answers to the following questions in that text file and submit it as an attachment with your homework submission.

  1. Roughly how much time did you spend your object?
  2. Did you base your object on some other object(s) that you found in SL? If so, which ones and where did you find them?
  3. In one or two short paragraphs, tell us what you think of SL object creation. Do you like it? What’s good about it? What’s bad about it? Did you enjoy creating your object?
  4. In a short paragraph, what do you feel you learned by creating an object in SL?
  5. In implementing your object, with what concepts or implementation details did you struggle? Why?
  6. In one or two short paragraphs, tell us what you think of Scratch for Second Life (please report bugs or installation problems separately to us by email; these questions are meant to help us with
    the design of the software, not fixing bugs):
    What was enjoyable about it? What was frustrating? What was easy to understand? What was confusing? What could we change to make it better?
  7. What are your ideas for features we could add to Scratch for Second Life? Since the software is still in an early stage, your feedback could have a big impact!
  8. How was using Scratch for Second Life similar to and different from using Scratch?