Zork I and Planetfall With The Edge Taken Off

Infocom text adventures in the classic style have this interesting thing they do where you explore interesting locations and solve puzzles in the rooms, but there’s also some miscellaneous things you have to do to keep yourself alive. Resource management.

Later Infocom games tended to go much easier on this kind of puzzle, but they were, then and now, a source of frustration to players, and that kind of difficulty termed friction by some, isn’t currently in fashion and can be excluding to new players.

Zork I in particular had two such elements: the need to keep a light source going in the underground at all times or else stumble around in the dark and soon get eaten by grues, and its carrying limit, which forced players to ascend to the White House frequently to deposit their treasures in the Trophy Case.

Similarly Planetfall, that game what has Floyd the robot in it, requires your character keep themself fed to stay alive, which is something of a distraction from the game’s mysteries. It also removes some ways the player can block themselves from winning, and removes some of the ways to die, in the name of fairness.

There are a couple of Github projects that took the publicly-released source code and removed these portions of the game. All of the rooms are still there, but the lamp has so much energy that it probably won’t run out, the player can carry much more and won’t fumble with the items they’re carrying unless they carry a huge amount, probably more items than there is in the game.

Just to let you know, I’m not yet aware of any such project to make the Babel Fish puzzle in the game of The Hitchhiker’s Guide to the Galaxy less infuriating.

Zork I Modernized and Planetfall Modernized (github)

Reviving ZZT

ZZT was (is) an ancient shareware DOS game that runs in character mode, created and published by Tim Sweeney. Originally published by Potomac Computer Systems, a company ran out of the basement of Sweeney’s house, when it expanded its software selection it was renamed to Epic MegaGames, and later Epic Games, under which title it remains today, still headed by Tim Sweeney after all these years. He would go on to create the Unreal Engine, upon which the modern fortunes of the company were founded.

Images from the Worlds of ZZT bot

But back to ZZT, which is still a nifty piece of software, and a lot of fun to mess around with. It included an editor that allowed users to create their own scenarios, which spawned a modding community that survives to this day. Noted game designer and educator anna anthropy wrote a book about ZZT for Boss Fight and she continues to carry its banner today. ZZT scenarios both old and new can be found on the site Museum of ZZT, and every three hours Mastodon bot Worlds of ZZT publishes screenshots from random ZZT adventures.

Because it’s a character-mode game, ZZT modules are often confused with classic roguelike computer games. ZZT is not necessarily a roguelike, but it may be possible for someone to write a classic-style roguelike game in ZZT.

But running a DOS game nowadays is not as easy as it used to be. It requires the use of either a vintage computer system running a compatible DOS, a virtual machine like VirtualBox or Docker, or some DOS emulator, such as DOSbox, a tool for emulating a working DOS system that can run on current OSes, or Zeta, a DOS emulator with just enough features to get ZZT working.

ZZT was written in Turbo Pascal, but its source code had been misplaced by Tim Sweeney and was considered lost, until very recently (the past few days), when a nearly-complete version of ZZT 3.0 was found. Most of it can be downloaded from The Almost of ZZT, on Github, which is that version minus some parts of the source that are considered to be under third-party copyright.

Since it is incomplete it is not useful for compiling a working game, and is presented for historical reasons more than anything. Fortunately, there already exists The Reconstruction of ZZT, a reverse-engineered (with Sweeney’s blessing) version from 2020 that compiles to identical binaries.

ZZT is a subject that deserves much more detail than I can give it in an introductory post like this. Maybe later….