Hello, my name is anatomecha and I'm addicted to Scratch.
Scratch is a web-based tool for creating animation and games using a visual node-based programming system. It was created by MIT and is offered for free online. I admit to staying up to the wee hours of the morning creating trippy animations like these or "just adding one more feature" to a simple game design - because it's that quick and easy to use their tools. And it is so much fun to see ideas come to life in the interactive realtime editor.
Scratch was designed to be accessible to kids so they could learn the concepts of computer programming. It achieved that goal so successfully and I am the evidence: I was taught how to use Scratch by a 10 year old kid Zyatah, the daughter of two of our close family friends. Most of what she knows she figured out on her own by tinkering on the website. She has since entered an awesome after school program called Creative Coding 4 Kids that teaches Scratch after her 5th grade class lets out in the afternoon. I recently got the opportunity to meet the founder of Creative Coding 4 Kids - we had a great conversation that I'm sure I'll be posting more about here in the near future. I highly recommend for anyone with kids in the Seattle area to check out this excellent program for teaching kids the art and craft of coding!
This is the simple animation that got it all started for me - Zyatah showed me how to make the cat move right until it hits the wall, then then bounce in the opposite direction and repeat. I watched as she dragged and dropped the icons from a tool palette into the work area, connecting them into this sequence.
Literally 5 clicks later and the cat is walking back and forth on screen. That is how simple it is to create animation in the node-based code editor tool on the Scratch website. With that I was hooked. I registered my own profile and dove in to see what I could create.
Notice the final purple block in the sequence. That is Zaytah's personal artistic touch. "Change color effect by 25" makes him flicker rainbow colors, a thrilling visual effect. She went on to show me her collection of animations on her Scratch projects page. Her piece, "Illusion (a square instead)" blew me away with its hypnotizing moire patterns.
She has such great techniques with color and distortion effects. A natural knack for glitch. So we formed a studio on Scratch where we can showcase all of our greatest glitch art. Check us out here!! scratch glitchers
A few weeks later I was hanging out with my animation students and TAs at UW in the computer lab after class had finished. We got onto the subject of Scratch and I showed them Zyatah's crazy cat example. Just like me, they were hooked. A bunch of them created profiles of their own right on the spot!
making games from scratch
The node-based visual programming system is really capable. It was made by members of MIT, so I guess they know what they're doing. I was curious to test its ability to create actual games, so I put together these basic demos. I found that can make my own game from (heh) scratch so easily.
Each of these simple game prototypes were started and mostly finished in one sitting. Way too much fun to make these!
The code block layouts can get pretty sophisticated as shown in the image above. Those stacks of blocks in the right column that start with a big purple bar are functions. Inside the main "forever" loop over in the left column the smaller purple blocks are where that same function is being called, passing in different input values. Above the main loop a bunch of orange blocks represent variables that get initialized when the scene starts. This is real programming! It's cool it can get that in-depth, but also very cool that it doesn't have to.
A lot of scratchers are really into drawing and showing their works in simple slideshows, or animations no more sophisticated than crazy cat. A fine way to go if that's what you're into. Check out this great hand-drawn Destiny art slideshow. These were drawn in the paint toolset included inside Scratch.
Meanwhile another scratcher rolled a fully functional 3d platform game with sweet retro-looking vector graphics. This demonstrates how far you can take it. Pretty impressive, I would say.
Totally cool that these diverse styles can all thrive happily together in the same online community.
You can start from scratch or you can remix. Everyone else's work on the entire site has a See Inside button where you can go in and start tinkering with the code blocks. Then, hit the Remix button and it gets saved to your own projects page. Credit is automatically given to the original creator. It's the ultimate open source community. I can browse the awesome Scratch projects the other users have made and riff off of them continuing in my own direction.
Remixing is the process of learning for Generation G. Learning by doing and tinkering and breaking things and eventually exclaiming, "I got it working!" my favorite words. I never had to read a single piece of documentation, it was all there in context and talked up by word of mouth by other scratchers in the comments section of the website.
Here are two alternate takes on remixing I made. The first one is from another scratcher's koch fractal curve project. I simply replaced all constants with random numbers - instant glitch. Credit for the original goes to vissaeus. And in the second piece I took some cool boy and girl drawings by Zyatah and remixed them into a little story complete with space magic from the year 3 billion.
dads and kids on scratch
I was rambling on about scratch at work the other day, when my coworker and good friend AnalyticSpinors chimed in about his own scratch collaborations with his kids. Turns out he has been a scratcher for the past 8 years! He describes how his kids are not just learning to follow established rules for how math and coding are meant to be done, they are discovering their own methods for problem solving entirely on their own and coming up with processes that actually work. This is how real science is done!
Currently, AnalyticSpinors and his kid laserboy5 are building 2D platformer games together right along the same lines as I was doing. Look at this awesome use of classic 8bit mega man art created by the father and sun duo. So serendipitous, it kinda freaked me out. Uses exactly the same control scheme as my own blockdude adventure game I had made just a week before! Only they have already implemented wall-jump and have a much more realistic modeling of gravity than I had achieved.
I recently entered a graduate program pursuing a masters in Learning Technologies at Drexel University. One of the things that came up in our readings was this new approach to education called Connected Learning. In their research on how kids use the internet they found two main categories of types of activity, one focusing on socialization and the other is what they called messing around. This is where kids use creative tools like Scratch to tinker and explore and express themselves, bringing their imaginations to life.
Some kids get way into this kind of messing around. They geek out like crazy when they find the thing they love doing. In doing so they gain a sense of agency that empowers them to take responsibility for their own learning. When this happens the kid will be self-motivated to learn whatever is necessary in order to achieve their goals. It can result in a life-long passion for creativity that may lead to productive career paths like I have found in my work. I feel that as educators we need support this kind of learning however possible.
I'll admit I'm guilty of this thing called messing around. And I'm not going to quit anytime soon because it's way too much fun!