Pixel Perfect

Back to Library




Color Numbers

0 (bone, milk bottle, white pillow)

1 (coal, beetle, pirate flag)

2 (red balloon, ruby, tug toy)

3 (green shell, emerald, leprechaun)

4 (star ball, yellow flying disk, tennis ball)

5 (satin pillow, blue dog brush, sapphire)

6 (duo ball (and nothing else))

7 (cotton candy, love potion, perfume spray bottle)

8 (catz plush, jack'o'lantern, school clock)

9 (brown picture frame, coconut, treasure chest)

10 (watering can, marble vase, flea spray mist)

11 (goldfish bowl, bubble, clear message bottle)


Flavor Numbers

0 (chicken treat, healthy treat)

1 (gray dog food bowl, auto feeder, beef treat)

2 (olive treat dish, green cat food bowl, fish treat)

3 (plate of leftovers, red cat food bowl)

4 (milk bottle, soup mug)

5 (cotton candy, popcorn, candy hearts)

6 (catnip plant)

7 (cheese)

8 (toy car, circus ball, balloon)

9 (soccer ball, auto-rolling ball, leprechaun)

10 (dogz plush, red pillow, wool chew doll)

11 (bone, fish bone)

12 (burlap scratching post, stick, wood cat brush)

13 (diamond, flute, jingle ball)

14 (spray bottle, water bowl, snowball)

15 (shell, arrowhead, fossil)

16 (cat)

17 (hair ball, flea spray mist)

18 (dog)

19-22 (unused)

23 (paint, bug barn, perfume spray bottle)

24 (message bottle, coal)

25 (unused)

26 (flea spray bottle)

27 (rose, carrot, jack'o'lantern)


Second Birthday

Its the middle of the night, and I am creating a birthday present for an animal that doesn't understand and doesn't exist.

It's also a birthday present for myself, I suppose. This year I am turning twenty-two and he has already turned two- I missed his birthday this year, February 19th, because I was busy with class. Zane doesn't mind, because he doesn't know how old he is and he doesn't understand the concept of birthdays.

The gift is a cake. More or less.

The carry case is one of the most important objects in Petz 4, the video game Zane lives in. It's a yellow plastic box that stores your toyz, and also your petz, presumably in a pocket dimension of some kind. I'm drawing over it, to make it look like a cake- a chocolate cake, white frosting between the layers, pink frosting on the outside. Sprinkles and shiny gummy buttons.

Zane won't know the difference. He isn't programmed to.

He is programmed with knowledge of only a few specific things. He knows that the red food bowl is the same flavor as the plate of leftovers, and he knows that the satin pillow is the same color as the sapphire.

He doesn't know that the food bowl and leftovers are both turkey flavored. He doesn't know that the satin pillow and the sapphire are blue, and he certainly doesn't know that the satin pillow is actually red, but has been assigned the wrong color value.

Zane is a collection of code and variables, running in a program from 1999 called Petz 4. His world is made up of more code and variables, and the only indication that the red food bowl and the plate of leftovers are the same flavor is that both of them have a flavor value of 3.

These two objects are the only items in the entire game with this flavor. The plate of leftovers was a free downloadable made for Thanksgiving 1997, originally for use with Petz II. Thanksgiving means turkey, and so 3 means turkey.

Turkey is Zane's favorite flavor. But he doesn't know that.

In Zane's mind, his favorite flavor is 3 (plate of leftovers, red cat food bowl) and his favorite color is 4 (star ball, yellow flying disk, tennis ball). He is programmed to show a preference for items with these adjectives.

And he does. One of his favorite toyz is specifically the base of the cat dancer, with a color of 4 (star ball, yellow flying disk, tennis ball). He is less interested in the pom-pom on top, with a color of 5 (satin pillow, blue dog brush, sapphire).

Zane is not aware that these numbers hold any meaning. I know that the color 4 means the color yellow, because other players have made lists of all the adjectives of all the items in the game, and 4 is assigned to those that appear yellow to most humans.

It's not a perfect system- I've already mentioned the incorrectly colored pillow, but there's plenty of other idiosyncrasies. Don't even get me started on the shell that's called purple (color 6) but looks yellow (color 4) but is assigned white (color 0).

