<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] C&C and Event Rescheduling --> <!--X-From-R13: Eunja Vnycraal <znynpunvNvanzr.pbz> --> <!--X-Date: from babe.globecomm.net [207.51.48.8] by in3.ibm.net id 870381338.89708-1 Thu Jul 31 20:35:38 1997 CUT --> <!--X-Message-Id: 33E0F714.41C67EA6#iname,com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 9707311416.8a0i@ami-cg.GraySage.Edmonton.AB.CA --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] C&C and Event Rescheduling</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:malachai#iname,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="msg00319.html">Previous</a> | <a href="msg00321.html">Next</a> ] Thread: [ <a href="msg00313.html">Previous</a> | <a href="msg00468.html">Next</a> ] Index: [ <A HREF="author.html#00320">Author</A> | <A HREF="#00320">Date</A> | <A HREF="thread.html#00320">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] C&C and Event Rescheduling</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>: Re: [MUD-Dev] C&C and Event Rescheduling</LI> <LI><em>From</em>: Shawn Halpenny <<A HREF="mailto:malachai#iname,com">malachai#iname,com</A>></LI> <LI><em>Date</em>: Thu, 31 Jul 1997 16:35:33 -0400</LI> <LI><em>Sender</em>: <A HREF="mailto:rsh#iname,com">rsh#iname,com</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> Chris Gray wrote: > > [Shawn H:] > :For the record, object methods appear the same to the DB as object > :attributes. This makes changing a method the same as changing an > :attribute--the C&C mechanism will take care of the contention where > :Bubba is opening a door and Boffo is changing the code for opening > :the door. Only the VM cares if the contents of an attribute actually > :represent an attribute or a method. None of this is gospel in my > :design yet, so I fully expect you to blast some holes in it :> > > Is it really necessary to be this careful with code changes? To me, the > are outside of the scenario, in that they are not directly visible to > players, or to NPC's, etc. So, it doesn't really matter when code > changes actually take place. Actually, I plan to not be careful with code changes at all. They'll compete for a clean run-through with that door just like the rest of the events. The thing that nags at me is that door-opening events that have already begun executing, but can't commit yet, because Bubba's changing the door code, are restarted. That's all good and fine, but I wonder if they should have executed with the old door code since that was the expectation when they ripened. Otherwise, it comes out such that changing the code while doors are being opened results in those doors who have already tried to open (but couldn't because the code change caused their death and reschedule), now opening differently (i.e. different functionality in the code). I suppose it should probably be looked at from the perspective of the player opening the door. She has no idea that that door-open event is being killed and rescheduled, so the code change effectively looks like it took place before she opened the door since she'll have no indication of what is going on until the event dumps some output back to her. This seems the correct behavior to me, but I'm wondering if it should be that way for all cases? If not, is the worst thing that could happen something "logically interesting" like that chest example a few posts back? > If an administrator is doing code changes > on a running system, it seems the desire is for those changes to take > effect "whenever they get there", otherwise that administrator would > have to take great care to put manual flags around everything, to block > out uses while the changes are being made. Often, changes to code will > need changes to more than one piece of code - do you want to add > provisions for manual locking? I sure don't, hence allowing methods to look like attributes to the DB. Things will compete nicely and (if what I planned above holds true in the necessary cases) the new code will indeed drop into place whenever it gets there (i.e. when it gets a clean run through with its object--should be easy, since all it is doing is writing to it). A bonus is that any events whose processing called a method that was replaced are killed and rescheduled by the same mechanism already in place for attributes. > For the record, when a wizard edits a piece of code in AmigaMUD, as > soon as the edited code is accepted by the server it becomes the one > official copy of that code, and further uses will use it. I've made > no provisions for delaying that switchover. Then again, my server is > single-threaded, but all the discussion of multi-threaded execution > didn't trigger any thoughts about protecting code changes. There is only ever one piece of executable code in place for the methods being changed. All object updates are atomic, and all methods execute with their own little VM in their own thread, so there's no ugly stack magic going on. The DB should just merrily commit things when they're ready and everyone will be happy, regardless of what's being changed when or where. -- Shawn Halpenny "At any given time there is a 50% chance I've become discontinuous on the probability axis." - Me </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="00468" HREF="msg00468.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></strong> <ul compact><li><em>From:</em> clawrenc#cup,hp.com</li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00311" HREF="msg00311.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></STRONG> <UL><LI><EM>From:</EM> cg#ami-cg,GraySage.Edmonton.AB.CA (Chris Gray)</LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00319.html">Re: [MUD-Dev] Graphic MUDS/Ultima Online</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00321.html">DESIGN: The purpose of MUDding?</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00313.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00468.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00320"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00320"><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] DESIGN: The purpose of MUDding?</STRONG>, <EM>(continued)</EM> <ul compact> <LI><strong><A NAME="00475" HREF="msg00475.html">Re: [MUD-Dev] DESIGN: The purpose of MUDding?</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Mon 11 Aug 1997, 22:21 GMT </LI> </ul> </LI> <LI><strong><A NAME="00316" HREF="msg00316.html">Re: [MUD-Dev] Tilting at the SimWindmill - was UO</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Thu 31 Jul 1997, 23:44 GMT <LI><strong><A NAME="00311" HREF="msg00311.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Thu 31 Jul 1997, 21:49 GMT <UL> <LI><strong><A NAME="00313" HREF="msg00313.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></strong>, Miroslav Silovic <a href="mailto:silovic#mare,zesoi.fer.hr">silovic#mare,zesoi.fer.hr</a>, Thu 31 Jul 1997, 23:14 GMT </LI> <LI><strong><A NAME="00320" HREF="msg00320.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Fri 01 Aug 1997, 03:35 GMT <UL> <LI><strong><A NAME="00468" HREF="msg00468.html">Re: [MUD-Dev] C&C and Event Rescheduling</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Mon 11 Aug 1997, 22:02 GMT </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="00309" HREF="msg00309.html">Re: [MUD-Dev] Persistance/stability</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Thu 31 Jul 1997, 13:05 GMT <UL> <LI><strong><A NAME="00314" HREF="msg00314.html">Re: [MUD-Dev] Persistance/stability</A></strong>, Miroslav Silovic <a href="mailto:silovic#mare,zesoi.fer.hr">silovic#mare,zesoi.fer.hr</a>, Thu 31 Jul 1997, 23:19 GMT <UL> <LI><strong><A NAME="00322" HREF="msg00322.html">Re: [MUD-Dev] Persistance/stability</A></strong>, Matt Chatterley <a href="mailto:root#mpc,dyn.ml.org">root#mpc,dyn.ml.org</a>, Fri 01 Aug 1997, 13:21 GMT </LI> </UL> </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>