Live data from Hacker News

Microsoft makes Zork open-source

opensource.microsoft.com

171–180 of 256 posts

Re: Microsoft makes Zork open-source

#171
post #165

Earlier quoted context omitted.

Yeah, they probably started with what was easiest/oldest/most iconic with the clearest copyright history/ownership record. In at least one of the above mentioned cases, we do know that the current rights holder and/or most recent licensee appears to be the BBC: https://www.bbc.co.uk/programmes/articles/1g84m0sXpnNCv84GpN... The BBC probably has a say in if that game will be open source. (Their multi-decade effort at…

The rights to Hitchhiker's and Shogun reverted to their credited authors (Douglas Adams and James Clavell) after they went out of print. The rest of the Infocom library was created as works for hire entirely by salaried Infocom employees, so the rights went from Infocom to Activision to Microsoft.

Right, which is why I assume the BBC has the entire rights today to Hitchhiker's and was gifted them by Douglas Adams' estate, but my searches didn't turn up enough evidence to back that assumption so I didn't include it, but I feel rather sure of it. (ETA: Related to the chain of how the BBC wound up owning was left of the H2G2 wiki for a time before spinning that back out to different owners.)

Re: Microsoft makes Zork open-source

#172

Earlier quoted context omitted.

That is the exactly the suggested compiler in this blog post. (These repos have been compiled with it for a while. The biggest change in these [Internet Archive-uploaded] repos is an official Microsoft-backed MIT License as opposed to assuming Fair Use for Archival Use prior to now.) I'm hoping Microsoft may have a chance to open source more of the original Infocom compilers and VMs, even if they would be hard to run…

Zilf liked it, but Zapf is flagged by Windows 11 Smart App Control as potentially dangerous to my machine... And there's no way to turn it off for one app. And if I turn it off, I can only turn it back on by re-installing Windows. What the bloody... So now I want to download and build. But it's .net 10, so I apparently need VS 2026, which I hadn't bothered to install yet. Oh my.

[dead]

Re: Microsoft makes Zork open-source

#173
post #31

I've seen a few things called 'Zork source code' in various places over the years (even on a CD that came with a game programming book of some sort), and copies like this: https://github.com/MITDDC/zork What's the lineage here?

Zork was originally written at MIT for PDP-10s in an obscure Lisp dialect (MDL). The authors then later formed a company to sell the game on micro-computers. To do it, they built a virtual machine optimized for this purpose, a new Lisp dialect (ZIL) that could compile to the virtual machine, and the ported the game over to that new dialect. Even so, they had to split the game into three parts to fit. The source you'r…

The MDL Programming Language Primer; Michael Dornbrook, Marc Blank:

https://donhopkins.com/home/archive/MDL_Programming_Primer.p...

Introduction

Over the years the original MDL (pronounced "Muddle") Primer by Greg Pfister [Pfister 72] became more and more a reference manual and less a Primer from which a novice could learn the language. Some of the text of the original has been re-used in this document, but much has been eliminated, changed, or re-ordered, and a reasonable amount of new material has been added. In particular, a number of figures and many more examples have been added to make some of the more difficult concepts easier to understand.

This Primer is intended as an introduction to MDL. After assimilating the information contained herein, you should be able to write very good programs. However, for any individual topic in the MDL Primer there is likely to be more information available in The MDL Programming Language [Galley 79] and The MDL Programming Environment [Lebling 80], and there are many topics in these documents which are not addressed in the Primer. Anyone who plans to do any serious work with MDL should read these documents.

One of the difficulties in writing a Primer is to make it useful to those who don't know anything at all about programming without boring those who know a lot of the basics. Hopefully those at both extremes will find this to be easy to read. If you are a complete novice, however, there may be some unfamiliar references and some material which doesn't make sense on your first reading.

Why MDL?

Many people ask this. It is often hard for those who use MDL to put into words their reasons for liking it. Those of us who use MDL are convinced that it is a better language than any other we've encountered. Unfortunately, very little has been done to convince others of this and spread the use of this marvelous tool.

MDL was created in the early 1970's by a group at the Dynamic Modelling/Computer Graphics division of MIT's Project MAC (later renamed the Laboratory for Computer Science). It is an offshoot of the original Lisp. There have been quite a few offshoots of Lisp in the past 10 years MacLisp, InterLisp, Lisp Machine Lisp, Lisp1.5, UCI Lisp, Franz Lisp, etc., etc. but none of them are like MDL.

