1998Q3/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...] -->
<!--X-From-R13: Qnyvona Fverfvnf Rnexybpx <pnyvonaNqnexybpx.pbz> -->
<!--X-Date: Tue, 25 Aug 1998 05:47:33 &#45;0700 -->
<!--X-Message-Id: 199808251246.GAA12440#darklock,com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: Pine.LNX.3.96.980823141741.23081A&#45;100000#shamen,cyberhighway.net -->
<!--X-Reference: 199808240327.VAA05642#darklock,com -->
<!--X-Reference: 35E1FC86.A5C22F2#mindless,com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programm</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:caliban#darklock,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="msg00838.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00840.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00835.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00840.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00839">Author</A>
&nbsp;|&nbsp;<A HREF="#00839">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00839">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</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: Modular MUD [Was:Finer points of Telnet programming ...]</LI>
<LI><em>From</em>: Caliban Tiresias Darklock &lt;<A HREF="mailto:caliban#darklock,com">caliban#darklock,com</A>&gt;</LI>
<LI><em>Date</em>: Tue, 25 Aug 1998 05:44:18 -0700</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 04:51 PM 8/24/98 -0700, I personally witnessed Jynx (Wyrm / Tygr / Myth)
Ryn jumping up to say:
&gt;Caliban Tiresias Darklock wrote:
&gt;&gt; 
&gt;&gt; I've thought about doing something like this... I have this hairbrained
&gt;&gt; idea of a modular MUD, where the internal networking code is in one module
&gt;&gt; and everything else hooks into it from external plugins. So the question of
&gt;
&gt;Modular MUD, eh? Well, from my past experience, MUDs are all
&gt;modular, having such things as zone/room/mobile files and the 
&gt;like, but I'd love to see the design for your version. 

Well, this is the general concept... you have a basic kernel, much like an
operating system, that handles telnet connections and ONLY telnet
connections. When a connection is first created, it is passed to a
"starting" module somehow (I'm still in design stages) which handles the
decision of where to pass it next. This starting module could perform some
complex logic; I'm expecting that a MUD which looks just like a Diku would
simply get the user name and password, authenticate, and then pass the user
into the game module itself. If you wanted to get more complex, it could
pass the user to any of several alternate modules -- say, an administrator
interface, a builder interface, a player interface, etc. -- and even into
different modules to handle text mode, graphics mode, whatever. Each
module, in turn, could access its own databases and its own additional
modules, chaining together into a huge web of DLLs or (preferably) script
files which make up the whole MUD. The idea is to make the game flexible to
the point of idiocy. If you prefer a different combat system, you could
just replace the combat module. If you prefer a different character
generation system, you plug one in. If you want a new command, you can plug
it into the command module. And so on, and so forth.


I'd like to state in big letters here that THIS CAN BE ABUSED. Otherwise
people will start posing "what if" questions about things like incompatible
modules, etc. I'm trying to define the interface between modules in such a
way that you can't *make* incompatible modules, but that's an impossible
task which will have to be curtailed at some point of diminishing returns. 

&gt;Because 
&gt;of my experience as a hacker/gamer, my one complaint with most 
&gt;comercial games is that they aren't easily hac ... I mean,
&gt;customized. 

I think we probably come at games from the same general vicinity. I've been
having great fun editing the text files in Dungeon Keeper and using the
level editor from their web site, myself... I've also been repeating my
15-year-old effort of reverse engineering the data files from Might and
Magic 1, and considering the possibility of writing a character editor for
Windows... I rarely avail myself of preconfigured "cheat" programs, but
I've always had this desire to write one, if only so lesser gamers will bow
their heads in deference. :)

&gt;Yeah ... that's the ticket. I always wanted to
&gt;add more stuff to games like Warcraft and the such, so I always 
&gt;found myself saying, "This would kick ass if it was MODULAR!" 

I always found myself saying "I wish I had the source code!" -- and then
eventually I started *getting* the source code to a few games, and realised
that the vast majority of game developers don't know how to comment and
have a sadistic predilection for making bad puns with variables. (I'm sure
everyone thought "do while(diddy-&gt;diddy==dum.diddy-&gt;doo)" was really cute,
but that doesn't make it suitable for inclusion in a real product.) 

I try to write code with the assumption that the next person to work on it
will be a homicidal psychotic who knows where I live, which tends to make
it much friendlier. ;)

&gt;Well ... having the capability to add plug-in-races/classes/clans/etc. 
&gt;would make MUD development much easier, just like adding 
&gt;scripting into a MUD does. I wonder ....

