<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] (fwd) SERVER: Re: New Code Base in VB Started --> <!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> --> <!--X-Date: Wed, 22 Apr 1998 12:16:02 -0700 --> <!--X-Message-Id: 199804221915.MAA199249#under,engr.sgi.com --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] (fwd) SERVER: Re: New Code Base in VB Started</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:claw#under,engr.sgi.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="msg00216.html">Previous</a> | <a href="msg00238.html">Next</a> ] Thread: [ <a href="msg00468.html">Previous</a> | <a href="msg00715.html">Next</a> ] Index: [ <A HREF="author.html#00227">Author</A> | <A HREF="#00227">Date</A> | <A HREF="thread.html#00227">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] (fwd) SERVER: Re: New Code Base in VB Started</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] (fwd) SERVER: Re: New Code Base in VB Started</LI> <LI><em>From</em>: J C Lawrence <<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>></LI> <LI><em>Date</em>: Wed, 22 Apr 1998 12:15:49 -0700 (PDT)</LI> <LI><em>Cc</em>: <A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A></LI> <LI><em>Delivery-date</em>: Wed Apr 22 12:16:03 1998</LI> <LI><em>Delivery-date</em>: Wed, 22 Apr 1998 12:16:03 -0700</LI> <LI><em>Envelope-to</em>: claw#kanga,nu</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Sender</em>: "Petidomo List Agent,,,," <<A HREF="mailto:petidomo#kanga,nu">petidomo#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> Lo Jon! From: jlsysinc#spammenot,ix.netcom.com (Jon A. Lambert) Newsgroups: rec.games.mud.admin Subject: SERVER: Re: New Code Base in VB Started Date: 22 Apr 1998 05:52:43 GMT On Tue, 21 Apr 1998 19:38:17 -0700, Chris Dern spaketh... > >> Someone (not me) is going to craft a mud with a SQL server > >I was wondering about this my self. I'd love to hear from some >KNOWLEDGEABLE sql professionals out there who perhaps play MUD's, if >they think that SQL would be a way to go. Basically I have pondered this >for a while, it would allow a totally persistent world. (Or at least in >theory.) Just a little thought on my part of the world. >Chris I have used three different relational DBs as backends to my server. However, using relational technology poses some problems peculiar to certain mud designs. Applications with static object heirarchies map easily enough to RDBs, but dynamic objects found in muds that implement a object programmable layer like LP or Cold will require a significant effort in the object-relational translation layer to retain inheritence (parentage), handle creation/destruction of attributes, provide class versioning, etc. while retaining any of the advantages of dynamic SQL. I do not consider SQL in itself to be a major advantage in muds, however I believe databases, in particular relational, do have some great advantages. First is recovery and restart. Relational databases are expecially well-equipped to handled point-in-time recovery via logging and transactional integrity via rollback and commit. Event driven systems which require persistent are especially sensitive to transactional integrity. Second is concurrency. Most relational databases are especially mature in the ability to handling multi-threaded or multi-process applications. Third is security. Many if not all rdbs have the ability to automatically encrypt data and provide table level security mechanisms which can be integrated into the server design. Fourth is distribution. Many relational database servers are mature in brokering remote application requests and several can support partitioning of databases across multiple servers. A more ideal solution to the problem would be an OODBM solution. While they have been around for many years, small platform performance has been weak and query languages have been somewhat non-standard and ugly, although many recent ones support SQL. :) My solution in Tycho was to write a generic object-to-relational translation layer. That is the underlying db tables do not represent the application (mud) itself but represent a reflective view of an OODBM. Interfaces to the databases are ODBC compliant so I can plug-in anything from Oracle, SyBase, Watcom, Paradox, Access, etc. with no code changes. SQL usage is relatively minimal and definately ANSI. I have found no reason or use for SQL as a query language within the context of the mud programming language (mudlib) as it already supports queries since persistence is language implicit (see MOO, COOL, COLD). However I do use it in external utilities and editors while the server is running (that second advantage above). Because I implement cacheing and locking within the mud server the services of the rdb in this area are redundant and unnecessary. And I have recently began an effort to move transaction integrity and recovery server- side also. Another feature I have is that all mud code (source, byte-code, and native) is stored within the db as well as all versions of source. A pleasant side effect is security of source through encryption and a lockable checkin/checkout procedure similar to the Powerbuilder environment. And finally the performance argument is a red herring. I maintain strongly that most RDMSs will outperform textual/filesystem databases any day in the land of full persistence. Even if I was rewriting Diku, I'd still use an rdb over a flatfile approach. -- --/*\ Jon A. Lambert - TychoMUD Email:jlsysinc#nospam,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 /*\-- -- J C Lawrence Internet: claw#null,net (Contractor) Internet: coder#ibm,net ---------(*) Internet: claw#under,engr.sgi.com ...Honourary Member of Clan McFud -- Teamer's Avenging Monolith... -- MUD-Dev: Advancing an unrealised future. </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="00715" HREF="msg00715.html">[MUD-Dev] Re: (fwd) SERVER: Re: New Code Base in VB Started</A></strong> <ul compact><li><em>From:</em> "Jon A. Lambert" <jlsysinc#ix,netcom.com></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00216.html">[MUD-Dev] Re: There can be.. only ONE!</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00238.html">[MUD-Dev] Graphical MUD project (Sea Of Blood)</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00468.html">[MUD-Dev] Re: Systems you use</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00715.html">[MUD-Dev] Re: (fwd) SERVER: Re: New Code Base in VB Started</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00227"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00227"><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: Systems you use</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <LI><strong><A NAME="00458" HREF="msg00458.html">[MUD-Dev] Re: Systems you use</A></strong>, Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Thu 23 Apr 1998, 19:57 GMT </LI> <LI><strong><A NAME="00462" HREF="msg00462.html">[MUD-Dev] Re: Systems you use</A></strong>, Katrina McClelan <a href="mailto:kitkat#the486,bradley.edu">kitkat#the486,bradley.edu</a>, Thu 23 Apr 1998, 21:13 GMT <UL> <LI><strong><A NAME="00475" HREF="msg00475.html">[MUD-Dev] Re: Systems you use</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 23 Apr 1998, 21:22 GMT <UL> <LI><strong><A NAME="00468" HREF="msg00468.html">[MUD-Dev] Re: Systems you use</A></strong>, Katrina McClelan <a href="mailto:kitkat#the486,bradley.edu">kitkat#the486,bradley.edu</a>, Thu 23 Apr 1998, 22:31 GMT </LI> </UL> </LI> </UL> </LI> </ul> </ul> </LI> <LI><strong><A NAME="00227" HREF="msg00227.html">[MUD-Dev] (fwd) SERVER: Re: New Code Base in VB Started</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 22 Apr 1998, 19:16 GMT <UL> <LI><strong><A NAME="00715" HREF="msg00715.html">[MUD-Dev] Re: (fwd) SERVER: Re: New Code Base in VB Started</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sat 25 Apr 1998, 13:14 GMT </LI> </UL> </LI> <LI><strong><A NAME="00412" HREF="msg00412.html">[MUD-Dev] SfD: AI and muds; several approaches</A></strong>, Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Tue 21 Apr 1998, 22:12 GMT <LI><strong><A NAME="00325" HREF="msg00325.html">[MUD-Dev] (fwd) Mudlib Design</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 21 Apr 1998, 21:54 GMT <LI><strong><A NAME="00215" HREF="msg00215.html">[MUD-Dev] META: We have moved.</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 21 Apr 1998, 19:19 GMT </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>