Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Pointers on working with another language's syntax

by jonadab (Parson)
on Feb 18, 2003 at 13:15 UTC ( #236243=note: print w/replies, xml ) Need Help??

in reply to Re: Pointers on working with another language's syntax
in thread Pointers on working with another language's syntax

Is that the language in which the text adventures of Zork et al. were written?

Not Zork, but a great many of the modern classics in the same genre: _Curses_, _The Meteor, the Stone, and a Long Glass of Sherbet_, _Spider and Web_, _Christminster_, _Delusions_, and so on and so forth. There is also a clone of _Adventure_ (the cave game that inspired Zork), though the original was written in Fortran I think.

Zork itself (and the other Infocom games) were written using a language and a compiler that AFAIK no longer exist. It is said to have been similar to MDL. Do a Google Groups search for the word "zil" in the group for more information. You will have to wade through some repetition and a lot of people asking questions to which there are few answers, but there is also some real information and a short code snippet or two.

However, when Activision went back and produced _Zork: The Undiscovered Underground_ (to re-awaken interest in the Zork series, since they were also doing a graphical game set in the same universe), they used Inform, since the language used for Zork had been lost.

And, as the other pointer mentioned, Inform can compile to the virtual machine that Zork used, which is probably the second-most widely portable format after ASCII; the games can be played on anything from thirty-year-old mainframes to certain brands of pocket calculators (really). It is one of the few things that can be objectively said to definitely be more portable Perl. (Inform also compiles to another VM called glulx, which is newer and has less historical significance.)

sub H{$_=shift;while($_){$c=0;while(s/^2//){$c++;}s/^4//;$ v.=(' ','|','_',"\n",'\\','/')[$c]}$v}sub A{$_=shift;while ($_){$d=hex chop;for(1..4){$pl.=($d%2)?4:2;$d>>=1}}$pl}$H= "16f6da116f6db14b4b0906c4f324";print H(A($H)) # -- jonadab

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://236243]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2023-12-04 17:19 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (25 votes). Check out past polls.