Archive for the 'Scratch' Category

Scratch Pt. 2 – the experience of programming.

Posted in Cyberlaw Project, Scratch on September 25th, 2006

Part of the assignment is to make a feedback journal about my experience with the scratch game. Two birds, one stone. I made about three or four trial games before my final version. I had originally made a simple driving game, but only got as far as designing the car’s motion on the road. I designed a background that gave the perspective of a road disappearing in the distance, and attempted to convey the motion with yellow dashes moving down the center. Despite multiple attempts using many, many different approaches, I was unable to get them to move evenly down the center – instead they bunched, and lagged. I did know from subsequent experience that there are occasional errors in the program – things not moving as they are directed to. However, these errors were rare and temporary, and I was only sure they were not my own because the next time around things went quite smoothly.

I realized that even if I were able to overcome my difficulties, I would still end up with a game that merely replicates many others available. I left the program for what it originally as intended – an experience that produced not a result in the form of a game, but gave me a body of knowledge. I decided then that with no programming experience of this kind, I might be better off using m strengths and designing a game that is less than complicated in its program, but had its uniqueness in the creativity of the graphic design and subject matter. When half asleep in the middle of the night, it dawned on me that I could also create something that, rather than being a temporary assignment, could be of usefulness to me. I had become addicted to Set, a puzzle game played with a deck of cards. I began designing my own online version, with the added bonus of never having to shuffle again, and being able to play this non-verbal game any time I had my laptop (I’m one of those people that functions better in verbal tasks if I am also multitasking the other parts of my brain).

This, too failed. I could not quite figure out how to get the program to randomly choose a card and put it into the designated spot. realized that the tasks that are very simple in real life – shuffling and dealing – are quite a different matter when starting from, well, Scratch. They actually require a body of assumptions and instructions much more difficult than even a peanut butter sandwich construction. Besides, the game could only go so far – since it wasn’t my original design – and I had found a god Java program in the meantime. Again, i did not merely want to duplicate what was already available. Especially not at the expense of a whole lot of work. Finally, i settled on an idea that I had been bandying about since I first learned of the project – incorporating my classmates into the program. This way I would certainly not been duplicating anything else; I would produce something that would be at least of some interest. I would also get to incorporate a skill I had already been working on – graphics design – and a bit of humor.

My original design was to have the avatar try a maximum of three doors out of five to find the goal. After a long time spend attempting to get the game timer to ‘wind down’ each time a selection is made, I gave up on this idea. The mechanism by which this was accomplished seemed simple, and there were not ways to really tweak it to fix he problem. I am still unsure whether the program was in error or I was making a mistake I could not find, but either way I was at an impasse. With on-campus interviews and the press of Tribe’s Con Law looming, I changed the object. To simplify it further, picking the wrong door would end the game.

I did what I knew – worked with cropping and pasting the pictures of my classmates and creating instructions with text pasted into the background images. I merged the included sounds into the game, balanced out the delays in a process that sounds so simple but was indeed a hard-won result borne from much trial and error. I could not find a simple image of a fountain to use (the goal is the purple fountain that my classmate insists is in the Pentagon, where he interned) so on a whim I created one from, er, scratch. I originally thought it would be a failed enterprise and I would end up giving up and finding an image, but within the graphics program I was using I managed to take simple shapes, color, and transparency and create a serviceable purple fountain. After that, I had become familiar enough with the program to realize what it was capable of and best at. I created three simple animations for my husband’s amusements. Two graphics within the game of a girl jumping lead to a simple animation of her jumping across the screen. Much effort eventually generated a away to properly time chimes and percussion. I needed a background , and randomly chose a moon. After that, of course I had to add a cow. Twenty seconds in, and every thirty after that, he loops overhead to the sounds of mooing, which makes my husband crack up every time (me too.) So I then designed a simple animation called ‘hey diddle diddle’ and one of a punch of puppies jumping and barking. Although the jumping girl was posted to the class wiki for the hell of it, the other two were actually done after the class was over, just for fun.

