Zzt ebooks

ANSI twitter egg surrounded by yellow border

I made another twitter bot! This one’s called Zzt ebooks. Several times a day, it posts a tiny snippet of text drawn from a corpus of all games from the archive of ZZT games on zzt.org.

ZZT, in case you don’t know, is a game creation system for DOS dating back to the 1990s. I basically spent all my teen years making ZZT games and hanging out (online) with people—mostly teenagers—who made ZZT games. During its heyday, hundreds of new ZZT games were released every year, and a culture and language of conventions developed surrounding how ZZT games were made and distributed. It was weird and charming and angst-ridden and amazing all at once. Anna Anthropy is writing a book about ZZT that I am very excited to read.

ZZT includes a simple programming language for scripting in-game objects. Programs you write in this language are stored in the game file itself as plaintext. One feature of this scripting language is that if, in the course of running a program, the interpreter finds any text that isn’t a programming language construct, that text will appear on the screen, usually in a modal dialog that allows you to read at your own pace. This text is used for exposition, dialog, room descriptions, etc. The corpus for the bot comes from extracting all such non-program text from a (relatively) recent scrape of all the ZZT games from zzt.org.

To generate the text that the bot tweets, I randomly selected a line of text from the corpus, then appended each succeeding line in the corpus, up until I reached 140 characters. (There’s a random chance that the algorithm will stop after each line, to give the tweets some variation in length.) No Markov chains involved, which is rare for me! The tweets you’ll read amount to tiny text-dumps of ZZT games, clipped to resemble the style of Horse ebooks.

zzt ebooks screencap

My program for extracting program text from ZZT games is imperfect, and it sometimes leaves in non-program garbage text, so I combed through the initial tweet list and removed any that had special characters or weird formatting. I also removed anything that seemed grossly sexist, homophobic, or otherwise violent. (The ZZT scene was always predominately populated by adolescent boys, so there’s a surprising amount of this.) And I removed anything that seemed to reference real, individual people—some ZZT games were made about the ZZT scene itself, and those games sometimes got a little mean (to my eye, at least). I don’t want to be in the business of digging up and re-airing anything hurtful.

I have mixed feelings about whitelisting tweets in this manner, but in the end I decided that I’d rather make something whimsical and nostalgic, rather than (what would have amounted to) an often-offensive satire of teenage behavior. I ended up with several thousand tweets, which should be enough to keep the bot going for a year or two.

If you’re an author of a ZZT game and you see text from your game included in Zzt ebooks that you feel has been misappropriated, let me know and I’ll remove it immediately. Otherwise, enjoy!