zlacker

Zork source code, 1977

submitted by brayth+(OP) on 2020-05-07 21:32:41 | 207 points 75 comments
[view article] [source] [go to bottom]

NOTE: showing posts with links only show all posts
1. brayth+b[view] [source] 2020-05-07 21:33:56
>>brayth+(OP)
Jason Scott: https://twitter.com/textfiles/status/1258483768010190849

Jason cloned the repository here: https://github.com/historicalsource/zork-1977-source

◧◩
4. lerie1+x8[view] [source] [discussion] 2020-05-07 22:34:49
>>microt+P5
https://archivesspace.mit.edu/repositories/2/resources/1265

"Access to collections in the Department of Distinctive Collections is not authorization to publish. Separate written application for permission to publish must be made to Distinctive Collections. Copyright of some items in this collection may be held by respective creators, not by the creating office."

So, I don't know, does seem a bit on the legal edge?

6. raldi+ta[view] [source] 2020-05-07 22:48:17
>>brayth+(OP)
If you like this, you may like "I spent my weekend hacking Zork" (2012): https://www.reddit.com/r/raldi/comments/10dtch/i_spent_my_we...
9. tosh+7d[view] [source] 2020-05-07 23:08:32
>>brayth+(OP)
Great way to learn more about Zork and the Z-machine:

Eric Lippert wrote an ocaml implementation and blogged about it

https://ericlippert.com/2016/02/03/north-of-house/

11. tyingq+Ef[view] [source] 2020-05-07 23:28:44
>>brayth+(OP)
I'm not sure there's enough of the MDL environment around to actually get it running. The effort is here: https://muddlers.org/
◧◩
27. th0ma5+2J[view] [source] [discussion] 2020-05-08 04:34:45
>>butter+nE
See here: https://en.wikipedia.org/wiki/Monad_(functional_programming)...
◧◩◪
29. newman+NJ[view] [source] [discussion] 2020-05-08 04:43:38
>>th0ma5+2J
Or better yet, from the MDL documentation https://mdl-language.readthedocs.io/en/latest/08-truth/#824-...
◧◩
31. palad1+XJ[view] [source] [discussion] 2020-05-08 04:46:43
>>neotek+zC
I think this still works for macOS:

https://www.logicalshift.co.uk/unix/zoom/

◧◩
39. TheDon+lO[view] [source] [discussion] 2020-05-08 05:43:19
>>traes+4E
MDL was a language that was good for creating these mini DSLs in. Lisps today can do that too.

If you want a modern language that is purpose-built for creating games like this, there are a ton of visual novel engines. Those engines are optimized for trees/paths of dialogue and text, and for displaying media (images + audio) with the text.

renpy [0] is probably the most popular of those, but there's a long history of them if you do some digging with those keywords.

[0]: https://www.renpy.org/

◧◩◪◨
42. palad1+eS[view] [source] [discussion] 2020-05-08 06:30:49
>>dubroc+sP
Yes, that looks to be an open issue:

https://github.com/Logicalshift/zoom/issues/13

◧◩
46. larsbr+oU[view] [source] [discussion] 2020-05-08 06:58:59
>>tyingq+Ef
The Muddle interpreter and runtime is alive and well: https://github.com/PDP-10/its/tree/master/src/mudsys
◧◩
56. coldpi+io1[view] [source] [discussion] 2020-05-08 12:22:31
>>traes+4E
I'm not an expert in this, but I think Twine is one well-supported option. In general the genre is called "Interactive Fiction" these days, and there's a bunch of engines for it, both graphical and non-. There's a broad overview here https://en.wikipedia.org/wiki/Interactive_fiction#Software
◧◩
60. DonHop+DD1[view] [source] [discussion] 2020-05-08 14:00:07
>>larsbr+6U
This seems to be an earlier version than the one that included the One Lousy Point Donald Woods Stamp (a tribute to one of the authors of Adventure). Isn't there another version of the later Zork source code in MDL floating around, that has the Don Woods Stamp?

I worked with him at Sun on NeWS -- he's a great PostScript hacker! When you logged into his workstation, /etc/motd said "Welcome to Adventure. Would you like instructions?" -- but don't type "yes" to the Unix shell or you'll regret it. Here's his implementation of QuickSort in PostScript, and he also wrote the Spider card game for NeWS that shipped with OpenWindows (which is a nice clean well documented example of NeWS PostScript code), and he wrote a bunch of Open Look widgets and user interface plumbing for The NeWS Toolkit, too:

https://donhopkins.com/home/code/quicksort.ps.txt

https://donhopkins.com/home/news-tape/fun/spider/spider.ps

http://www.icynic.com/~don/

Here's a great interview with Don Woods from GET LAMP, in which he mentions playing Zork at MIT over the ARPANET. He describes the point at which he stopped playing Zork, when he had almost solved the entire game, but then they added a whole bunch of new stuff to the game that night. So he realized he would never completely solve it, and finally stopped playing.

