1997Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: List software -->
<!--X-From-R13: pynjNahyy.arg -->
<!--X-Date: from babe.globecomm.net [207.51.48.8] by mx01.ny.us.ibm.net id 858797306.47441&#45;1 Wed Mar 19 18:48:26 1997 -->
<!--X-Message-Id: 3330293d431d002#msgSFO01,schwab.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: Pine.SOL.3.94.970319120737.3839A&#45;100000#eduserv1,rug.ac.be -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: List software</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:claw#null,net">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00142.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00143.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00137.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00146.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00145">Author</A>
&nbsp;|&nbsp;<A HREF="#00145">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00145">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: List software</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: Wout Mertens &lt;<A HREF="mailto:Wout.Mertens#rug,ac.be">Wout.Mertens#rug,ac.be</A>&gt;</LI>
<LI><em>Subject</em>: Re: List software</LI>
<LI><em>From</em>: <A HREF="mailto:claw#null,net">claw#null,net</A></LI>
<LI><em>Date</em>: Wed, 19 Mar 97 08:40:37 -0800</LI>
<LI><em>Cc</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI>
<LI><em>Reply-to</em>: <A HREF="mailto:claw#null,net">claw#null,net</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
Note: CC'ed to the list for general indigestion.

On 19/03/97 at 12:12 PM, Wout Mertens &lt;Wout.Mertens#rug,ac.be&gt; said:
&gt;On Tue, 18 Mar 1997 claw#null,net wrote:

&gt;&gt; 'Course if I do that, I may also try and revive something like
&gt;&gt; MUD-RolePlay-L or Marcus' Wizard list.  I suspect from the groups that
&gt;&gt; there's still a huge unfilled need for concentrated, guaranteed high
&gt;&gt; signal MUD discussion.
&gt;
&gt;Sounds nice... (I won't be on them mind you, I haven't got any time
&gt;left to wizard. I'm happy enough that I still have time to remember
&gt;that I have to write a mud...)

Heck, at the rate things are moving right now, I'm not sure I'll have
any time to even look at moving the list base to Steward.  &lt;sigh&gt; 
Still, the idea's there.

&gt;Which reminds me: How did you write your mud? from scratch? based on
&gt;some routines you had lying around and them fused together?

Oooh boy.  Long story.  Short answer: From scratch, with lots of
retries, restarts, and abandoned dead ends.  I was contracting pretty
much the whole time, so also borrowed lots of ideas from various
workplaces and folded them in (more or less successfully) as I went
along.

Back in, oh, roughly late '84 timeframe I was playing Shades and SX
MUD (MUD1/MUD2) a lot, and started talking to Pippin Caudry (cf IOWA
and Bartle's MUD survey for placement/reference) about writing a MUD
server for him to run on a BBC micro on direct dial-in lines.  About
the time that I actually started work on designing the beast (an
absolute hack I now would shuddered if it had seen the light of day),
Pip instead decided to run with a local PL/1 chap who said he could do
the neatest thing since sliced bread (never happened -- Mirrorworld,
which was already in development, took its place).

However, I was hooked on the idea of a really *NEAT* MUD server.

I had hold of a PC, a PDP-10, and was infatuated with the parallel
processing concepts of the the then new Inmos Transputer and Occam. 
I'd also just bought a copy of Zorland C (nee Datalight, later
Zortech, now Symantec) and was teaching myself C.  I generously
figured that by the time I had the damn thing designed and partly
written that I'd have a Transputer based machine with at least three
or four T400's to do the rest on, and Occam would probably have
succumbed to C (pray pray).  &lt;kof&gt;

&lt;&lt;Still got all those early notes and design drafts too&gt;&gt;

By about 1Q87 what with the rest of real life and trashing everything
I'd done a couple times, I had a DB layer all done along with area
import/export, along with offline room, object, and mobile coding. 
&lt;&lt;Can you say three byte longs?  I thought you could.  I used them
*everywhere* in the DB to conserve space (lotsa arrays).  &lt;unghh&gt;&gt;&gt; 
Never did touch the actual run-time aspect then -- was still waiting
for decent MP hardware to do the event stuff on (it was event driven
from the start -- I never even thought of a polling loop).

Nearly went to work for CIX with an aim to doing a MUD server on the
side for them.  Came back to the States instead.

About the same time I started get on the 'net seriously, and
discovered LP, the Tiny-* clan etc.  Trashed everything I'd done
again, dropped the three byte longs, and decided to go with a simpler
DB, and event architecture running atop MINIX.  Fell in love with Aber
(as a player) and spent an awful long time playing Northern Lights. 
Later decided to move the OS base to XINU.  

