My name is Leonard. I'm a programmer and a science fiction writer. On the left I've put a picture of what I look like now in 2017, so you can visualize the guy who's talking to you, and on the right is what I looked like twenty years ago, so you can visualize the guy who wrote robotfindskitten.
For those who are not familiar, robotfindskitten (rfk) is a very
simple roguelike game where you are robot, represented by a grey hash
mark, and you're trying to find kitten, represented by a mystery
character. The game takes place in a featureless field full of mystery
characters, most of which are not kitten. You play the game by moving
robot around bumping into things. Bumping into something that's not
kitten will give you some kind of weird message, like
prosthetic wheel, bent out of shape. or
ONE HUNDRED THOUSAND CARPET
But when you bump into kitten it says "You found kitten! Way to go, robot!" You get a cute animation with the hash mark and the mystery character, and you've won the game.
I'm good at computer programming now, but twenty years ago, I was not so good. I had about one year of real experience, mostly in the form of college courses.
I'm not good at game design now, and in 1997 I was even worse. And on top of all that, I wrote robotfindskitten in about three days to meet a contest deadline.
Despite this inauspicious beginning, robotfindskitten has been a very successful game. There are over fifty ports of robotfindskitten to different programming languages and platforms. It's become a kind of folk game, like Snake or Conway's Life.
Perhaps it's a tribute to my own healthy self-regard that until I started researching this talk I never asked the question that has become the topic:
How did someone who's bad at game design and bad at computer programming make a computer game that's really good?
I'm comfortable saying that robotfindskitten is a really good game. If you're not a game designer, I'm living proof that you can create a fun game without being good at this. And after thinking about this question I have an answer to the question which might interest the game designers in the crowd.
The short answer is this:
I made a game about parts of early roguelikes that are often regarded as misfeatures or missteps.
I stole ideas from them that "real" designers generally don't steal.
The rest of this talk is a longer answer to that question, in three parts.
I don't have any money riding on this or anything, but I think robotfindskitten might be the simplest interesting roguelike game. It has a number of features of traditional roguelikes..
- Random environment generation
- Exploration and discovery
- Single player character
- ASCII display
...but the one that's most relevant to this talk is that rfk was directly inspired by Rogue.
Let's go back to 1987, ten years before robotfindskitten. My dad brought an IBM PC home for his work, and he also brought a bunch of pirated games for me to play. These were not the games most people were pirating in 1987, your Space Quests and Chessmaster 2000s. My dad's computer was for Work and it didn't have a graphics card, so I got pirated games that were much older, from the early eighties.
Most of the games are bad, but two of them are really, really good: Steve Meretzky's Planetfall and Jon Lane's DOS version of Rogue.
The first version of robotfindskitten was written for MS-DOS, and as you can see I subconsciously designed it to resemble Rogue. In fact I designed it to capture a specific thing I loved about the DOS version of Rogue. It's something that may seem silly now.
Here's a detail from a DOS Rogue screenshot. There are three bits of this screenshot, three individual characters I want to draw your attention to. The first one is the capital H.
Most roguelike fans know the magic of the H. At the top of a Rogue screen, an H is a letter in a word like "Hello", part of a status message, but in the middle of a Rogue screen, that H becomes a monster, a deadly hobgoblin.
There's a school of thought that says this H is a relic of the past, that you should replace this H with a tile depicting a realistic hobgoblin, whatever a hobgoblin "really" looks like. But when I was a kid I loved this. I was so happy every time I got far enough into Rogue that I saw a new letter, which would immediately kill me. "H equals hobgoblin" was familiar to me. It was the same kind of imaginary play where I'd imagine that my bedroom was a spacecraft.
Second item: the happy face, ☺, DOS Rogue's equivalent of the at-sign. We all know what a happy face is, but it's not a letter of the alphabet. The IBM PC can't draw a realistic hobgoblin, the way an arcade machine could, but it can draw a happy face. That's a little weird. What else can this thing draw?
Well, this is how DOS Rogue represents a doorway: ╬
What even is this thing?
In 1993 this character was added to Unicode and given the name BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL. I can't find an earlier name for it. It's this nameless symbol that they added to MS-DOS so a computer program could draw it next to the letter H and the happy face.
This is the space that robotfindskitten plays in. The thrill of playing a roguelike for the first time and learning what the characters mean. And the thrill of playing a MS-DOS game for the first time and learning about this secret alphabet hidden within the beige box of an IBM PC.
I know that it's often a pain to have to remember whether a lowercase c is a cockatrice or a cat or a cranberry. It's not really thought of as a desirable feature of roguelikes. I'm not even saying I like this ambiguity. But robotfindskitten is a game that's based around finding the fun in a type of mystery that is exclusive to roguelike games.
By the way, robotfindskitten also contains something from Planetfall, the other game that made a huge childhood impression on me. I wanted to make a game with a curious robot who doesn't die.
Around 1991 I bought a freeware floppy disk that had Nethack 3.0.0 on it. I don't think I knew what I was getting, but once I had it, it was like a message to me from the grown-up world. Somebody else had played Rogue, had loved it as much as I had, and they'd made their own game that was just like Rogue, but had a lot more stuff.
I spent the years leading up to robotfindskitten with Nethack. DOS Rogue had a few mysterious things hidden in the corners, but Nethack seemed to be all corners, all hidden things.
Most importantly for purposes of this talk are the rumor messages -- short pieces of advice that you find inside fortune cookies. These rumors, and the style they were written in, dramatically expanded my vision of what could go into a computer game.
- A blindfold can be very useful if you're telepathic.
- A crystal plate mail will not rust.
- A katana might slice a worm in two.
- A magic vomit pump could be useful for gourmands.
- A nymph knows how to unlock chains.
- A potion of blindness lets you see invisible things.
- A priest can get the gods to listen easily.
- A priest can go to hell just like the rest of us.
- A priestess and a virgin you might be, but that unicorn won't care.
- A ring of conflict is a bad thing if there is a nurse in the room.
That's because some of the rumors are false. Completely made-up, having nothing to do with the real game of Nethack! I loved these far-out rumors, not knowing they were false, and now that I know they're false, I love them more than the real rumors. False rumors dramatically expand the possibilities of what might be going on in Nethack. They fire the imagination and create more opportunities for imaginative play.
One fortune cookie says "Ever tried enchanting a rope?" You haven't tried enchanting a rope, because there are no ropes in Nethack. Implementing a rope would be a huge pain, but adding one line of text is free, and it gives the player a little thrill to imagine a rope.
Nethack rumors, especially the false ones, are the second big inspiration for robotfindskitten. That's where I got the idea of a big list of short weird pieces of text shown at the top of the screen.
The other feature of Nethack that stuck with me is the list of monsters you only see when you're hallucinating. A boring monster like a rat might appear as a Ravenous Bugblatter Beast, or a venus flytrap, or Godzilla. You'd look at a monster and see something just totally random. You don't know what you're fighting.
When I was stricken with hallucination in Nethack, I would look at the same monster over and over again, enjoying all the things that a capital H isn't.
One of my favorite robotfindskitten tributes is that "kitten prospecting robot" is now one of the official Nethack hallucination monsters.
Now, you competent game designers may think that huge lists of fake spoilers and nonexistent monsters are what makes Nethack bloated. And you are probably right. Maybe these are not desirable features in normal games. But I love this stuff, and the fact that other people like robotfindskitten indicates there's a whole other type of game that's not made very often, where this kind of thing isn't 'bloat' at all. This can be the main point of a game that focuses on providing glimpses into a variety of different worlds.
Let me fast-forward through the nineties and introduce Mel Chua, a friend of mine who is a scholar of engineering education. A while after we met, I randomly learned that Mel got into computer programming through robotfindskitten.
I'm drawing here from an interview I conducted with Mel last week while researching this talk. Unlike me, Mel didn't really encounter computers until she entered high school, around the year 2000. Her school had a couple of Red Hat Linux terminals that happened to have robotfindskitten installed.
Mel and her friends started playing it, and it became the basis for in-jokes. When someone accomplished something cool, they'd say "You found kitten! Way to go, robot!" like in the game end animation.
A couple months later some older students introduced Mel to computer programming, and when she was told that robotfindskitten was open source software, she got really excited. It was one of the first computer programs she read, and the first one she modified.
She'd change the source to add in-jokes, recompile, and then go off to find a friend and make them play her new version—exactly the sort of thing I did when I was writing the original version.
robotfindskitten was part of my "computers are cool" and "oh hey programming! i can do that!" formation story.
Seeing that thrill of, hey, I can make things that make OTHER PEOPLE have these experiences, get other people to laugh, that was pretty big. —Mel Chua
Mel was able to use rfk as a jumping-off point to learn programming because it's a really simple program that does something nontrivial but fun. It's really simple because I was a beginning programmer when I wrote it.
I think this shows why there are so many robotfindskitten implementations. Even an experienced programmer goes into a beginner state when learning a new platform or a new programming language, and robotfindskitten is a good first "real" program to write. It's generally easier to write a new version of robotfindskitten than to port someone else's version. In fact, I think the fullest way to enjoy robotfindskitten is to write your own version of it.
Unfortunately, there are not a lot of games from "real" game designers that expand upon the ideas I used in robotfindskitten. These fifty ports are all more or less the same game I wrote originally. These aren't my ideas -- I stole them from Rogue and Nethack. But the trend in roguelikes has been to move away from those parts of Rogue and Nethack, and to emphasize other aspects instead.
I really enjoy games where fun comes from experiencing a variety of content rather than only engaging with the game world on a tactical level. Of the items on my wish list, this is the most common, but I'd always like to see more of this.
The idea that a game can be intertextual, that it can refer to the texts of other games and to real-world knowledge, in ways that include but are not limited to in-jokes, really appeals to me.
So does the idea that a game can create mystery by misleading the player about its mechanisms, either by keeping certain things secret or by an unreliable narrator implying the existence of mechanisms that aren't there.
I'm not a game designer, so I don't have the vocabulary to convince you that these are good ideas, or that you should try them even if they're bad ideas. I just want to put the ideas in your head, ask you to go back and find the fun in ideas that have been neglected, even if they've been neglected for good reason.
I'll close by pointing out that robotfindskitten isn't the only game that has pulled this off. Back in 2009, Derek Yu made a hit by incorporating two of the least popular features of roguelikes into a genre that was then unpopular. I'd like to see this happen again!
Thanks for your time.
This document (source) is part of Crummy, the webspace of Leonard Richardson (contact information). It was last modified on Tuesday, July 23 2019, 02:43:56 Nowhere Standard Time and last built on Friday, April 03 2020, 21:00:18 Nowhere Standard Time.