I was responsible for two games on Unix: Ching and GoFish.
Ching was a fortune-telling game: you would type a question or situation
as a text. The program would hash the text, convert it into yarrow
sticks, and use display the "fortune". I copied the fortunes from a
book, so I don't think ching actually was ever part of a Unix
distribution because of the copyright. Some hand-carried versions got
out, though, I think.
The other game I wrote for my son: it played the game "Go Fish". It was
amazingly hard to win, even for an adult, because it used a simple
card-counting strategy: if the opponent asked for a 6 and I didn't have
one I'd remember that the opponent had a 6, and when I drew one I
immediately asked for it. A number of my co-workers tried the game out,
and most of them lost badly. GoFish was distributed, and I actually was
accused in public by someone who was sure the game cheated!
A couple of years ago, a co-worker was showing me a "Unix on a chip"
machine, and I saw that it had the sources for everything. I looked at
the source for it, which was in C -- one of the first C programs I
wrote. As I read the code, I discovered a bug: a type mismatch when
calling a function. It was a bug, but didn't affect the behavior. The
other thing I noticed was that the program had three GOTO's in it. I
On 2023-02-01 15:24, Dan Cross wrote:
[TUHS to Bcc]
On Wed, Feb 1, 2023 at 3:23 PM Douglas McIlroy
annals of UNIX gaming, have there ever been notable games that have operated as multiple
processes, perhaps using formal IPC or even just pipes or shared files for communication
between separate processes
I don't know any Unix examples, but DTSS (Dartmouth Time Sharing
System) "communication files" were used for the purpose. For a fuller
story see https://www.cs.dartmouth.edu/~doug/DTSS/commfiles.pdf
Interesting. This is now being discussed on the Multicians list (which
had a DTSS emulator! Done for use by SIPB). Warren Montgomery
discussed communication files under DTSS for precisely this kind of
thing; apparently he had a chess program he may have run under them.
Barry Margolin responded that he wrote a multiuser chat program using
them on the DTSS system at Grumman.
Margolin suggests a modern Unix-ish analogue may be pseudo-ttys, which
came up here earlier (I responded pointing to your wonderful note
probably a bit more Plan 9-ish than UNIX-ish
So it was with communication files, which allowed IO system calls to
be handled in userland. Unfortunately, communication files were
complicated and turned out to be an evolutionary dead end. They had
had no ancestral connection to successors like pipes and Plan 9.
Equally unfortunately, 9P, the very foundation of Plan 9, seems to
have met the same fate.
I wonder if there was an analogy to multiplexed files, which I admit
to knowing very little about. A cursory glance at mpx(2) on 7th
Edition at least suggests some surface similarities.
- Dan C.