Microsoft & Open Source Items Of Interest

Microsoft’s Evil Quotient (EQ) has fluctuated over the years. On the average it was trending down for a while, but their sponsorship of OpenAI, and their ruining of Windows 11 and forcing many people to buy new machines to use it, have caused it to shoot right back up again.

But they have made two significant historical contributions to open source software recently. Back in September they open-sourced the original version of Microsoft Basic, which was partly written by Bill Gates himself as a teenager. Here’s the announcement on Microsoft’s Open Source blog, and here’s the GitHub repository with the code. It’s worth noting that Bill Gates was long vocal against the principles of free code sharing, and his arguments in favor of commercialization of computer software are partly responsible for our current capitalist hellscape, but I guess better very late than never, eh what?

More recently, as in the 20th of this month, Microsoft announced that they were officially opening the source code for the three Zork games. The copyright for them passed into their holding by their acquisition of Activision. If you have a time machine, it’d be a fun trick to go back to the founding of Activision and tell them about the later history of their company, although in doing so you might cause them to give up their efforts in despair.

It must be said that Microsoft didn’t publish the source code to the Zork games; instead, they gave their official blessing to Jason Scott and the Internet Archive’s efforts to preserve it. They did that by adding documents to the GitHub repositories for Zork I, Zork II and Zork III. The source code takes the form of ZIL files, code written in the Zork Implementation Language to be compiled into object files compatible with Infocom’s Z Machine interpreter, so if you want to understand what that means, I suggest Andrew Plotkin’s introduction, What Is ZIL Anyway?

A Complete Playthrough of the Original Zork Games

Three videos of a Youtuber called SwimYBO going through all three of Infocom’s classic Zork games. Zork was originally made for the PDP-10 by a number of students at MIT as a larger and funnier version of Colossal Cave, and was made all as one game. When remade for a variety of home microcomputers at the time, it was written in a special language, ZIL, for a virtual machine called the Z Machine. So, the game writers wrote their games once for ZIL, which had a Z Machine written for each of the target platforms. This explains how they were able to relatively easily port for every platform under the sun, back when there were over a dozen, and also why most of their games looked like they were the output of a simple terminal emulator.

Infocom was bought by Activision, used as a brand for a number of weird titles like an NES game, and eventually the Zork name would be applied to a pair of Windows graphic adventures. The property currently lies dormant in the hands of an uncarring megacorp, along with many other old computer game settings, characters and properties from over the proliferating decades of time since Pong.

Anyway. SwimYBO’s playthroughs go through the entire game and reveal all the puzzles and solutions, but they do leave some of the descriptions and game lore unrevealed for a player who might come to them later.

Zork I (“The Great Underground Empire,” 29 minutes):

Zork II (“The Wizard of Frobozz,” 30 minutes):

And Zork III (“The Dungeon Master,” 34 minutes):

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)

The Digital Antiquarian on the Infocom Z-Machine

The Digital Antiquarian‘s website contains a wealth of information, but rather than let my works get too gummed up in describing it all right now, here’s is one page from 2012, on the creation of ZIL, the Zork Implementation Language, and the virtual machine that runs it, the Z-Machine.

When we left off last time, Marc Blank and Joel Berez were considering how to bring Zork to the microcomputer. Really, they were trying to solve three interrelated problems. At the risk of being pedantic, let me lay out them for you:

1. How to get Zork, a massive game that consumed 1 MB of memory on the PDP-10, onto their chosen minimum microcomputer system, an Apple II or TRS-80 with 32 K of RAM and a single floppy-disk drive.

2. How to do so in a portable way that would make it as painless as possible to move Zork not only to the Apple II and TRS-80 but also, if all went well, to many more current and future mutually incompatible platforms.

3. How to use the existing MDL source code to Zork as the basis for the new microcomputer version, rather than having to start all over again and implement the game from scratch in some new environment.

The Digital Antiquarian

The Digital Antiquarian: ZIL and the Z-Machine