Since MDL is a distant relative of Lisp and many of those first learning MDL have some familiarity with Lisp, a short comparison of the two languages follows. If you are not familiar with Lisp (or, better still, with any other languages) count your blessings (you don't have any bad habits to unlearn) and skip the following discussion.

MDL's similarities to Lisp: MDL shares the advantages of Lisp over the more popular languages such as Basic, Fortran, Cobol, Algol, Pascal, etc.

It has an interpreter which allows real-time interaction and allows you to define and test individual functions separately.

Its syntax is very simple.

- Any data object or function can be passed as an argument or returned as a value.

- It has list structures equivalent to Lisp's.

- Recursive functions can be written quite easily.

The similarities between MDL and Lisp are such that in many cases a few minor changes to Lisp code will convert it into working MDL code. Given the other features of MDL, no MDL programmer would write the program in the same Lisp style.

MDL's dissimilarities to Lisp: Many objections to Lisp are answered in MDL.

-Strongly typed languages provide much better error detection tools than Lisp. MDL allows declarations of all variable types to whatever level of complexity is desired. A variable can be declared to be one of several types.

- Recursion is a useful tool, but often is not a very efficient way to solve the problem. Lisp's motto "To iterate is human, to recurse divine," is not one of MDL's tenets. MDL allows recursion, but provides excellent facilities for iteration.

- MDL has a very powerful set of data structures Lists, Strings, Vectors, and Uniform Vectors. Although lists are a very useful and flexible form of structure, they are certainly not optimal in all cases. MDL's various structures allow the user to save space and access time. MDL's structures are also "first class," in that the standard functions for manipulating data structures can be used on all of them equivalently.

Probably the biggest complaint against Lisp-like languages is that they are unsuitable for "production programming" because they are too slow. MDL has an excellent compiler which as far as we know is the best compiler for a Lisp-like language. It produces machine code equivalent in efficiency to Fortran and Cobol, which are considered very efficient.

-MDL has a rich library of useful program aids. The editing and debugging functions are among the best. The package system allows building of very large programs from small sections, usually written by different people, without worrying about variable name conflicts.

Probably the most distinctive feature of MDL is its mechanism for user-defined types, which is the best of any language with which we are familiar. User-defined types have been retrofitted on some of the newer versions of Lisp, but in most cases they can be used only with special functions and cannot be used in the same general way that Lists can.

Hopefully some of your questions have been answered and you have some ready answers when you get flak from your non-MDL programming friends. Learning MDL should be an enjoyable and worthwhile experience. Your reactions to this Primer and suggestions for changes are always welcome. Good luck!

Warning! You are about to embark on an undertaking fraught with peril. MDL programming has been proven to be habit-forming. Once you begin, you may find the habit hard to kick!

Acknowledgments

We are deeply indebted to our predecessors for their work on this topic: Greg Pfister, who wrote the original A Muddle Primer [Pfister 72], and Stuart Galley, who updated that document and added significantly to it to create The MDL Programming Language [Galley 79] document. Some of the text and examples of the original documents survive here, and some other material was simply rewritten in an order and style which we consider more comprehensible.

Special thanks to Chris Reeve, Dave Lebling, Stu Galley, Poh Lim, Thomas Michalek, Dave Scrimshaw, Tim Anderson; Mark Plotnick, and Prof. J.C.R. Licklider for their many comments and suggestions.

No document on MDL would be complete without acknowledging the "original implementors." If not for their inspiring work, this fine language would not exist. We are forever grateful to Gerald Sussman, Carl Hewitt, Chris Reeve, Dave Cressey, and Bruce Daniels. Thanks are also extended to the many unnamed hackers who have improved the language and the programming environment over the years.

This work was supported by the Advanced Research Projects Agency of the Department of Defense and was monitored by the Office of Naval Research under contract N00014-75-C-0661.

This document was prepared using Scribe and printed on the Xerox Dover printer.

(c) Copyright 1981 Massachusetts Institute of Technology. All rights reserved.

Re: Microsoft makes Zork open-source

#174

Earlier quoted context omitted.

maybe they just made a mini-lisp and called it MDL?

It’s very Lispy, but it’s not strictly Lisp. Why, for instance, use “ ” to surround various forms but not others? If they were to make a mini-Lisp, I’d expect something more like Gnu Emacs Lisp, something that’s obviously a Lisp, but heavily influenced by the Lisps of the day. I’ve found a few old MDL manuals linked from Wikipedia, but none of them have any sort of “Here’s why we created MDL” section that I could fin…

MDL is Grue Emacs Lisp ;)

Re: Microsoft makes Zork open-source

#175

bummer > The code relies on old internal Infocom toolchains (ZILCH compiler, WATFOR, > mainframe environment) that are not open and likely not preserved.

How bad is it? I mean you have the source, it could be ported. Or am I completely misunderstanding and you specifically want the old toolchains, in which case A respectful moment of silence for compilers lost.

Speaking of porting I have always vaguely wanted to port the original basic version of ultima, I mean never enough to actually do it, but I like the idea of the source being available to do so. even if it is just an accidental artifact of how it was made.

Re: Microsoft makes Zork open-source

#176
post #77

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 langu…

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, yo…

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.

Re: Microsoft makes Zork open-source

#177
How did Microsoft get to own it in the first place? And the original MDL version of Zork has been around forever. I wonder if Microsoft has any of the other Infocom games and might release them too.

And, "A game that changed how we think about play"? Um, that was ADVENTURE. Zork was arguably better, but it was in the same vein, and later.

Re: Microsoft makes Zork open-source

#178
post #168

Earlier quoted context omitted.

The easiest way to get it to run from a Python interpreter would be to compile the ZIL source to a Z-Machine binary, which you can do with ZILF [1], then use a Z Machine library in Python (such as a pure Python implementation of the Z-Machine [2]) to load/run it. A coding agent may even be able to suggest that path, as knowledge of at least the existence of both ZILF and Python ZVM should be in training sets. The mor…

Also if you don't wall to install a whole C# stack on constrained netbook/non supoprted old machine: https://notabug.org/coderain/zilutils EDIT: Wrong link. Wait, I'm sure there's a C based alternative out there.

[dead]

Re: Microsoft makes Zork open-source

#180

Earlier quoted context omitted.

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, yo…

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 wi…

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.
Post reply on HN