MOO (the original, pre-Lambda) happened about this time.  Thought it
was a wonderful idea, but buggier than crap.  Thought the design
concept was neater than sliced bread (everything in the DB, totally
dumb server, objects/methods etc in the DB too, objects animated
themselves).  Also thought the everything-in-memory model was stupid,
and didn't like the polling architecture.  

Started working a lot with OS/2 back when 2.0 came out.  Decided that
this multi-threading thing was a pretty damned neat replacement for
full parallel processing and Transputers, even if not quite as slick. 
Started recoding, moving everything to OS/2 and MT.  Went to a
disk-based DB model with a central MOO-style DB running everything.

Back in Oh, '94-ish decided to do C++ the thing.  Started again. 
Cleaned up the event model a LOT.  

Everything is homegrown.  Major inspirations (mostly in time order):
Shades, MUD2, Transputers, Marcus Ranum, Uber, Unter, LP, Aber, Tiny*,
Northern Lights, MOO, Stephen White, LambdaMOO, a large bunch of IBM's
OS/2 developers, Cool, Interlude (neat!), Dave Engberg, C++, Cold,
Mike Cowlishaw, Legend, ColdX, Greg Hudson, MUQ, BeOS, Inferno, Limbo.

&gt;And in what order did you develop everything? Like for example the
&gt;DB. Pretty convoluted stuff to just spew out and hope it works... No?

I believe in test drivers built into the code so a conditional compile
will make an executable that will excercise the entire class,
encluding (if possible) ALL flow paths.  It makes unit testing a LOT
easier. Then run a basic level/key sensitive trace/report class that
lets you watch at any level of detail you want and you've got Gawds
own homegrown sniffing system.

I tend to do large, reasonably self-contained blobs on each attack. 
Thus the DB end (which I'm re-doing now for transaction support and
rollbacks) will be done as a self contained unit.  Next after that
will probably be the cacheing class which will be a two layer beast (a
general cache and a tailored representation of the DB).  Similarly the
network IO, Collector, Dispatchor, etc are all pretty black box, and
developed stand-alone.

What lump gets down in what order?  Truth to tell: whatever the heck I
feel like.  Usually its whatever seems "neat" and doesn't have too
many dependancies on code I haven't written yet.

-- 
J C Lawrence                               Internet: claw#null,net
----------(*)                              Internet: coder#ibm,net
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...



</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00142.html">Re: mud grammar</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00143.html">3D graphics</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00137.html">Re: List software</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00146.html">Re: List software</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00145"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00145"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><strong><A NAME="00141" HREF="msg00141.html">I got your message..!</A></strong>, 
MAYA DASWANI <a href="mailto:MISSMAYA#msn,com">MISSMAYA#msn,com</a>, Wed 19 Mar 1997, 20:34 GMT
<LI><strong><A NAME="00127" HREF="msg00127.html">List software</A></strong>, 
claw <a href="mailto:claw#null,net">claw#null,net</a>, Tue 18 Mar 1997, 03:11 GMT
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00129" HREF="msg00129.html">Re: List software</A></strong>, 
Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Tue 18 Mar 1997, 12:33 GMT
</LI>
<LI><strong><A NAME="00137" HREF="msg00137.html">Re: List software</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Tue 18 Mar 1997, 23:44 GMT
</LI>
<LI><strong><A NAME="00145" HREF="msg00145.html">Re: List software</A></strong>, 
claw <a href="mailto:claw#null,net">claw#null,net</a>, Thu 20 Mar 1997, 02:48 GMT
</LI>
<LI><strong><A NAME="00146" HREF="msg00146.html">Re: List software</A></strong>, 
claw <a href="mailto:claw#null,net">claw#null,net</a>, Thu 20 Mar 1997, 12:32 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00122" HREF="msg00122.html">Resets and repops</A></strong>, 
Furball <a href="mailto:K.L.Lo-94#student,lut.ac.uk">K.L.Lo-94#student,lut.ac.uk</a>, Mon 17 Mar 1997, 17:19 GMT
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00123" HREF="msg00123.html">Re: Resets and repops</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Tue 18 Mar 1997, 01:13 GMT
</LI>
<LI><strong><A NAME="00126" HREF="msg00126.html">Resets and repops</A></strong>, 
claw <a href="mailto:claw#null,net">claw#null,net</a>, Tue 18 Mar 1997, 02:59 GMT
</LI>
</UL>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>