1998Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals) -->
<!--X-From-R13: @vxynf Syzdivfg <q97ryzNqgrx.punyzref.fr> -->
<!--X-Date: Fri, 23 Oct 1998 00:35:37 &#45;0700 -->
<!--X-Message-Id: Pine.SOL.3.96.981023090855.14571A&#45;100000#licia,dtek.chalmers.se -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199810230246.UAA01227@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Communi</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:d97elm#dtek,chalmers.se">
</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="msg00387.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00389.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00380.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00392.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00388">Author</A>
&nbsp;|&nbsp;<A HREF="#00388">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00388">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Subject</em>: [MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</LI>
<LI><em>From</em>: Niklas Elmqvist &lt;<A HREF="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</A>&gt;</LI>
<LI><em>Date</em>: Fri, 23 Oct 1998 09:32:43 +0200 (MET DST)</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>

[Chris Gray:]

&gt; Efficient modules isn't enough to make the whole system efficient. You
&gt; also need efficient intermodule interaction. You don't want to be
&gt; spraying lots of random things all over. The modules should advertise
&gt; what they can handle, and the associations should be made once, at the
&gt; load time of the added module. Then data (commands, output, etc.) flows
&gt; in a directed manner. We want pipes, not a water sprinkler!

Hmm, you're right. But we also need some way for new modules to broadcast
their capabilities at the load time. So the water sprinkler at load time,
then pipes henceforth. Maybe we could use a handshaking protocol like
this:

1. module is loaded into memory, either at boot-strap time or through
	other means (an admin adding new functionality to the game or
	replacing buggy parts)
2. module connects to the broadcast channel and bellows "here I am, and I
	am capable of this..."
3. existing modules will silently process the broadcast message (everyone
	listens to the broadcast channel) and may decide to ignore the new
	module 
4. if not, the interested modules request a pipe/channel to the new module
	from the core, which they receive 
5. the modules may, if applicable, send information about themselves
	through their new pipes to the originating new module (if the new
	module for example is a new parser which requests grammars from all
	command handlers)

I am thinking that we could use one-to-many pipes here... Or maybe even
many-to-many pipes (not sure about that, though). That is, using the above
handshaking sequence, a parser module would get a single output pipe which
branches out to all command handlers since they are all interested in the
parser "in the same way". It would also receive an input pipe from the
network I/O module. This way, the parser would receive raw input from the
input pipe, parse it and then emit the processed data to the output pipe,
not caring who is listening. The processed data is propagated to all 

Maybe one-to-one pipes would be better since it would minimize the traffic
flow and "water sprinkling". However, it would also force central modules
such as the parser to become much more complicated since they would have
to keep track of where different pipes lead and what to send on them. Not
sure about it myself.

We will also need a defined sequence for modules to disengage themselves
from the module community and be unloaded. 

Or is there a better alternative to a message-based communication system
like this? Anyone with more experience in these things than I?

&gt; Chris Gray     cg#ami-cg,GraySage.Edmonton.AB.CA

-- Niklas Elmqvist (d97elm#dtek,chalmers.se) ----------------------
  "The trouble with being a god is that you've got no one to 
   pray to."
		-- Terry Pratchett, Small Gods



</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<ul compact><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><A NAME="00422" HREF="msg00422.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>
<ul compact><li><em>From:</em> Jon Leonard &lt;jleonard#divcom,slimy.com&gt;</li></ul>
<li><strong><A NAME="00392" HREF="msg00392.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>
<ul compact><li><em>From:</em> James Wilson &lt;jwilson#rochester,rr.com&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00375" HREF="msg00375.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></STRONG>
<UL><LI><EM>From:</EM> Chris Gray &lt;cg#ami-cg,GraySage.Edmonton.AB.CA&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00387.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00389.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00380.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00392.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00388"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00388"><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>[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00397" HREF="msg00397.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
Darrin Hyrup <a href="mailto:shades#mythicgames,com">shades#mythicgames,com</a>, Fri 23 Oct 1998, 14:51 GMT
<UL>
<LI><strong><A NAME="00412" HREF="msg00412.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
Jon Leonard <a href="mailto:jleonard#divcom,slimy.com">jleonard#divcom,slimy.com</a>, Fri 23 Oct 1998, 20:18 GMT
</LI>
</UL>
</LI>
</ul>
</ul>
</ul>
<LI><strong><A NAME="00375" HREF="msg00375.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Fri 23 Oct 1998, 02:52 GMT
<UL>
<LI><strong><A NAME="00380" HREF="msg00380.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
J C Lawrence <a href="mailto:claw#kanga,nu">claw#kanga,nu</a>, Fri 23 Oct 1998, 03:41 GMT
</LI>
<LI><strong><A NAME="00388" HREF="msg00388.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Fri 23 Oct 1998, 07:35 GMT
<UL>
<LI><strong><A NAME="00392" HREF="msg00392.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
James Wilson <a href="mailto:jwilson#rochester,rr.com">jwilson#rochester,rr.com</a>, Fri 23 Oct 1998, 09:56 GMT
<UL>
<LI><strong><A NAME="00393" HREF="msg00393.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
Jo Dillon <a href="mailto:emily#thelonious,new.ox.ac.uk">emily#thelonious,new.ox.ac.uk</a>, Fri 23 Oct 1998, 10:12 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00422" HREF="msg00422.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
Jon Leonard <a href="mailto:jleonard#divcom,slimy.com">jleonard#divcom,slimy.com</a>, Fri 23 Oct 1998, 21:28 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
<LI><strong><A NAME="00376" HREF="msg00376.html">[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Fri 23 Oct 1998, 03:01 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>