Ideally, and if I can manage to come up with something powerful enough (and
*fast* enough) I may do this, the modules which make up the actual MUD
activity would be scripted and not compiled. I may even use some sort of
object interface compatible with JavaScript, since I would hazard the guess
that there are no other scripting languages which approach that level of
power and flexibility with even *half* the user recognition. There are
certainly more robust and less buggy options, but I keep asking myself --
is it worth giving up the advantage of a huge existing userbase? Thus far,
I don't think so. On the other hand, I'm not convinced that a scripted
solution will have the appropriate speed to handle large numbers of
players, and I also think requiring compilation has a tendency to weed out
some of the more clueless implementations.

---
=+[ caliban#darklock,com ]=+=+=+=+=+=+=+=+=[ <A  HREF="http://www.darklock.com/">http://www.darklock.com/</A> ]+=
"It must be remembered that there is nothing more difficult to plan, more 
doubtful of success, nor more dangerous to manage than the creation of a 
new system. For the initiator has the enmity of all who would profit by 
the preservation of the old institution, and merely lukewarm defenders in 
those who would gain by the new one."              -- Niccolo Machiavelli
=+=+[ FREE KEVIN * <A  HREF="http://www.kevinmitnick.com/">http://www.kevinmitnick.com/</A> * IT COULD BE YOU ]+=+=+=



</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="00841" HREF="msg00841.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>
<ul compact><li><em>From:</em> "Jynx (Wyrm / Tygr / Myth) Ryn" &lt;jynx_ryn#mindless,com&gt;</li></ul>
<li><strong><A NAME="00840" HREF="msg00840.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>
<ul compact><li><em>From:</em> "Adam J. Thornton" &lt;adam#phoenix,Princeton.EDU&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00828" HREF="msg00828.html">[MUD-Dev] Re: Finer points of Telnet programming ...</A></STRONG>
<UL><LI><EM>From:</EM> Ben Greear &lt;greear#cyberhighway,net&gt;</LI></UL></LI>
<LI><STRONG><A NAME="00830" HREF="msg00830.html">[MUD-Dev] Re: Finer points of Telnet programming ...</A></STRONG>
<UL><LI><EM>From:</EM> Caliban Tiresias Darklock &lt;caliban#darklock,com&gt;</LI></UL></LI>
<LI><STRONG><A NAME="00835" HREF="msg00835.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></STRONG>
<UL><LI><EM>From:</EM> "Jynx (Wyrm / Tygr / Myth) Ryn" &lt;jynx_ryn#mindless,com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00838.html">[MUD-Dev] Re: Finer points of Telnet programming ...</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00840.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00835.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00840.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00839"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00839"><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: Finer points of Telnet programming ...</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00829" HREF="msg00829.html">[MUD-Dev] Re: Finer points of Telnet programming ...</A></strong>, 
Jynx (Wyrm / Tygr / Myth) Ryn <a href="mailto:jynx_ryn#mindless,com">jynx_ryn#mindless,com</a>, Sun 23 Aug 1998, 22:16 GMT
<UL>
<LI><strong><A NAME="00830" HREF="msg00830.html">[MUD-Dev] Re: Finer points of Telnet programming ...</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Mon 24 Aug 1998, 03:28 GMT
<UL>
<LI><strong><A NAME="00833" HREF="msg00833.html">[MUD-Dev] Minimal MUD-kernel (was Re: Finer points of Telnet programming ...)</A></strong>, 
Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Mon 24 Aug 1998, 09:50 GMT
</LI>
<LI><strong><A NAME="00835" HREF="msg00835.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>, 
Jynx (Wyrm / Tygr / Myth) Ryn <a href="mailto:jynx_ryn#mindless,com">jynx_ryn#mindless,com</a>, Mon 24 Aug 1998, 23:55 GMT
<UL>
<LI><strong><A NAME="00839" HREF="msg00839.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Tue 25 Aug 1998, 12:47 GMT
<UL>
<LI><strong><A NAME="00840" HREF="msg00840.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>, 
Adam J. Thornton <a href="mailto:adam#phoenix,Princeton.EDU">adam#phoenix,Princeton.EDU</a>, Tue 25 Aug 1998, 15:11 GMT
<UL>
<LI><strong><A NAME="00842" HREF="msg00842.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Wed 26 Aug 1998, 01:05 GMT
<UL>
<LI><strong><A NAME="00844" HREF="msg00844.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>, 
Adam J. Thornton <a href="mailto:adam#phoenix,Princeton.EDU">adam#phoenix,Princeton.EDU</a>, Wed 26 Aug 1998, 02:02 GMT
<UL>
<LI><strong><A NAME="00849" HREF="msg00849.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Wed 26 Aug 1998, 04:02 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</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>