<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD-Dev] Re: PDMud thread summary -->
<!--X-From-R13: "Xba O. Znzoreg" <wyflfvapNvk.argpbz.pbz> -->
<!--X-Date: Sun, 25 Oct 1998 18:54:07 -0800 -->
<!--X-Message-Id: 199810260250.UAA23442@dfw-ix2.ix.netcom.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199810252149.OAA02941@ami-cg.GraySage.Edmonton.AB.CA -->
<!--X-Reference: Pine.SOL.3.96.981025233328.616A-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>
[ <a href="../">Other Periods</a>
| <a href="../../">Other mailing lists</a>
| <a href="/search.php3">Search</a>
]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->
Date:
[ <a href="msg00505.html">Previous</a>
| <a href="msg00507.html">Next</a>
]
Thread:
[ <a href="msg00501.html">Previous</a>
| <a href="msg00513.html">Next</a>
]
Index:
[ <A HREF="author.html#00506">Author</A>
| <A HREF="#00506">Date</A>
| <A HREF="thread.html#00506">Thread</A>
]
<!--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" <<A HREF="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</A>></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
> On Sun, 25 Oct 1998, Chris Gray wrote:
>
> > However, if I am understanding correctly, doesn't using this technique
> > preclude using any implementation language other than C++, (and that
> > everyone use the same C++ compiler) since external inheritance requires
> > consistent object layout and virtual function table format?
>
> Yes, it does. It works since the compilers I've come across don't do
> anything funky with the virtual function tables of subclasses.
>
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?
> > How would modules written in the MUD-language match this layout? The
> > MUD-language and virtual machine could force all entities manipulated by
> > the MUD-language to inherit from whatever base class is the one chose
> > for the external inheritance level.
>
> Hmm, not sure what you're getting at here, but yes, the base class in the
> executable must be made adequate since it must be used for all accessing
> of the objects (at least on the driver level). And are we sure we will
> support MUD-language code modules on this level? IMHO, MUD-language is
> 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.
> > Isn't that kind of restrictive? The net result of this, is "just another
> > C++ MUD" isn't it?
>
> Yes, but the alternative would be "just another C MUD", or what? Do you
> 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.
> > If that base class is changed in any way, *everything* has to be
> > rebuilt, possibly including all MUD-language code. Wouldn't that
> > completely invalidate any existing database?
>
> Well, my thinking is that external inheritance (sorry) would only be used
> for modules and events -- I've been concerned mainly with the driver level
> here. The database module(s) would build and use their own data
> structures, and would not be affected by any change in the base classes.
> Actually, trying to tie in database structures into the core would
> needlessly narrow our options.
>
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. ;)
> > What are the benefits that balance these downsides?
>
> I think I've gone over some before, but the main reason I see is that this
> is a neat way of using O-O concepts over shared lib boundaries with all
> that entails. AFAIK, there does not exist a good mechanism for exporting
> classes in shared libs. With this technique, we can have encapsulation,
> polymorphism and inheritance all working the way we want them even though
> 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?
> > I'd like to see databases portable from system to system. E.g. one
> > created on say, a SPARC UNIX box is directly usable on an X86 WIN32 box.
> > Since MUD-language code is likely stored in that database, it should be
> > similarly portable.
>
> Again, nothing in the core should affect anything in the databases. Sure,
> the modules are themselves dependant on the base class in the core and
> they all use inherited versions of the event class, but this does not have
> an impact on the database.
>
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 <<A HREF="http://www.netcom.com/~jlsysinc">http://www.netcom.com/~jlsysinc</A>> /*\--
--/*\ "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 <cg#ami-cg,GraySage.Edmonton.AB.CA></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 <d97elm#dtek,chalmers.se></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>
[ <a href="../">Other Periods</a>
| <a href="../../">Other mailing lists</a>
| <a href="/search.php3">Search</a>
]
</center>
<hr>
</body>
</html>