Live data from Hacker News

Microsoft makes Zork open-source

opensource.microsoft.com

191–200 of 256 posts

Re: Microsoft makes Zork open-source

#191
post #139

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 a public-domain mainframe game called Dungeon developed at MIT. Its authors founded Infocom, split the game into 3 pieces, added more content, and released it for microcomputers as the 3 Zork games. The source code that's been floating around since the 80s is for the original Dungeon game. Between the early 80s and the early 90s, the source was translated from MDL to DEC FORTRAN to Unix f77 to C,…

[deleted]

Re: Microsoft makes Zork open-source

#192
post #73

So Zork was written in Lisp? It had to be! --- >

From one perspective ADVENT is just SHRDLU turned inside out, after all. (Though of course from another perspective it's a fancier WUMPUS.) ('ADVENT' is https://en.wikipedia.org/wiki/Colossal_Cave_Adventure , for anyone who isn't familar.)

(This is not an original observation, to be clear: see eg. https://nickm.com/if/riddle_machines.html )

Re: Microsoft makes Zork open-source

#193

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?

Original MDL version: https://github.com/MITDDC/zork

DECUS fortran version: https://www.ifarchive.org/if-archive/games/source/dungeon-3....

f77 version for Unix: https://github.com/videogamepreservation/zork-fortran

(GNU fortran port: https://github.com/GOFAI/dungeon)

f2c translation (basis of many versions): https://github.com/devshane/zork

(See README for history of this version)

Re: Microsoft makes Zork open-source

#194

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…

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?! :)

Re: Microsoft makes Zork open-source

#196
post #31

Earlier quoted context omitted.

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…

This is about the fourth article I've read that mentions Lisp today on here. Okay, I get it. Lisp is great. Where should I start? It wasn't like I was planning on doing anything else at work next week...

Everyone's recommending books; I'm going to do the opposite and recommend a specific dialect.

Install Clojure. Read https://clojure.org/guides/getting_started and choose an editor. If you don't have a favorite editor, I recommend NeoVim with the LazyVim package (clone https://github.com/LazyVim/starter and follow instructions), then run the :LazyExtras command and install the Clojure package. If you haven't used LazyVim before, https://lazyvim-ambitious-devs.phillips.codes/ is a good book; you can read it online for free, then if you find it useful, purchase a copy to reward the author for his hard work.

Once you've installed an editor, you'll want to install https://leiningen.org/ which is the de facto (if not de jure) package manager for Clojure. Makes compiling your Clojure code to an .exe (for distribution to other machines where Clojure isn't installed) about as simple as it can be.

Once you've got an editor and a package manager installed, you're ready to read https://clojure.org/guides/learn/clojure as well as the various books on Lisp others are recommending. Depending on which book it is, the functions may have different names (e.g., some languages use `first` and `rest` while others stick with the historical `car` and `cdr` names, but they're the same functions), but you should find that the concepts translate perfectly well from one dialect of Lisp to another and the only challenge is having to look up what name the function has in the dialect you're using.

Re: Microsoft makes Zork open-source

#197

When EA recently made Command & Conquer free software, it was clear that the various art assets were not covered under this. Is there something similar for a text based adventure game? Does the writing count as code?

In many ways it's the opposite, the code counts as writing. At least where I live (should be similar in other EU countries) from the perspective of copyright law code is largely classified as literary work. There are few special rules related to fact that code is typically written by large team employed by company compared to books being written by single author and printed by publisher. Also few special rules that don't make sense for regular literary works related to reverse engineering, interface compatibility with other software and copying as part of installation/execution process.

All the code specific licenses are arbitrary rules decided by right owners under which they license others to use their work. Book authors typically don't have to worry whether when granting permission to read their work they also need to grant rights to relevant patents, or whether dynamic or static linking should be permitted.

Assuming Microsoft owns all the necessary rights for everything I don't see a major reason they couldn't release it as single work under whatever license they want. Considering the way this specific game is written I don't think you can even cleanly separate code from rest of the writing. It's all one big program with bunch of short string literals sprinkled all over the place. You could take all the string literals, but without code defining how those strings are ordered in a non linear and interactive way it would make as much sense as reading a book where all the sentences have been sorted in alphabetical order.

I doubt any of the Zork authors were part of writer union and negotiated separate licensing rules for the text they wrote.

With regards to common case where source is released with open source license separate from art assets there are a couple of reasons. It's much easier to separate pictures and music from code and tell that those are covered by different license. For some of the art assets especially music it's not uncommon that the publisher themselves don't have full rights to them and only have limited license to use in game but not to relicense as separate works. Releasing source code without art assets makes it easier to maintain commercial value and limit ability for others to exploit the work as ready to use product (or sequals) while still allowing programmers to study the code and learn from the technical tricks in code or making new games based on same engine. If I am not mistaken at

From the historical preservation perspective art assets are less likely to bitrot and become unusable. 20 years in future you will likely still be able to rip them out of commercial builds of game with little losses and worst case observable as standalone media. But the code is a lot more likely break and not be runnable on future OS/hardware. Code also has a lot more hidden aspects that you can much more easily observe by reading source code directly instead of reverse engineering the compiled executables. Better release the source code while it hasn't been completely lost.

Re: Microsoft makes Zork open-source

#198

So derivative works are possible, who will be the first to attach Zork to the OpenAI API?

Perhaps this is a stupid/contentious idea (partly because it somewhat kills the "spirit" of the original games), but there's a little part of me that would be interested in seeing the scene building parts of Zork piped into an image generation service to visualize the landscape that the game describes. (the grue would obviously just a picture full of black, though some creepy eyes would be a nice touch)

It exists

https://dzlab.github.io/notebooks/flax/vision/diffusion/2023...

Re: Microsoft makes Zork open-source

#199

I wonder how long before someone hooks up AI image generation for the scenes with this. It could either be very tastefully done or complete slop. Probably the second option.

It exists

https://dzlab.github.io/notebooks/flax/vision/diffusion/2023...

Re: Microsoft makes Zork open-source

#200

Earlier quoted context omitted.

Where do you get that the announcement was written by an LLM - they list the authors of the article on the page.

"When Zork arrived, it didn’t just ask players to win; it asked them to imagine" Literally the first sentence.

No one can make typos without being framed as an LLM.
Post reply on HN