<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: {MUD} Re: roleplaying & combat --> <!--X-From-R13: nyrkbNfncvraf.pbz (Oyrk Aera) --> <!--X-Date: from 194.78.48.181 [194.78.48.181] by mx01.ca.us.ibm.net id 841133315.88860-1 Tue Aug 27 08:08:35 1996 --> <!--X-Message-Id: 32229da7.140072784#squid,sapiens.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: Pine.SOL.3.94.960823200000.20373L-100000#eduserv1,rug.ac.be --> <!--X-Reference: 9608260902.ZM3190#xsvr1,cup.hp.com --> <!--X-Reference: 3221e17b.91900736#squid,sapiens.com --> <!--X-Reference: 9608261450.ZM16758#xsvr1,cup.hp.com --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: {MUD} Re: roleplaying & combat</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:alexo#sapiens,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="msg00029.html">Previous</a> | <a href="msg00031.html">Next</a> ] Thread: [ <a href="msg00029.html">Previous</a> | <a href="msg00002.html">Next</a> ] Index: [ <A HREF="author.html#00030">Author</A> | <A HREF="#00030">Date</A> | <A HREF="thread.html#00030">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: {MUD} Re: roleplaying & combat</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud#megami,ibase.be">mud#megami,ibase.be</A></LI> <LI><em>Subject</em>: Re: {MUD} Re: roleplaying & combat</LI> <LI><em>From</em>: <A HREF="mailto:alexo#sapiens,com">alexo#sapiens,com</A> (Alex Oren)</LI> <LI><em>Date</em>: Tue, 27 Aug 1996 07:53:18 GMT</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud#megami,ibase.be">mud#megami,ibase.be</A></LI> <LI><em>Sender</em>: <A HREF="mailto:owner-mud#megami,ibase.be">owner-mud#megami,ibase.be</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 Mon, 26 Aug 1996 14:50:29 -0700, JCL wrote: } > } [JCL:] } > } I think Alex had the right idea is saying that by default all commands } > } should be forced to compleat in entry order. His suggestion of also not } > } starting processing on one until the prior command compleats is } > } tantalising[...] } > [Alex:] } > A direct requirement of the C&C model. } > An event that didn't successfully complete does not exist. } [JCL:] } Not true. What you appear to be missing is the difference between an event } starting processing, and an event compleating. Consider: } } > Command1 } > Command2 } } The requirement is that the above commands must compleat in order, ie Command1 } must compleat before Command2 compleats. What this does not mean is that } Command1 and Command2 cannot be processing at the same instant. Consider: } } > Command1 } > Command2 } Command2 starts processing. // Note: the order of what command started } Command1 starts processing. // first is immaterial. } Command2 finishes processing, but blocks, waiting for Command1 to C&C. } Command1 finishes processing. } Command1 C&C's. } Command2 C&C's. But what happens if Command1 contends with Command2? } Now I can simplify the processing model somewhat by requiring that a command } can only start processing when its immediate processor has compleated } processing, and there may be some efficiency gains to be garnered from this } rule due to fewer events failing C&C and having to be rescheduled, That is more or less what I meant. } but there's no behavioural requirement for it. OK. } > } [JCL:] } > } My idea is that a command resulting in an event which does } > } not call a method on the same object as the event it is sequentially dependant } > } on, may start processing prior to the event it depends on compleating first } > } compleating. How would you know *beforehand* what objects will be involved in the execution of the events? } The example quoted below looks at a specific case of three commands entered in } sequence, and allowing their out-of-order processing, while continueing to } require their in-order compleation. } } > } Given the following sequence of entered commands: } > } } > } > #1 } > } > #2 } > } > #3 } > } } > } Where those commands result in events A, B and C respectively, and } > } where event A calls a method on ObjectX, event B calls a method } > } on ObjectX, and event C calls a method on ObjectY. } > } A will start processing. } > } B cannot start processing until A compleats. } > } C may start processing before B compleats. } > } > Some questions: } > } > 1) Event C calls a method on objectY, which calls a method on objectZ, which } > calls a method on objectX. How will you handle? } } Event C may fail C&C, and so will be rescheduled. No special handling } required. I disagree. Indirectly calling a method on objX will not necessarily cause event C to fail C&C. } > 2) You mention events that are the result of commands. } > What about events that result from mob programs, user-written scrips, } > etc.? } } They follow all the same rules, except that (one would hope) such automated } events not originating from player characters would not need the ability to } kill all prior uncompleated events. I think that the serialization requirement (when needed) should be based on events, whether they result from commands or not. Commands are just a simple case where we have predetermined the order of event invocation. Consider the case of two events, A and B. It may be the case that the order of event completion will influence the results of those events (we had lots of "dragon examples" to that effect). I think that we need a mechanism that will ensure that the end result of all the invoked events will be the same as if the evens were processed in strictly serial fashion with a predetermined order. } I believe I have already admitted the need for guaranteed serialisation of user } commands, which I am intending to approach thru sequence numbers. Can this sequencing be generalized to include all events? In the sake of "purity" I feel that the engine should not be concerned with the origin of events (user commands or otherwise). Have fun, Alex. </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="00003" HREF="msg00003.html">{MUD} Re: roleplaying & combat</A></STRONG> <UL><LI><EM>From:</EM> Wout Mertens <Wout.Mertens#rug,ac.be></LI></UL></LI> <LI><STRONG><A NAME="00019" HREF="msg00019.html">Re: {MUD} Re: roleplaying & combat</A></STRONG> <UL><LI><EM>From:</EM> "Chris Lawrence" <clawrenc#xsvr1,cup.hp.com></LI></UL></LI> <LI><STRONG><A NAME="00024" HREF="msg00024.html">Re: {MUD} Re: roleplaying & combat</A></STRONG> <UL><LI><EM>From:</EM> alexo#sapiens,com (Alex Oren)</LI></UL></LI> <LI><STRONG><A NAME="00029" HREF="msg00029.html">Re: {MUD} Re: roleplaying & combat</A></STRONG> <UL><LI><EM>From:</EM> "Chris Lawrence" <clawrenc#xsvr1,cup.hp.com></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00029.html">Re: {MUD} Re: roleplaying & combat</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00031.html">Re: {MUD} Re: various (MUD)</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00029.html">Re: {MUD} Re: roleplaying & combat</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00002.html">{MUD} Re: MUD: language</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00030"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00030"><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><A NAME="00003" HREF="msg00003.html">{MUD} Re: roleplaying & combat</A></strong>, Wout Mertens <a href="mailto:Wout.Mertens#rug,ac.be">Wout.Mertens#rug,ac.be</a>, Sat 24 Aug 1996, 01:24 GMT <UL> <LI><EM>Message not available</EM><UL> <LI><strong><A NAME="00019" HREF="msg00019.html">Re: {MUD} Re: roleplaying & combat</A></strong>, Chris Lawrence <a href="mailto:clawrenc#xsvr1,cup.hp.com">clawrenc#xsvr1,cup.hp.com</a>, Mon 26 Aug 1996, 23:20 GMT <UL> <LI><strong><A NAME="00024" HREF="msg00024.html">Re: {MUD} Re: roleplaying & combat</A></strong>, Alex Oren <a href="mailto:alexo#sapiens,com">alexo#sapiens,com</a>, Tue 27 Aug 1996, 01:12 GMT <UL> <LI><strong><A NAME="00029" HREF="msg00029.html">Re: {MUD} Re: roleplaying & combat</A></strong>, Chris Lawrence <a href="mailto:clawrenc#xsvr1,cup.hp.com">clawrenc#xsvr1,cup.hp.com</a>, Tue 27 Aug 1996, 05:05 GMT <UL> <LI><strong><A NAME="00030" HREF="msg00030.html">Re: {MUD} Re: roleplaying & combat</A></strong>, Alex Oren <a href="mailto:alexo#sapiens,com">alexo#sapiens,com</a>, Tue 27 Aug 1996, 15:08 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="00002" HREF="msg00002.html">{MUD} Re: MUD: language</A></strong>, Wout Mertens <a href="mailto:Wout.Mertens#rug,ac.be">Wout.Mertens#rug,ac.be</a>, Sat 24 Aug 1996, 01:19 GMT <LI><strong><A NAME="00001" HREF="msg00001.html">Re: {MUD} Re: Wout's mailing list.</A></strong>, Chris Lawrence <a href="mailto:clawrenc#xsvr1,cup.hp.com">clawrenc#xsvr1,cup.hp.com</a>, Sat 24 Aug 1996, 01:18 GMT <UL> <li><Possible follow-up(s)><br> <LI><strong><A NAME="00005" HREF="msg00005.html">Re: {MUD} Re: Wout's mailing list.</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,graysage.edmonton.ab.ca">cg#ami-cg,graysage.edmonton.ab.ca</a>, Sat 24 Aug 1996, 13:20 GMT </LI> <LI><strong><A NAME="00006" HREF="msg00006.html">{MUD} Re: Wout's mailing list.</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,graysage.edmonton.ab.ca">cg#ami-cg,graysage.edmonton.ab.ca</a>, Sat 24 Aug 1996, 13: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>