1999Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev] Custom Server Roll Call? -->
<!--X-From-R13: Quevf Uenl <ptNnzv&#45;pt.UenlEntr.Sqzbagba.OP.QO> -->
<!--X-Date: Mon, 17 May 1999 23:46:26 &#45;0700 -->
<!--X-Message-Id: 199905180217.UAA00789@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev] Custom Server Roll Call?</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">
</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="msg00299.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00301.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00278.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00121.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00300">Author</A>
&nbsp;|&nbsp;<A HREF="#00300">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00300">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev] Custom Server Roll Call?</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>: Re: [MUD-Dev] Custom Server Roll Call?</LI>
<LI><em>From</em>: Chris Gray &lt;<A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A>&gt;</LI>
<LI><em>Date</em>: Mon, 17 May 1999 20:17:18 -0600</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Sender</em>: <A HREF="mailto:mud-dev-admin#kanga,nu">mud-dev-admin#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>
[Emil Eifrem:]

&gt; So basically enforcing this would mean I'd have to use of some kind of
&gt; preprocessor that confirms that all invoked exported functions have a
&gt; corresponding definition somewhere in some other module? Unfortunately,
&gt; that's the kind of extension I would much rather avoid. I think I have
&gt; achieved the same effect with my "exported functions?"

That was one thing we talked about. What actually got implemented was
a scheme were each exported function was exported along with a string
which described in a brief, abstract, way, its interface. Each importer
did the same. The strings were checked at run-time to see if the
function does what the importer believes it does.

&gt; I would really want to have basically everything contained in reloadable
&gt; modules. I'm just so hooked on the "detach;compile;attach new" approach to
&gt; a mud that has been repeated here so many times. (I'm also, btw, coming
&gt; from a 100% hardcoded background (ROM) with a server that basically
&gt; requires rebooting for every little change. Much like that favorite
&gt; operating system we all love to hate.) I may ultimately end up with a
&gt; server consisting of two modules: network and world, where world is an
&gt; entire mud minus networking.

That would certainly work. Here, however, I'll suggest what I did: have
a fairly efficient interpreted language to define your world with. Then,
you have your own choices about how that language does information
hiding, inheritance, etc. For example, in my system, 'properties',
which are like class members in C++ (a big sort-of here!), are first-class
entities in the system. That means they have a value, and when I
reference a property on a 'thing' (think generic object), the lookup is
done at run-time based on the property. Thus, I can have the properties
completely hidden inside "modules", but other code can add their own
hidden properties to the same 'thing's. Code that doesn't know the
definition for some property can't even tell that the property is
present on the 'thing' - it can only examine/change the values of
properties that it knows about. Doing this is certainly more expensive
that a fixed offset reference like C++ or Java does, but is likely faster
than having to convert everything to and from strings all the time.

I'm sure there are other solutions, too. You just might have to throw
away some of your basic assumptions about how you are doing things.

[In case you want to pursue this further, my complete docs are online
on my website - be prepared for lots of reading, however!]

--
Don't design inefficiency in - it'll happen in the implementation.

Chris Gray     cg#ami-cg,GraySage.Edmonton.AB.CA
               <A  HREF="http://www.GraySage.Edmonton.AB.CA/cg/">http://www.GraySage.Edmonton.AB.CA/cg/</A>


_______________________________________________
MUD-Dev maillist  -  MUD-Dev#kanga,nu
<A  HREF="http://www.kanga.nu/lists/listinfo/mud-dev">http://www.kanga.nu/lists/listinfo/mud-dev</A>


</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="msg00299.html">Re: [MUD-Dev] Multi-threaded mud server.</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00301.html">Re: [MUD-Dev] Multi-threaded mud server.</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00278.html">Re: [MUD-Dev] Custom Server Roll Call?</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00121.html">Re: [MUD-Dev] Censorship, Virtual v Artificial Worlds, Python</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00300"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00300"><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>RE: [MUD-Dev] Custom Server Roll Call?</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00161" HREF="msg00161.html">RE: [MUD-Dev] Custom Server Roll Call?</A></strong>, 
Marc Hernandez <a href="mailto:marc#ias,jb.com">marc#ias,jb.com</a>, Thu 06 May 1999, 05:50 GMT
</LI>
</ul>
<LI><strong><A NAME="00185" HREF="msg00185.html">Re: [MUD-Dev] Custom Server Roll Call?</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 09 May 1999, 11:24 GMT
</LI>
<LI><strong><A NAME="00249" HREF="msg00249.html">Re: [MUD-Dev] Custom Server Roll Call?</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 15 May 1999, 09:30 GMT
<UL>
<LI><strong><A NAME="00278" HREF="msg00278.html">Re: [MUD-Dev] Custom Server Roll Call?</A></strong>, 
Emil Eifrem <a href="mailto:emil#prophecy,lu">emil#prophecy,lu</a>, Mon 17 May 1999, 04:41 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00300" HREF="msg00300.html">Re: [MUD-Dev] Custom Server Roll Call?</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Tue 18 May 1999, 06:46 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00121" HREF="msg00121.html">Re: [MUD-Dev] Censorship, Virtual v Artificial Worlds, Python</A></strong>, 
Dan <a href="mailto:scatter#thevortex,com">scatter#thevortex,com</a>, Mon 03 May 1999, 16:00 GMT
<UL>
<LI><strong><A NAME="00135" HREF="msg00135.html">Re: [MUD-Dev] Censorship, Virtual v Artificial Worlds, Python</A></strong>, 
Matthew Mihaly <a href="mailto:diablo#best,com">diablo#best,com</a>, Tue 04 May 1999, 05:52 GMT
</LI>
<LI><strong><A NAME="00187" HREF="msg00187.html">Re: [MUD-Dev] Censorship, Virtual v Artificial Worlds, Python</A></strong>, 
Marian Griffith <a href="mailto:gryphon#iaehv,nl">gryphon#iaehv,nl</a>, Mon 10 May 1999, 06:46 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00120" HREF="msg00120.html">[MUD-Dev] Interesting dilemma</A></strong>, 
Peck, Matthew x96724c1 <a href="mailto:x96724#exmail,usma.army.mil">x96724#exmail,usma.army.mil</a>, Mon 03 May 1999, 15:57 GMT
</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>