I presume the "One Lousy Point" stamp is a cheeky tribute to Don Woods' ordeal playing Zork, because it's so damned hard to figure out how to find it (which I won't spoil):

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

    ---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     <
    |                         |
    ---^----^----^----^----^---
◧◩◪◨⬒
62. metroh+WI1[view] [source] [discussion] 2020-05-08 14:36:51
>>palad1+eS
Use Spatterlight:

https://github.com/angstsmurf/spatterlight/releases

◧◩◪
65. DonHop+CO1[view] [source] [discussion] 2020-05-08 15:07:48
>>fenoma+WJ
Zork definitely has some puzzles that are practically impossible to figure out, without some help.

The ITS operating system that Zork was developed on was a extremely open, with very little security, but lots of obscurity.

ITS was like the original "social network," where users would hang out and socialize, with lots of visibility and awareness of each other and what they're doing, where everybody could see each other's files and read each other's email, with programs like "INQUIR" for telling other people about yourself, "WHOIS" and "FINGER" for finding out about other people, "WHOJ" to see who's on and what they're doing, "SEND" and "REPLY" for sending immediate messages back and forth, "UNTALK" for multi-window chatting, "MAIL" for sending email, "RMAIL" and "BABYL" for reading email, etc.

And (important to Zork) also "OS" (Output Spy) to spy on other people's sessions over their shoulders!

Only two people could play Zork at once on DM, and only after east coast business hours. Usually there were a few other people just hanging out, spying on the two lucky people playing, chit chatting with each other and the players by sending messages and email, etc.

It was considered perfectly normal and inoffensive behavior for people to spy on each other and learn about running Lisp, hacking Emacs, or playing Zork. (As long as you're not creepy or obnoxious about it, but people tended to be polite and follow the Tourist Policy, and people liked to help each other learn. And if you liked creepy obnoxious stuff, you could subscribe to REM-DIARY-READERS!)

https://medium.com/@donhopkins/mit-ai-lab-tourist-policy-f73...

>TOURIST POLICY AND RULES FOR TOURIST USE OF ITS MACHINES

>It has been a long standing tradition at both the Laboratory for Computer Science and the Artificial Intelligence Laboratory at MIT to allow non-laboratory people to use the laboratories’ computers during off hours. During the early days of the laboratories’ existence a non-laboratory person (such people have come to be called tourists) could gain access to one of the computers by direct personal contact with a laboratory member. Furthermore, tourist access was controlled because access to the laboratories’ computers was de facto achieved through on site terminals. A tourist sponsored by a laboratory member would generally receive some guidance and tutelage concerning acceptable behavior, proper design techniques for hardware and software, proper programming techniques, etc. The expectation on the laboratories’ part was that a large percentage would become educated in the use of the advanced computing techniques developed and used in our laboratories and thereby greatly facilitate the technology transfer process. A second expectation was that some percentage would become interested and expert enough to contribute significantly to our research efforts. Tourists in this latter group would at some point in time graduate out of the tourist class and become laboratory members. In actual fact a number of former and present staff members and faculty earned their computational wings in just this fashion. [...]

MIT-DM was the Dynamic Modeling Lab's PDP-10 running a slightly different version of ITS, and it was the only ITS machine that had any form of file protection, which was primarily used to hide the Zork source code. But even that was essentially only security through obscurity, which was why the source was eventually leaked.

Zork had its own end-game, but getting an account on MIT-DM was like the pre-game, and logging into MIT-DM itself was like the Zork Lobby where you'd hang out waiting for your turn and socializing.

You could get an account on most of the ITS machines just by asking nicely and using the right magic words, like mentioning Lisp on MIT-AI, or Macsyma on MIT-MC, or SomewhatBasic on MIT-ML. But Zork was so sought after that DM was one of the harder ITS machines to get an account on -- you couldn't just say you wanted to play Zork or hack Lisp: you had to say you were interested in MDL for some plausible sounding mumbo jumbo like "algebraic applications". But they still knew you just wanted to play Zork, though.

PDP-10/its: Incompatible Timesharing System (github.com)

https://news.ycombinator.com/item?id=13514918

https://github.com/PDP-10/its

◧◩◪
69. sandym+f92[view] [source] [discussion] 2020-05-08 16:58:57
>>jschwa+4C
"You are likely to be eaten by a Grue. If this predicament seems particularly cruel, consider whose fault it might be; not a torch or a match in your inventory." https://youtu.be/4nigRT2KmCE
◧◩◪◨
70. WorldM+8L2[view] [source] [discussion] 2020-05-08 20:43:40
>>microt+iN1
IANAL, but one could assume that a similar policy to the copyright of a thesis or dissertation would apply here, which is to say that the students retained copyright (if they did not create the work "for hire" under a grant), but the University keeps a non-exclusive license to republish for pedagogical, scholarly, or administrative reasons. Arguably a open source dump like this definitely fits scholarly if not pedagogical uses.

But it's an interesting gray area certainly, as Zork was probably not "properly" prepared as a thesis/dissertation including MIT's recommended explicit statement granting the above non-exclusive license: "The author hereby grants to MIT permission to reproduce and to distribute publicly paper and electronic copies of this thesis document in whole or in part." [1]

[1] https://oge.mit.edu/gpp/degrees/thesis/copyright/

◧◩
73. GetLam+mO4[view] [source] [discussion] 2020-05-09 18:19:56
>>dws+aL
BTZ Assembler (better than zork) discussed by Robert Pinsky here https://m.youtube.com/watch?v=9dj3XiJKhYQ

http://www.ifwiki.org/index.php/BTZ

[go to top]