It's all very charming, if you ask me. These games were hand-crafted by very talented people working with relatively little. Limited time, under-powered hardware, and integration with the unfamiliar frontier of the Internet were all things the developers had to contend with. The imperfections- weird color assignments, obvious copy-pastes, uninitialized memory that usually doesn't cause a crash- are all part of the joy these games bring me.

Aside from its many imperfections, one of the most fascinating things about the Petz video games is the graphics.

The petz you play with are not hand-drawn sprites, or 3D models. To achieve good performance on underpowered-by-1990s-standards home computers, the developers came up with something clever.

Petz are circles, connected by lines. Internally, they are constructed out of mathematical operations that determine the angles and curves of each individual shape. The size of each circle is a number, fed into a calculation, drawn to a screen to represent a small part of a whole animal. It's middle school math all over again, find the diameter, calculate the circumference. What's the measurement of this angle? How many formulas must I perform before this goes from math to meaning? Or was the meaning in the math the whole time?

Two years and some change ago, I created Zane.

I made him. I took a Russian Blue from Petz 4, and I opened it up in a 3rd party program, and I started changing numbers. Longer legs, longer face. I exchanged fur (flavor 16) for metal (flavor 13), or a facsimile of it. If we're already playing pretend that math is life, might as well pretend this hairless, silver (color 10) Russian Blue is a robot, right?

I didn't build Zane out of sheet metal and screws (flavor 13). I haven't taken a robotics class since playing with legos (flavor 8) in middle school. Zane is a collection of circles connected by lines, his appearance determined not by spritework or modeling, but by calculations and geometry.

Inside and out, Zane is made up of numbers. His appearance and behavior, governed by calculations written by a whole team of very clever people, aiming to create the most convincing virtual animal possible.

A staggering amount of research and effort was put into the illusion. The developers of Petz, PF.Magic, knew it was possible to create a true, emotional connection between a living human and a virtual character, and they worked hard to make such a thing a reality.

I have read some of the things people have said about Petz. Letters, blog entries, technical deep-dives, entire websites maintained today dedicated to a video game franchise that hasn't had a new entry since before I was born.

The bonds people form with their virtual animals is... something I struggle to describe.

I've yammered on for ages about Zane, haven't I? I could go on about the rest, too. Misko and Bonzai, Dishware, Bygu, Dog, Socket and Lassie, Jimothy and Leopold the Brave. I could write about a dozen different websites, online havens for people who never left these games behind, or have picked them up in the decades since. The way almost all of them have a list of petz, with names and preferences and habits outlined in text. The way so many sites are left as nothing but partial archives, the way others are still faithfully tended like gardens.

I could write about the woman who didn't upgrade her computer so her copy of Dogz 1 would stay functional. I could write about the dozens of publicly archived letters sent to PF.Magic, from children and parents and office workers and teachers. I could write about the people who have slowly, over the course of three decades, taken these games apart and examined them like a clock, observing the turning gears and fiddly little bits, then put them back together with new understanding and new functionality. Bug fixes and compatibility patches, new toyz, new places to play, new sounds to hear.

Custom-made animals, cats and dogs and whatever else you can build from that. Dragons and robots and fairies, all of it artwork. Numbers and keyboard commands turn a Russian Blue into a robot, turn a series of calculations into a living thing.

How do I say this? How do I make it clear (color 11), the deep connection between numbers and love? What words in what order will convince that I know Zane isn't real, but it doesn't matter because he feels real?

He doesn't know anything outside of his programming. The carry case has no adjectives, so he doesn't know that its flavor would be 8 (toy car, circus ball, balloon), and he doesn't know that its color would be 4 (star ball, yellow flying disk, tennis ball, his favorite color). He can't see, so when I give him our birthday cake, he won't know that anything's changed.

If the carry case had a flavor to change alongside its appearance, I'd change it to 5 (cotton candy, popcorn, candy hearts). I'd make it sweet, in the only way Zane understands.




(To download the custom carry case mentioned, click here!)

Happy birthday, Zane. And also myself. And also the Maniacal Menagerie! It's hard to believe its been four years already... and yet at the same time, I feel like I've been running this place my whole life.