Note that dungeon (the source port from the mainframe game that eventually became Zork) has been open sourced for much longer. At some point it was machine translated from F77 Fortran to C~90, and comprises some of the most terrifying code I have seen:
Replying to my own comment. I decoded it from the original dtextc.dat file:
Object: 122: stack of listings
There is an enormous stack of line-printer paper here. It is barely
readable and totally unintelligable.
Initial:
There is a gigantic pile of line-printer output here. Although the
paper once contained useful information, almost nothing can be
distinguished now.
Flag1: -8176 (burn take read visible)
Size: 70
Room: 137 (Tomb of the Unknown Implementer)
Read:
<DEFINE FEEL-FREE (LOSER)
<TELL "FEEL FREE, CHOMPER!">
<MEMQ ......
The rest is, alas, unintelligable (as were the implementers).
FORTRAN77 only allowed 5-digit numbers as labels. So people developed habits for numbering loops & ifs. Programs definitely lost readability if you renumbered them.
The labels were in fact numbers, not just numeric strings, since there was a computed GOTO that took an expression to jump to.
I'm pretty sure back then number labels didn't seem any worse than the memory addresses one would use in machine code.
I wonder what aspect of coding today will seem to coders a half-century from now to have been not, sympathy for the machine, but excessive kowtowing towards it?
(I would suggest order-dependent alternative trees, but Hope provides an example of starting with order independence and subsequently reverting to what programmers traditionally expect)
The creator of this github repo is the same person who publicly called for the release of the infocom adventures after Microsoft acquired Activision. (HN discussion from a month ago: https://news.ycombinator.com/item?id=37893794)
I don't see mention of a license in the repo, but I wonder if informal permission was given to make the sources public?
My dumbass opened up this repo full of hope and then realized I can't read any of this XD, I trained in the early 2000s, my first language was Java, I'm pampered as all hell.
The last time I saw assembler was in a bloody history class :P
Mind you, old school game developers were absolute gangsters and gave 0 shits about anything except things working and that's what I appreciates about them.
It's just bloody hard to read, unless you wrote it, and wrote it recently. You effectively have to have the state of the register set in your mind the whole time.
Lots of C code from back then is just as impenetrable though. It has structure but it's terse and mechanical.
Everyone rolling their own lists and hash tables and string functions in every program, lots of unrolled loops, etc. Different constraints. Memory & CPU was expensive.
https://github.com/devshane/zork
http://mirrors.ibiblio.org/interactive-fiction/games/source/...