1998Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: mud client development systems -->
<!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> -->
<!--X-Date: Wed, 16 Dec 1998 20:47:15 &#45;0800 -->
<!--X-Message-Id: 199812170350.TAA03912#under,engr.sgi.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 36748ED8.99E8CF8C#radiks,net -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: mud client development systems</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>
[&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="msg00976.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00978.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00962.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00971.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00977">Author</A>
&nbsp;|&nbsp;<A HREF="#00977">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00977">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: mud client development systems</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: mud client development systems </LI>
<LI><em>From</em>: J C Lawrence &lt;<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>&gt;</LI>
<LI><em>Date</em>: Wed, 16 Dec 1998 19:50:51 -0800</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 Sun, 13 Dec 1998 22:06:48 -0600 
Sunny Gulati&lt;sunnywiz#radiks,net&gt; wrote:

&gt;   "Sounds like you're trying to implement CORBA on a mud".

Way back when we had one of the principals from GnuStep on the list, 
and he asserted much the same thing.  GnuStep might well be
something to check into.

&gt; Talking to another friend Steve (wells#cedarnet,org), and he was
&gt; interested in doing some Perl/GTK or Java client-side coding if I
&gt; got my ideas along far enough.  This got me thinking, on the 2
&gt; hour drive back from his place.. he wants to play, but its not the
&gt; same place that I am looking at playing... I want to do Perl/Tk
&gt; (just because)... and Matt Messier, another friend, would want to
&gt; work in C++..

&gt;   - i wonder if I can make my client side objects language
&gt; independent?

Yes, what you need to do is to define and document and
pickle/unpickle process for your objects (see Python for a pretty
good example) and messaging/function-call semantics (how are
arguments presented etc) .  Then contributors working in foreign
languages need merely comply with your pickle and calls standards to
interoperate.

&gt; Obviously, it would have to run in a seperate process.  Need to
&gt; communicate back to the master client program (which has the
&gt; connection back to the mud).  How should I do this?

Look into Muq and its runtime variable command processors (ala Unix
command shells).  

No, you can also use embedded interpreters.  While Perls doesn't
submit easily to mebedding, python embeds very elegantly and simply
(can you tell I'm a fan?), and Tcl/TK isn't *too* difficult as long
as you restrict your call set.  C++ or anything else that produces
linkable objects then merely depends on call/interface standards.

&gt; Back to the quesiton of how would I identify stuff?  I was
&gt; initially thinking of something like how routed and the internet
&gt; do stuff.. then I thought the object identification could
&gt; specifically describe the path to get to it.  

Have a look into the naming system used in CoolMUD (forget the name
right now).

&gt; Message = send a message, expect no response. Query = send a
&gt; message, expect response. Reply = reply to a query (references a
&gt; message id#) Replyuery = reply to a query (references a message
&gt; id#), expects a response

&lt;nod&gt; I don't see a real need for the third case tho.  It seems more
sequence of two #1's.

I use transaction frames.  I have a FRAME message type which starts
a transation, and then an ENDFRAME message type which ends it.
Frames can of course be nested.

Your first case (message with no respose) then derives to:

  A-&gt;B:  FRAME 
  A-&gt;B:  Message (data)
  A-&gt;N:  ENDFRAME

Case #2 derives to:

  A-&gt;B: FRAME
  A-&gt;B: Query (data)
  B-&gt;A: Answer (data)
  B-&gt;A: ENDFRAME

Actually there's a FRAME_ID specc'ed on each FRAME message.  A
complex transactions would then turn into:

  A-&gt;B: FRAME 1
  A-&gt;B: Query (data)
  B-&gt;A: FRAME 2
  B-&gt;A: Query (data)
  A-&gt;B: Answer (data)
  A-&gt;B: ENDFRAME 2
  B-&gt;A: Answer (data)
  B-&gt;A: ENDFRAME 1

The reason for using the frames as versus merely tracking the state
machine via the message types and tags is that (and this is a broken
aspoect of my design in some ways) certain queries will generate
multiple responses and I need the query frame not to state
transition before all the answers are in.  

I tried to make it a bit cleaner by making the frame typically part
of the header fields for the messages so the minimum number of
messages get passed, but they can be first class messages if needed
(happens in some cases for multi-message replied where tracking gets
too difficult).

-- 
J C Lawrence                              Internet: claw#kanga,nu
(Contractor)                             Internet: coder#kanga,nu
---------(*)                    Internet: claw#under,engr.sgi.com
...Honorary Member of Clan McFud -- Teamer's Avenging Monolith...


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00962" HREF="msg00962.html">[MUD-Dev] mud client development systems</A></STRONG>
<UL><LI><EM>From:</EM> Sunny Gulati &lt;sunnywiz#radiks,net&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00976.html">[MUD-Dev] Re: DIS: Client-Server vs Peer-to-Peer</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00978.html">[MUD-Dev] Graphic design, client questions</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00962.html">[MUD-Dev] mud client development systems</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00971.html">[MUD-Dev] mud client development systems</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00977"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00977"><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: Stack-Based NPC AI</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00912" HREF="msg00912.html">[MUD-Dev] Re: Stack-Based NPC AI</A></strong>, 
Marc Hernandez <a href="mailto:marc#ias,jb.com">marc#ias,jb.com</a>, Mon 07 Dec 1998, 00:22 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00907" HREF="msg00907.html">[MUD-Dev] mud client development systems</A></strong>, 
Sunny Gulati <a href="mailto:sunnywiz#radiks,net">sunnywiz#radiks,net</a>, Sun 06 Dec 1998, 21:37 GMT
<UL>
<LI><strong><A NAME="00908" HREF="msg00908.html">[MUD-Dev] Re: mud client development systems</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Sun 06 Dec 1998, 22:04 GMT
</LI>
</UL>
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00962" HREF="msg00962.html">[MUD-Dev] mud client development systems</A></strong>, 
Sunny Gulati <a href="mailto:sunnywiz#radiks,net">sunnywiz#radiks,net</a>, Mon 14 Dec 1998, 04:07 GMT
<UL>
<LI><strong><A NAME="00977" HREF="msg00977.html">[MUD-Dev] Re: mud client development systems</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 17 Dec 1998, 04:47 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00971" HREF="msg00971.html">[MUD-Dev] mud client development systems</A></strong>, 
Jay Carlson <a href="mailto:nop#mitre,org">nop#mitre,org</a>, Tue 15 Dec 1998, 22:56 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00906" HREF="msg00906.html">[MUD-Dev] Introduction</A></strong>, 
Mik Clarke <a href="mailto:mikclrk#ibm,net">mikclrk#ibm,net</a>, Sun 06 Dec 1998, 20:26 GMT
<UL>
<LI><strong><A NAME="00913" HREF="msg00913.html">[MUD-Dev] Re: Introduction</A></strong>, 
Adam J. Thornton <a href="mailto:adam#phoenix,Princeton.EDU">adam#phoenix,Princeton.EDU</a>, Mon 07 Dec 1998, 00:55 GMT
<UL>
<LI><strong><A NAME="00928" HREF="msg00928.html">[MUD-Dev] Re: Introduction</A></strong>, 
Mik Clarke <a href="mailto:mikclrk#ibm,net">mikclrk#ibm,net</a>, Mon 07 Dec 1998, 20:57 GMT
</LI>
</UL>
</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>