1998Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: PDMud thread summary -->
<!--X-From-R13: "Xba O. Znzoreg" <wyflfvapNvk.argpbz.pbz> -->
<!--X-Date: Sun, 25 Oct 1998 18:54:07 &#45;0800 -->
<!--X-Message-Id: 199810260250.UAA23442@dfw&#45;ix2.ix.netcom.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199810252149.OAA02941@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Reference: Pine.SOL.3.96.981025233328.616A&#45;100000#licia,dtek.chalmers.se -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: PDMud thread summary</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:jlsysinc#ix,netcom.com">
</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="msg00505.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00507.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00501.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00513.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00506">Author</A>
&nbsp;|&nbsp;<A HREF="#00506">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00506">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: PDMud thread summary</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 thread summary</LI>
<LI><em>From</em>: "Jon A. Lambert" &lt;<A HREF="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</A>&gt;</LI>
<LI><em>Date</em>: Sun, 25 Oct 1998 21:51:03 -5</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>
On 26 Oct 98, Niklas Elmqvist wrote:

Too many messages to grok.  I thought I'd respond at random, even
though it may break your chain of thought. :P

&gt; On Sun, 25 Oct 1998, Chris Gray wrote:
&gt; 
&gt; &gt; However, if I am understanding correctly, doesn't using this technique
&gt; &gt; preclude using any implementation language other than C++, (and that
&gt; &gt; everyone use the same C++ compiler) since external inheritance requires
&gt; &gt; consistent object layout and virtual function table format?
&gt; 
&gt; Yes, it does. It works since the compilers I've come across don't do
&gt; anything funky with the virtual function tables of subclasses.
&gt;

An OO mud language needn't have any virtual tables.  Virtual 
functions and the like are C++ specific.  You do have to settle on an 
object format.  Perhaps this might be a better place to start?

What properties do we desire a generic object to have?  

&gt; &gt; How would modules written in the MUD-language match this layout? The
&gt; &gt; MUD-language and virtual machine could force all entities manipulated by
&gt; &gt; the MUD-language to inherit from whatever base class is the one chose
&gt; &gt; for the external inheritance level. 
&gt; 
&gt; Hmm, not sure what you're getting at here, but yes, the base class in the
&gt; executable must be made adequate since it must be used for all accessing
&gt; of the objects (at least on the driver level). And are we sure we will
&gt; support MUD-language code modules on this level? IMHO, MUD-language is
&gt; better suited to in-world stuff.

Are we talking about a language that just does simple scripting 
(i.e. DLG, Mobprogs) , or a complete mud language here, like LPC, 
MOO, Cool, ColdC.  A simple glance at these drivers indicates an
obsession and attention to server language as opposed to driver.  
That is to say, the former drives the latter.  

&gt; &gt; Isn't that kind of restrictive? The net result of this, is "just another
&gt; &gt; C++ MUD" isn't it? 
&gt; 
&gt; Yes, but the alternative would be "just another C MUD", or what? Do you
&gt; refer to some specific phenomenon?

See above... the driver's implementation language shouldn't be a 
limiting factor in the design.  You should be able to implement the 
same glue in C, basic, pascal, C++, Java, Ada, etc.  Much of 
the stuff I've been reading here (although very interesting and 
amazing) is very,  very C++ and Linux platform dependent.

&gt; &gt; If that base class is changed in any way, *everything* has to be
&gt; &gt; rebuilt, possibly including all MUD-language code. Wouldn't that
&gt; &gt; completely invalidate any existing database? 
&gt; 
&gt; Well, my thinking is that external inheritance (sorry) would only be used
&gt; for modules and events -- I've been concerned mainly with the driver level
&gt; here. The database module(s) would build and use their own data
&gt; structures, and would not be affected by any change in the base classes.
&gt; Actually, trying to tie in database structures into the core would
&gt; needlessly narrow our options.
&gt;

The core/kernel should not need any state to be maintained for 
itself.  BUT.... it should "broker" state change requests between 
the VM and DB.  BTW, any DB from file-system to rdms to dbm 
to oodbms could be supported from the same API.  If there's any
interest and I have the time, I could ramble on for hours on ACID and 
TP requirements and possible interfaces.  ;)

