Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!newshub2.home.com!news.home.com!news.maxwell.syr.edu!feed2.onemain.com!feed1.onemain.com!uunet!dca.uu.net!ash.uu.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: Re: TCP/IP (socket) support for the Z-machine
Message-ID: <GGB25u.DH4@world.std.com>
Date: Wed, 11 Jul 2001 10:51:30 GMT
References: <UwV27.16597$WS4.2648109@news6-win.server.ntlworld.com>
Organization: The World Public Access UNIX, Brookline, MA
Followup-To: rec.arts.int-fiction
Lines: 53
Xref: news.duke.edu rec.games.int-fiction:64169 rec.arts.int-fiction:89662

(r.g.i-f is for discussion of playing games, r.a.i-f
is for discussion of creating them, so I've crossposted
this to r.a.i-f and set followups appropriately.)

jeremyalansmith <jeremyalansmith@netscapeonline.co.uk> wrote:
>I have recently been programming some internet code (in Windows, using
>Winsock, which is BSD compatible), and realised it wouldn't be very
>difficult, technically, to program in TCP/IP support for the Z-machine. This
>would enable people to write multiplayer games.
>
>As far as I can see, the only functions needed would be:
>
>    *Get this machine's IP address (gethost I think)
>    *Translate a domain name into an IP address (gethostbyname)
>    *Open a socket to an IP address/port

All three of these should be a single function.

>What would be more difficult is deciding how a multi-user game should be
>played, and the protocols required.

Yes. I wouldn't spend any time on the technology if you can't solve
the hard problem; and plenty of people have already tackled the hard
problem; they're called "MUDs". I can recall at least four
*interactively programmable* MUDs in the last ten years:
LPmud, TinyMUCK, TinyMOO, Ubermud, and there are probably more
that I've never heard of (not to mention mine, Sludge). Plus
there were countless other ones that weren't interactively
programmable (TinyMUD, DikuMUD, etc. etc. etc.). Then to
hit the part you seem to want, which is distributed muds,
there were CoolMUD and UnterMUD.

>Please bear in mind that the MUD system would be distributed, as opposed to
>having a central server.
[snip description of having every machine run the code independently]

This doesn't work due to simultaneity problems. (Bob and Gene
both type 'get axe' at the same moment.) Muds all avoid this
by using a centralized server, or for the distributed muds,
requiring semaphore coding (CoolMUD) or requiring all events
in the same room run on a single machine (UnterMUD).

>Anyway, this is hopefully food for thought, I guess if anyone's interested
>in writing a Z-machine MUD then they'll comment on the thread, I look
>forward to any ideas or comments anyone has.

Well, you can certainly do it if you just want to do it for coolness
sake. But hacking TCP/IP support into a z-machine interpreter just
because you can doesn't seem that interesting to me; I mean, you
could hack in image processing functions and have a
text-adventurer-parser photoshop clone... but... so?

SeanB
