• Recent Posts

  • Categories

  • Archives

  • Meta


Pac-man enthusiasts, rejoice! I have you made you one attractive and fully playable level.

The end results of Programming are, of course, all lollipops and rainbows. But I’m here to tell you about the frustration that precedes the satisfaction.

Behind-the-Scenes Hair-Pulling Moment Number 1: Designing a stage.

I knew that Pac-man’s maze needs to be not too basic and not too complex. It should be symmetrical and nice-looking. It needs to accommodate moving characters and fit within 480 x 360 pixel screen area. And since would be controlling movement with numbers of pixels, I knew it would be to my advantage to make the most mathematically regular system of paths units as possible.

Pulling all these requirements together was harder than I anticipated, and I spent a lot of time on failed attempts. In the end, I built a grid of blocks in Illustrator, drew a stroke that went through only the exact centers of blocks (Smart Guides, I love you), and adjusted the width of that stroke until there seemed to be a nice path/wall thickness ratio that fit both my screen dimensions and the size of my characters. Success.

Behind-the-Scenes Hair-Pulling Moment Number 2: Pellets.

Oh, they were easy enough to draw. But I did spend nearly an hour placing them equidistant on my nicely-drawn paths by inputting coordinate values. See the first part of this code? I had to come up with 128 different values for those.

Behind-the-Scenes Hair-Pulling Moment Number 3: Pac-man’s Movement.

The $1,000,000 question is: How do you keep Pac-man on the path and from munching his way through walls? I examined a number of different Scratch projects to find the answer, and there are actually many different ways of doing this, each with various glitch potential. All made use of the “color # touching color #” functionality, but this played out quite differently depending on how the arrow keystrokes were programmed. Does the right arrow key aim a perpetuum mobile Pac-man in an easterly direction? Or does it inch him there at a prescribed distance? Where is the colored pixel that determines whether Pac-man has hit a wall, and should he bounce back in this event or simply halt? I experimented for hours with all these options and came up with functionality that is infrequently glitchy, but still not perfect. Sigh.

Behind-the-Scenes Hair-Pulling Moment Number 3: Ghost Movement.

Thankfully with the ghosts, I didn’t need them to do anything special like think for themselves or chase Pac-man. I simply gave the illusion of random movement by preprogramming three different cycles of movement around the stage that were decently complex. Each ghost has a script that begins something like this…

… and continues on for at least six times the length you see here.

Conclusions? I obviously can’t bring myself to create an ugly game, regardless of the low number of viewers and even lower number of players it will have. Beauty takes time and thought. And for beauty, I’m always ready to give both!



Fly Away Home, if you haven’t seen it, is gorgeous film about a father’s love, adventure, and emerging from loss. I’ve always related strongly to the heroine, and I wanted to see if I could communicate my love for this film in a poster.

I wanted make this poster strongly about positive and negative shape, but also capture the likenesses of Anna Paquin and Jeff Daniels in an impressionistic way. I chose a rich fall color palette and had a blast with hand-drawn type.

Watercolor is still a relatively unfamiliar medium for me, especially this wet-on-wet approach. I had to paint it a couple times. The first time, I worked too quickly and didn’t give the layers time to dry. The second time, things went better.



I used to do word searches all the time as a kid. I had strategies. I had techniques. If it has been too long since you’ve done a word search, today is your day! It’s even nicer doing it online, because you don’t have to draw awkward hot dog shapes all over the grid — the computer and I have done it for you.



Queen Elizabeth II is, in my opinion, one of the most unique women alive today. She is unconditionally revered and loved by millions, but her fame has nothing to do with her physical appearance, special talent, hard work, or anything else except who her father was. She didn’t choose this position, but she accepted it and has continually and selflessly risen to the occasion for 60 years. What would that be like? For your face to be familiar to the whole world, yet to have so few who truly know who you are? To live your whole filling an extremely important role, that being more or less all you know?

I took the occasion to read this book, which I highly recommend. A Year with the Queen by Robert Hardman. The content is great, but it also happens to be very well-designed! The publisher choose Baskerville for the body text, presumably because it has the nicest looking capital Q. And it uses Bell Gothic as a complement for headers and captions (exactly what I would have done).

I wanted the final portrait to feel a bit like a coin or a stamp come to life — to juxtapose her symbolic importance with the real person. I used colored pencil over a watercolor wash. I would have liked for the colored pencil to appear more smooth and accurate in the details… so I probably needed draw larger.



In this game, you get to make choices as a party planner and then see them come together in a party scene. The most involved part of my job was creating the graphics for each venue/color scheme combo! I used the following raw images, adjusted the colors, and painted the decorations and party-goers in Photoshop.

Turn up the sound and explore!

Programming 101: Variables

This game makes heavy use of variables. Variables are items that can hold a value, much like x in algebra. Variables in programming languages can also hold words, not just numbers.

Each of the three choices in this game (venue, colors, and music) is a separate variable. As the user clicks on a graphic, the variable sets itself to their choice and keeps that value in its memory until the end of the game. For example, here is a script that belongs to the postcard graphic of the warehouse location. In Scratch, orange-colored blocks indicate commands with variables. This script tells Scratch to give the “location” variable a value of “warehouse” when the image is clicked on.

As you can see, “step” is another variable in this game. I used the step variable to control the pacing of the game, basically telling graphics to only appear at certain steps. The step value increases when a choice has been made. This way, things happen in sequence and the user cannot go backwards.

At the end of the game (step 6 or so), a sprite called “Party” finally appears. It shows the party scene and contains 9 different costumes, one for each color/venue choice. Here is an excerpt of the script that tells Scratch which costume should be shown.

… and so on and so forth.