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,…
Microsoft makes Zork open-source
191–200 of 256 posts
Re: Microsoft makes Zork open-source
#192So 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.)
Re: Microsoft makes Zork open-source
#193I'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?
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
#194Earlier 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…
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
#195Re: Microsoft makes Zork open-source
#196Earlier 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...
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
#197When 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?
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
#198So 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)
Re: Microsoft makes Zork open-source
#199I 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.
Re: Microsoft makes Zork open-source
#200Earlier 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.