Microsoft makes Zork open-source

2025-11-2018:13634239www.microsoft.com

Microsoft’s Open Source Programs Office (OSPO), Team Xbox, and Activision are making Zork I, Zork II, and Zork III available under the MIT License.

When Zork arrived, it didn’t just ask players to win; it asked them to imagine. There were no graphics, no joystick, and no soundtrack, only words on a screen and the player’s curiosity. Yet those words built worlds more vivid than most games of their time. What made that possible wasn’t just clever writing, it was clever engineering.

Beneath that world of words was something quietly revolutionary: the Z-Machine, a custom-built engine. Z-Machine is a specification of a virtual machine, and now there are many Z-Machine interpreters that we used today that are software implementations of that VM. The original mainframe version of Zork was too large for early home computers to handle, so the team at Infocom made a practical choice. They split it into three games titled Zork I, Zork II, and Zork III, all powered by the same underlying system. This also meant that instead of rebuilding the game for each platform, they could use the Z-Machine to interpret the same story files on any computer. That design made Zork one of the first games to be truly cross-platform, appearing on Apple IIs, IBM PCs, and more.


Read the original article

Comments

  • By drob518 2025-11-2020:014 reply

    When I was 14 or so, in the early 1980s, a friend and I who had been playing Zork thought it would be fun to design a game ourselves. We actually wrote to Infocom with a proposal that we write a new game for them and they let us use ZIL and the Z-machine to implement it. Surprisingly, they actually wrote back to us and politely declined our offer. In hindsight, while we knew how to program in BASIC and assembly language on our Apple IIs, we would have been lost making a game with ZIL. That’s to say that Infocom made the right call. Still, it said something about the company that they treated a couple kids with respect and didn’t laugh in our faces. I wish I still had the letter.

    • By reticulated 2025-11-2020:253 reply

      My goodness, I could have written this word-for-word. Similar age, same Apple II BASIC and 6502 upbringing (roll sleeves and call -151) and also wrote to Infocom. We were in the UK so even more surprised to get a reply similar to yours several weeks later. Sadly my letter is also lost to various house moves. Or eaten by a grue.

      • By DonHopkins 2025-11-2022:36

        I wrote them, and after a while I received a brochure in my mailbox, with this stamp:

            ---v----v----v----v----v---
            |         _______         |
            >  One   /       \     G  <
            | Lousy /         \    U  |
            > Point |   ___   |    E  <
            |       |  (___)  |       |
            >       <--)___(-->    P  <
            |       / /     \ \    o  |
            >      / /       \ \   s  <
            |     |-|---------|-|  t  |
            >     | |  \ _ /  | |  a  <
            |     | | --(_)-- | |  g  |
            >     | |  /| |\  | |  e  <
            |     |-|---|_|---|-|     |
            >      \ \__/_\__/ /      <
            |       _/_______\_       |
            >      |  f.m.l.c. |      <
            |      -------------      |
            >                         <
            |   Donald Woods, Editor  |
            >     Spelunker Today     <
            |                         |
            ---^----^----^----^----^---
        
        https://news.ycombinator.com/item?id=23114927

        https://www.youtube.com/watch?v=A8Z1cKUxD9c

        https://crpgadventures.blogspot.com/2016/05/zork-victory-sor...

      • By drob518 2025-11-2020:31

        Ha! They probably assigned an intern to reply to all the kids wanting to help them write the “next one.” Too funny! They had class, Infocom did.

      • By bryanlarsen 2025-11-2021:044 reply

        Me too, except my letter was to Sierra On-Line and my experience was on TRS-80 6809. Really classy reply asking me to write back when I finished school.

        • By eej71 2025-11-2022:33

          I recall sending a letter to them asking them for information on how they compressed their images for their hi-res adventure games. While they replied, they said it was a trade secret. I was kind of bummed. But being a 12 year old kid who barely understood the 6502, it probably would have gone over my head.

        • By brandall10 2025-11-2022:12

          Lovely to hear this about Infocom and SOL. The former was my obsession throughout the mid-late 80s on my Atari 800XL, and then the latter for the next few years after getting a 386SX in '89.

        • By drob518 2025-11-2021:53

          Nice.

        • By stavros 2025-11-216:00

          Recruiter pipelines back then were long, huh?

    • By chihuahua 2025-11-2021:222 reply

      In the 1980s, I was interested in text adventure games, and had a kind of book/magazine on the topic of how to write them. In BASIC, obviously (groan) because that's what was easily accessible back then.

      I remember figuring out the mechanisms that the book introduced: what kind of rudimentary data structures to use to represent the state of the world, the locations of objects, etc.

      I got some simple stuff to work, you could navigate the world, pick up and drop objects, etc. but then my motivation gradually ran out because I didn't have a clearly defined design for the game I was going to build.

      I had a few pirated games (C64, Amiga): "Death in the Caribbean", "The Pawn", etc but never had the motivation to stick with them past the first or second puzzle. The puzzles seemed like if the answer didn't arrive via a flash of divine inspiration, there was no way to figure it out based on logical reasoning. Maybe that part of my brain wasn't developed back then.

      • By drob518 2025-11-2021:364 reply

        Nice. Yep, we wrote our own adventure games in BASIC as well. There were a couple problems with that, however. First we weren’t able to come up with a sophisticated parser like Infocom had. We ended up with basic “verb object” parsers, ala Scott Adams adventures. Second, we didn’t have many rooms as it was difficult to fit it all into memory and we didn’t have the sophisticated incremental loading that Infocom did with the Z-machine. Still, it worked.

        • By martinpw 2025-11-210:332 reply

          Wrote a mini adventure game in BASIC for the ZX-81. Since it only had 1K of RAM, each room in the game had to be a separate program (max around 25 lines of code or so), and at the end of the room, depending on what actions you took, it asked you to wind the cassette tape to a specific location to load a new room. When I could finally afford the 16K RAM pack, I rewrote it as a single application. Couldn't believe how nice it was to have that much memory.

          • By nessus42 2025-11-213:11

            > it asked you to wind the cassette tape to a specific location to load a new room.

            Wow, that's dedication!

            I wrote my own adventure game for my Commodore PET, which had 8K of RAM. It worked well, but after three rooms of content, I ran out of RAM, so then I gave up.

          • By drob518 2025-11-2112:58

            Where there’s a will, there’s a way, I’d say. Amazing!

        • By RyanOD 2025-11-212:001 reply

          When I was around six years old, my older brothers convinced me computer games were written in paragraph form. I wrote a lot of games! Asteroids went something like this, "You fly around in a ship that is a triangle. When you shoot asteroids they break up into smaller asteroids."

          My brothers got a lot of laughs out of those "programs".

          Fast-forward 45 years and whose laughing now?! :)

          • By chihuahua 2025-11-213:031 reply

            If you had gotten a patent on vibe coding, you'd be laughing now.

            • By chrismorgan 2025-11-215:47

              Setting aside how it hopefully wouldn’t have been patentable anyway, 45 years ago means it would have expired in 2000.

        • By Nevermark 2025-11-211:53

          I iterated on adventure games from junior high into high school, starting with a TRS-80 Model III.

          I created parser recursion in BASIC (without a stack or a then non-existent GOSUB), using a string as the stack, including a character as a return destination (i.e. a flag for conditional GOTOs).

          I was so proud of my parser!

          A wrote many great unfinished games. I was more interested in better coding than completion, but the games still had a lot of color.

          One Easter egg was if you typed “sh*t” the response was: “YOU HAVE DROPPED THE DUNG”.” You could do that anywhere, so a great way to detect you had walked in a circle in a maze or forest.

          Later I used strings as a heap to define very simple 3D vector geometry.

          (In early MATLAB, I prototyped some code with tree data structures implemented with an array, before they introduced their structures. The latter code shipped.)

        • By WorldMaker 2025-11-2022:381 reply

          Writing a terrible "verb object" parser in BASIC was certainly a rite of passage for many of us. I recall making more than one. I also recall my best one having rudimentary "verb object preposition subject" support, but that being about my limit at the time in BASIC.

          But also I had access to TADS and early Inform (at home) and still wound up building a couple in BASIC (because school computer labs would have that available).

          • By vrighter 2025-11-219:10

            I did that in brainfuck once. I am a masochist apparently

      • By TylerE 2025-11-2023:28

        No, not just you. A lot of those games had extraordinary levels of ass-pull. Funny how most Of the devs had (paid) tip lines.

    • By noduerme 2025-11-215:02

      That's really nice. I remember when I was 8 or so, I phoned up NASA and told them I'd drawn up plans for a spaceship. The lady on the phone sweetly took me very seriously and asked questions about where such a thing would launch (answer: any big airport). She encouraged me to send them in.

      Around the same time (1988) my best friend and I started making our first game in HyperCard. Getting more immediate results from that is probably how I ended up a SWE instead of in aerospace.

    • By jmward01 2025-11-2022:39

      'as a kid I....' Man. This brings back memories. I got into the BBS world and started programming in earnest because I wanted to write shells for the MUDs out at the time. A friend and I built some amazing things all in the name of auto-mapping, adding graphics, etc etc. Simple games really help confine a problem to the point that you can grow your curiosity easily with them.

  • By RyanOD 2025-11-2020:58

    This literally gave me goosebumps. It's hard to convey how much Zork (and the rest of the Infocom portfolio) means to me. This was my first entry into gaming on my Commodore 64.

    For anyone out there who had anything to do with bringing these games to market, know that you impacted so many lives in a fun, meaningful, heartfelt way.

  • By mike1o1 2025-11-2018:281 reply

    https://github.com/historicalsource/zork1 Direct link to the repository

    • By tapoxi 2025-11-2019:062 reply

      Is it just me or is GitHub having errors again? I keep getting 500s.

      • By tclancy 2025-11-2020:27

        I got hit as well. It was dark. I was likely to be eaten by a grue.

      • By gemakelijk 2025-11-2019:21

        The pages loads for me but I see a "Cannot retrieve latest commit at this time." message.

HackerNews