I eventually had to force myself to stop and work on my other classes and OCI.


Posted in cyberlaw, Scratch on September 25th, 2006

I designed two programs within Scratch – they are available to those who have Scratch.

Pentagon Game
Moon Dance Animation
Jumping Puppies

Scratch will be available to the public in February – currently it is only available to those who are participating in CyberOne.


Posted in cyberlaw, Scratch on September 19th, 2006

Personal Background

My first introduction to computers was the Commodore 64.At the time, my father was teaching computers at the ‘Saturday series’ program of his school district: an opportunity for upper class kids to get even more of an education. The children of teachers were allowed to join this elite world (if only that applied to the world-class high school) and so I took his computers class, sculpting, tennis and zoology (which had sounded nice on the signup sheet but was actually a semester spent dissecting fetal pigs)

And so I learned the basics of programming – and I do mean basic.

10 Print “Hello”

20 Goto 10

My dad programmed a basic version of Pong, and a maze that one guided on the computer. In the late 80s, this was not much less sophisticated than the professional programs out there. I should note that today my father doesn’t even have an e-mail address. Attempts to show this brilliant math teacher how to use the web have failed. When technology speeds ahead, sometimes even those who had mastered one stage are then left behind.

The Class

Today, Rebecca came into class and unpacked a jar of jelly, a jar of peanut butter, a loaf of sliced bread, and a knife. She explained that she had forgotten how to make peanut butter sandwich. After the class got over their hesitation at the pure bizarre nature, they walked her explicitly though the steps. The exercise demonstrated a facet of programming – namely that you are working from a complete blank slate, with no base of knowledge and with no assumptions.

The class will be using Scratch, a programming tool that is being released just to this class. The program is still in development (@ MIT), and will not be released until February. (more on that)

Even with Con Law reading piling up for tomorrow, I have been working with the program in an attempt to write a game. Scratch is unique and clever in that it is a WISIWYG version of a programming base – no fancy scripts required. That does not, of course, mean that there is no learning curve. Indeed, I am already frustrated. While I have figured out how to have my little icon move around and respond to clicks and arrows, I still cannot figure out how to implement more than one icon into it. This would allow the variables to create a game – catching or avoiding each other, etc. Essential.

While pouring fruitlessly though the tutorial for instructions on this simple task (it, of course, contains instructions on how to do many easy, obvious tasks and instructions on more complicated tasks which I have not yet reached, and I am afraid that I will get eated by the Three Bears before finding it) I came upon a useful paragraph.

“Learning to program is ultimately about learning to think logically and to approach problems methodically. The building blocks out of which a programmer constructs solutions, meanwhile, are relatively simply. Common in programming, for instance, are “loops” (whereby a program does something multiple times) and “conditions” (whereby a program only does something under certain circumstances. Also common are “variables” (so that a program, like a mathematician, can remember certain values).”

I will keep trying. On an interesting note, this blog appears to be part of the assignment for this week, which includes:

In your journal write an entry about your experience programming and your experience playing other students’ games. Address the question of the relationship of code to law in your game. Were there laws that you felt constrained by in writing your code? Were there laws that you used code to enforce? How about in the other students’ games? Were there rules that you wished were enforced? Rules that you wished weren’t enforced?

Which is why I am not trying to resolve my frustrations and wrap this blog into a neat little tale of overcoming them. Once again, it is a process.

On the other hand, similar frustrations with the very blog software I am using is making useful the only programming knowledge I actually have. (and no, I don’t mean BASIC). Without a way to change the font size, I gave up and entered the html version, easily entering my changes with a skill that comes in handy for this and other blogs, but is otherwise made defunct by Frontpage and the like. Unless we want to end up with pages that look like those from the early 90s (think Homer Simpson’s dancing Jesus), more sophisticated tasks are best tackled with a more sophisticated tool.