&gt; &gt; What are the benefits that balance these downsides? 
&gt; 
&gt; I think I've gone over some before, but the main reason I see is that this
&gt; is a neat way of using O-O concepts over shared lib boundaries with all
&gt; that entails. AFAIK, there does not exist a good mechanism for exporting
&gt; classes in shared libs. With this technique, we can have encapsulation,
&gt; polymorphism and inheritance all working the way we want them even though 
&gt; our main functionality may be imported in dynamically loaded modules.

But  we've been talking modules here with very little attention paid 
to objects/classes/instances.  Is a module a class?  Can it be 
instanced?  Or is a module the one and only instance?   Where is 
state maintained?

&gt; &gt; I'd like to see databases portable from system to system. E.g. one
&gt; &gt; created on say, a SPARC UNIX box is directly usable on an X86 WIN32 box.
&gt; &gt; Since MUD-language code is likely stored in that database, it should be
&gt; &gt; similarly portable.
&gt; 
&gt; Again, nothing in the core should affect anything in the databases. Sure,
&gt; the modules are themselves dependant on the base class in the core and
&gt; they all use inherited versions of the event class, but this does not have
&gt; an impact on the database. 
&gt;

Agreed.  Keep in mind ANY DB can be have the same interface wrapper.  
If somebody wants to write an Oracle wrapper, great, a home-made DB 
design, that's fine too.  Also as someone else mentioned, I don't 
think there should be any unecessary distinction between memory
and database, it's all storage.
      
 
--
--/*\ Jon A. Lambert - TychoMUD     Internet:jlsysinc#ix,netcom.com /*\--
--/*\ Mud Server Developer's Page &lt;<A  HREF="http://www.netcom.com/~jlsysinc">http://www.netcom.com/~jlsysinc</A>&gt; /*\--
--/*\   "Everything that deceives may be said to enchant" - Plato   /*\--


</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="00513" HREF="msg00513.html">[MUD-Dev] Re: PDMud thread summary</A></strong>
<ul compact><li><em>From:</em> alexo#bigfoot,com (Alex Oren)</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00499" HREF="msg00499.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
<UL><LI><EM>From:</EM> Chris Gray &lt;cg#ami-cg,GraySage.Edmonton.AB.CA&gt;</LI></UL></LI>
<LI><STRONG><A NAME="00501" HREF="msg00501.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
<UL><LI><EM>From:</EM> Niklas Elmqvist &lt;d97elm#dtek,chalmers.se&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00505.html">[MUD-Dev] Re: openmud or pdmud or devmud</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00507.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00501.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00513.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00506"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00506"><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 thread summary</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00498" HREF="msg00498.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
James Wilson <a href="mailto:jwilson#rochester,rr.com">jwilson#rochester,rr.com</a>, Sun 25 Oct 1998, 21:10 GMT
<UL>
<LI><strong><A NAME="00502" HREF="msg00502.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Mon 26 Oct 1998, 00:09 GMT
</LI>
</UL>
</LI>
</ul>
</ul>
<LI><strong><A NAME="00499" HREF="msg00499.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 25 Oct 1998, 21:51 GMT
<UL>
<LI><strong><A NAME="00501" HREF="msg00501.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Sun 25 Oct 1998, 23:08 GMT
<UL>
<LI><strong><A NAME="00506" HREF="msg00506.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Mon 26 Oct 1998, 02:54 GMT
<UL>
<LI><strong><A NAME="00513" HREF="msg00513.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Mon 26 Oct 1998, 10:05 GMT
<UL>
<LI><strong><A NAME="00535" HREF="msg00535.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Tue 27 Oct 1998, 03:44 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
<LI><strong><A NAME="00503" HREF="msg00503.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
ApplePiMan <a href="mailto:ApplePiMan#aol,com">ApplePiMan#aol,com</a>, Mon 26 Oct 1998, 00:20 GMT
</LI>
<LI><strong><A NAME="00507" HREF="msg00507.html">[MUD-Dev] Re: PDMud thread summary</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Mon 26 Oct 1998, 04:20 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>