<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Mud Languages --> <!--X-From-R13: Qlaor eh Fnera <plaorNynhery.npgyno.hgrknf.rqh> --> <!--X-Date: Sat, 09 Aug 1997 08:01:00 +0000 --> <!--X-Message-Id: 199708090800.DAA18536#laurel,actlab.utexas.edu --> <!--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] Mud Languages</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:cynbe#laurel,actlab.utexas.edu"> </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="msg00443.html">Previous</a> | <a href="msg00445.html">Next</a> ] Thread: [ <a href="msg00430.html">Previous</a> | <a href="msg00448.html">Next</a> ] Index: [ <A HREF="author.html#00444">Author</A> | <A HREF="#00444">Date</A> | <A HREF="thread.html#00444">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Mud Languages</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI> <LI><em>Subject</em>: [MUD-Dev] Mud Languages</LI> <LI><em>From</em>: Cynbe ru Taren <<A HREF="mailto:cynbe#laurel,actlab.utexas.edu">cynbe#laurel,actlab.utexas.edu</A>></LI> <LI><em>Date</em>: Sat, 9 Aug 1997 03:00:59 -0500</LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> Miroslav Silovic <silovic#petra,zesoi.fer.hr> notes... | 1) object orientation | 2) memory management | 3) team support | 4) static vs dynamic typing | 5) persistance | 6) interpretation/dynamic compilation/static compilation. | 7) frozen world versus softcoded world | 8) security | 9) dynamic objects/inheritance | | With the mainstream languages, Common LISP satisfies most of these | features. Scheme comes close, in some implementations (as Scheme | standard is pretty minimal). Neither can very well support a team | of telnetted programmers developing the world, though. Some MUDs | discussed here do. | | The problem is that MUD design means that you've already decided on the | particular task. Out of a LARGE number of general-purpose languages, I | have yet to find *one* that supports persistance, dynamic object system | and automatic memory management in a satisfying manner. Rschem (the | implementation) comes close, but it still has a long way to go. Tooting my own horn for once: Pretty much the design concerns that have driven my implementation of Muq. (<A HREF="http://muq.org/~cynbe/muq/muq.html">http://muq.org/~cynbe/muq/muq.html</A>) I tried basing Muq on Scheme but ran out of standard before I ran out of issues, so I switched to CommonLisp. (Although the current surface syntax is Forthish. A Muq Lisp syntax compiler is about half written, but on backburner, since Forthish is at least as suitable for interactive hacking.) At this point Muq consists essentially of a bytecoded multiuser, multithreaded commonlisp with all objects living in a persistent db with garbage collection and demand-paging from the disk db. Much (most) of CLOS (CommonLisp Object System) is implemented at this point, with some minor extensions to handle multiuser stuff (CLOS doesn't define read/write privs relative to other users, since it has neither multiple threads nor multiple users). Recently I've been adding some transparent networking support so threads in one server can communicate with threads in another Muq server without having to explicitly be aware that they are remote, and writing a first-order mudlayer worldkit implementing something looking vaguely like a traditional mud. (Actually, really recently I've been too busy with a startup to do much on Muq. :( ) Design is logically microkernel in that just about everything you'd want to customize is softcoded (e.g., the production compiler, the user shell, the exception handlers, the user daemons, the inter-server networking daemon... if you don't like the double-round-robin pre-emptive tasker I provided, sufficient hooks are there to write a higher level job scheduler inserver on top of it...) The "micro" kernel is still nearly as big as fuzzball, however. I've developed a relatively large regression suite hand-in-hand with Muq, something I -strongly- recommend to anyone developing a server on this scale. Muq probably isn't as stable as gcc yet, say, but it's been a year or two since anyone managed to coredump a production release(*), and its certainly a hell of a lot more stable than, say, Netscape or NT or VisualCafe or... *wrygrin*. For what it's worth, that's come to about 4 years of coding and 120,000 lines of code so far: If you're gonna try something a -whole- lot more ambitious from scratch, you might wanna think about either having a second person participate :) or leveraging something existing like Java. (A hacked Kaffe might allow you to add multi-user &tc stuff while still taking advantage of the existing base of compilers and libraries.) Cynbe (*) Well, one person had Muq coredump this year, but after some investigation, a botched Linux installation got the credit. </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="msg00443.html">Signing off...</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00445.html">Re: [MUD-Dev] The 'Socialiser' problem</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00430.html">Re: [MUD-Dev] Mud Languages</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00448.html">Re: [MUD-Dev] Mud Languages</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00444"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00444"><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] The 'Socialiser' problem</STRONG>, <EM>(continued)</EM> <ul compact> <LI><strong><A NAME="00442" HREF="msg00442.html">Re: [MUD-Dev] The 'Socialiser' problem</A></strong>, Martin Keegan <a href="mailto:martin#cam,sri.com">martin#cam,sri.com</a>, Sat 09 Aug 1997, 04:28 GMT </LI> <LI><strong><A NAME="00445" HREF="msg00445.html">Re: [MUD-Dev] The 'Socialiser' problem</A></strong>, Matt Chatterley <a href="mailto:root#mpc,dyn.ml.org">root#mpc,dyn.ml.org</a>, Sat 09 Aug 1997, 10:36 GMT </LI> <LI><strong><A NAME="00529" HREF="msg00529.html">Re: [MUD-Dev] The 'Socialiser' problem</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Thu 14 Aug 1997, 00:14 GMT </LI> </ul> </LI> <LI><strong><A NAME="00430" HREF="msg00430.html">Re: [MUD-Dev] Mud Languages</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Fri 08 Aug 1997, 14:49 GMT <UL> <li><Possible follow-up(s)><br> <LI><strong><A NAME="00444" HREF="msg00444.html">[MUD-Dev] Mud Languages</A></strong>, Cynbe ru Taren <a href="mailto:cynbe#laurel,actlab.utexas.edu">cynbe#laurel,actlab.utexas.edu</a>, Sat 09 Aug 1997, 08:01 GMT </LI> <LI><strong><A NAME="00448" HREF="msg00448.html">Re: [MUD-Dev] Mud Languages</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 09 Aug 1997, 17:17 GMT <UL> <LI><strong><A NAME="00449" HREF="msg00449.html">Re: [MUD-Dev] Mud Languages</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 09 Aug 1997, 17:40 GMT <UL> <LI><strong><A NAME="00453" HREF="msg00453.html">Re: [MUD-Dev] Mud Languages</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Sun 10 Aug 1997, 06:42 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="00428" HREF="msg00428.html">Mud Languages (Introesque)</A></strong>, ##Make Nylander <a href="mailto:thenewt#use,usit.net">thenewt#use,usit.net</a>, Fri 08 Aug 1997, 12:43 GMT </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>