Wednesday, May 07, 2008

Creating a Computer Game with My Granddaughter

As one of the software engineers building Popfly Game Creator (GC), I had the chance to sit down with my 4 year old granddaughter and create a computer game together. It was part of testing GC, but the results were a revelation to me. My granddaughters are 4 and 6 years old, and they both like playing on the computer but mouse operations are tricky for the younger one. I thought it might be possible to create a game that would appeal to her and be fairly easy to master. Little did I know that this would lead to two 1 ½ hour sessions with her on my lap while we designed the game together. I had to work quickly to keep her interest and to be inventive in response to her very specific design ideas. It was very engaging for both of us as we created the Rainbow Duckies game together. I realized that designing games with a child could be far more engaging for both of us than just playing them, and that together we could make games that were suitable for her skill level – something not true of most of the games available on the market.

I started the ball rolling with an idea for a game. This idea was inspired by the lovely rainbow background and the cute duckies that are built in to GC.


Intro Scene



I built this opening screen myself, showed it to my granddaughter, and read the question to her, "Big Duck and Little Duck are lost! Will you help them find their way back to their home at the end of the rainbow?" She responded with a firm committed “Yes.” I clicked the screen for her (operating the mouse is too difficult) and we moved on to the first scene.


Scene 1



At this point the 6 year old jumped in and played the scene several times. She immediately mastered it and asked, “Where is level 2?”

The younger girl took over the keyboard and carefully manipulated the arrow buttons to keep the ducks safe. She played the game 10 times, winning every time, and then got a bit distracted, let the ducks hit the mushroom, and lost the game. After that point she refused to play the game herself any more. Instead she insisted that I play several times while she watched. Then she went and got her toy ducks and started to play with them.

I learned a lot about motivation from this episode. She bought in to the premise of the game, was committed to keeping the ducks safe, enjoyed working on how to use the arrow keys, and enjoyed the game, until she lost. She didn’t like losing at all. I decided that there was no reason for this game to have winning or losing as the end of the game. There could simply be different consequences for different actions as shown in Scene 2. This proved to be a good choice for making the game motivational.


Scene 2



Instead of losing the game, the consequence of letting the duck eat the mushroom is that the duck is now sick. It becomes a challenge to help the duck get well instead of a feeling of having failed by losing the game. Again she bought into this premise and was eager to help the duck get well. Now she started to get her own ideas of what should happen next in the game, as shown in Scene 3.


Scene 3



We browsed through the backgrounds available for the next scene and the 4 year old was attracted by the beautiful sunset scene. When looking for characters for the scene to go with the duck, she gravitated to the butterfly. She said that Little Duck is afraid of the butterfly, and that the butterfly just wanted to get something to eat. The fruits and vegetables available in GC didn’t appeal, but cupcake frosting did. After laying out the scene together, I used GC to enable the butterfly to move, eat the frosting, and attract another butterfly. If Little Duck bumped into the butterfly then the scene just starts over, and if not then Little Duck moves along to the next scene.

My granddaughter’s idea for Scene 4 was night time.


Scene 4



She loved the Starry Sky in GC, but she insisted that the stars have to be pink not blue. It took a little ingenuity for me to figure out how to replace the colors in Starry Sky, but fortunately GC made it easy once I figured out a little trick. Little Duck also had to be pink instead of purple in this scene, and there should be a monster, but a nice monster. The monster should bring a bag of presents to Little Duck, but the best we could find was a garbage pail to carry the presents in. We just called it a pail. For presents, a big red heart and heart candy sprinkles seemed perfect. Finally I hooked up all of the movements and gift giving. My granddaughter worked quite a while on playing the scene before she eventually mastered how to have Monster Girl push the pail of presents to Little Duck.

Now it was time for Scene 5. The duckies are almost home!


Scene 5



At this point the 6 year old jumped in and said that when they get home, the house should back up and the whole family should appear. I won’t spoil the ending by showing Scene 5, but suffice it to say that when she played the game later, her contented happy sigh was priceless. The girls now vie for playing the game and giving demos. And the 4 year old and I are working on our next game, “I Know the Butterfly.” Stay tuned.

Monday, January 14, 2008

How to create a display block in Popfly just got a lot easier!

Check out Tim's blog.

Labels: , ,

Thursday, October 18, 2007

Popfly Beta is Here

I’ve worked for almost a year on Popfly, and today we announced our beta release. Invitations are no longer required – go to http://popfly.com/ and have a look!

Popfly excited me from the first time Paramesh Vaidyanathan showed it to me, because I could see how it makes the power of programming accessible to so many more people. My first task on Popfly was to make it work on a Mac. I’m happy to say that today it does work on Mac (except for a few cosmetic issues) mostly because of subsequent hard work of other software engineers on our team. I proved to myself that it works by publishing my blueberry pie recipe using Popfly’s nice web page editor which came from Office Live. Check out my recipe at: http://www.popfly.ms/users/RealHeartMozart/Blueberry%20Pie.


Popfly Web Editor on Mac OS 10 with Firefox 2


Now I’m responsible for testing of Popfly’s features, performance, and security. The main challenge is how to verify that we got everything right while also remaining agile and pushing out significant improvements every month. It constantly forces me out of my comfort zone because we want to take risks – exactly the right risks! I’m learning a much higher degree of trust in my teammates. Often when I’ve missed a meeting I hear later that someone expressed exactly the “test” point of view that I would have expressed.

Here are some highlights of my experience on Popfly:


  • It used to be there was a manual for the language you were programming in. That book became a dog-eared “bible” – like a friend because you knew it so well. Common Lisp by Guy Steele was such a book for me. I loved that book. Now the bible is the whole world. The essence of mashups that you can create with Popfly is pulling together a variety of web sites and other sources to create something of value to you.

  • The immediate Popfly team comes from four continents and there isn’t a given first language that a majority of the team speaks. Our team is a “mashup”!

  • As the oldest member of our team at 47, I find myself asking a lot of questions, like “what exactly IS Web 2.0?” “What is the object of the game in Halo?” Etc. etc. Somebody at my recent 25th college reunion recalled the old saying that “youth is wasted on the young.” I don’t know about that, but it sure is a blessing to grow and learn with this group of people.



I also have a lot of questions, like what will our customers want to do with Popfly? It’s thrilling to read the Popfly forums and see our customers trying to do all kinds of things. It’s a blessing to be able to work with them and our team to define where Popfly will go.

Wednesday, October 17, 2007

Watching the Web 2.0 Summit

I'm watching the Web 2.0 Summit on the Popfly kiosk from home: http://www.popfly.ms/Users/Team/Web2summit.small.

It's exciting to participate vicariously but I'd rather be there. :)

Labels:

Tuesday, October 16, 2007

I'm connecting my blog to Technorati.
Technorati Profile

Labels:

Thursday, October 19, 2006

Creating a Component Factory with Scorpus

I recently took some time to explore Scorpus. Scorpus is an asset repository intended to make software reuse easy. It is based on the Reusable Asset Specification standard from OMG. I have a vested interest in Scorpus because I'm a partner and member of the board of Canarys Automations Ltd.

Initially I spent about an hour with Scorpus beta 1.0. I was able to set up the portal and an assetifier. The portal is a web site where you can view and download the assets. The assetifier is a program that you use to create and update assets. I was able to create and publish an asset but there were so many bugs that I couldn't get very far exploring the features of Scorpus.

Then about a month ago Scorpus beta 1.1 was released. Many of the bugs were fixed and now I was really able to get into it. I wanted to create an asset that would be of pretty wide interest so that everyone could see the value of Scorpus and see how it is different from other approaches to software reuse. After playing a little bit with the four built-in assets, I struck out on my own. The results so far are shown below. Click on the image and make sure you are viewing it at 100% size in order to see it clearly.


First I tried the idea of a Java Component Franchise. I picked Java because I had just installed Java as a prerequisite for Scorpus and I wanted to see how difficult it would be to create and publish my first Java program, the ubiquitous "Hello World!" Java was easy as expected and I published my Java Component Franchise asset including the sample code for Hello World and how to learn Java and modify the component. However, I wasn't satisfied with the value of a Java Component Franchise. How would that idea showcase Scorpus?

After some thought and experimentation, I came up with the idea of a Java Component Factory. If you were an experienced Java Programmer and were interested in parlaying your skills into a self-sustaining business, then Scorpus might be the catalyst you were looking for. I kind of liked this idea but it seemed too limiting. Why only Java? Why only for experienced programmers? Scorpus accomodates components in any language. And I believed it should be possible even for non-programmers to build a component factory (my Ph.D. dissertation on Learning Computer Programming is another story).

This line of thought led to Component Factory. If you click More on Scorpus Portal you see the idea described as shown below.


(to be continued...)

Sunday, July 16, 2006

My First Memory

(No this isn't a story about RAM. )

My first memory is holding hands with my dad walking down the steps of a government building. It was a partly cloudy day and the nearly white steps were bright. It was September or October in Minnesota and the temperature was perfect. I felt happy calm anticipation. We were there to "pick up my sister." I was a little over two years old and both me and my sister were adopted.

What does this have to do with software? I noticed that "second family" appeared in My First Program and that got me thinking about my first memory. When I think of all my software stories the friends are vital parts of the stories. You feel like extended family. Don't worry I won't use real names! Come to think of it I learned about what a friend is from my dad, but that's another story...

I'll explore the relationship of software and family more as the stories unfold. How are software and family related for you?