1997Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev]  Re: Multi&#45;threaded mudding (was a flamefest) -->
<!--X-From-R13: fvybivpNfepr.ue ([vebfyni Evybivp) -->
<!--X-Date: from tacitus.globecomm.net [207.51.48.7] by mx4.ibm.net id 862644085.37624&#45;1 Sat May  3 07:21:25 1997 -->
<!--X-Message-Id: 199705030728.JAA28828#regoc,srce.hr -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 3.0.32.19970502203318.00b46f38#mail,tenetwork.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:silovic#srce,hr">
</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="msg00317.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00319.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00316.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00323.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00318">Author</A>
&nbsp;|&nbsp;<A HREF="#00318">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00318">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</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]  Re: Multi-threaded mudding (was a flamefest)</LI>
<LI><em>From</em>: <A HREF="mailto:silovic#srce,hr">silovic#srce,hr</A> (Miroslav Silovic)</LI>
<LI><em>Date</em>: Sat, 3 May 1997 09:28:03 +0200 (MET DST)</LI>
<LI><em>Cc</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
&gt; At 08:08 PM 5/2/97 PST8PDT, you wrote:
&gt; &gt;
&gt; &gt;On 02/05/97 at 05:58 PM, Jeff Kesselman &lt;jeffk#tenetwork,com&gt; said: &gt;At
&gt; &gt;04:38 PM 5/2/97 PST8PDT, coder#null,net wrote:
&gt; &gt;
&gt; &gt;&gt;&gt;While technically accurate, its really a questionable point.  ColdX's
&gt; &gt;&gt;&gt;definition of envets are tightly limited to connection and I/O state
&gt; &gt;&gt;&gt;changes.  It actually has no real concept of an internally generated
&gt; &gt;&gt;&gt;event, or even an event model as regards internal state changes for
&gt; &gt;&gt;&gt;the DB.  It's only events center on what happens on its network ports.
&gt; &gt;...
&gt; &gt;&gt;I think to make your poitn vaild you need to explain what the differnece
&gt; &gt;&gt;between an "internal event" and a message pass is, in your model. I see
&gt; &gt;&gt;no practical difference.  In my model and in the term event driven as I
&gt; &gt;&gt;understand it to be commonly used, the only difference is that the call
&gt; &gt;&gt;coems from the OS... which is to say it happens inresponse to IO (or the
&gt; &gt;&gt;clock, which is also a form of IO really.)
&gt; &gt;
&gt; &gt;A running MUD has the unusual property of being self-animating.  Ignoring
&gt; &gt;the questions of swapping out inactive areas etc, even if no users ever
&gt; &gt;log in, the mobiles will continue to wander their paths, night and day
&gt; &gt;will progess thru the MUD world, weather will change, seasons will pass. 
&gt; &gt;The game world will animate itself.
&gt; &gt;
&gt; &gt;I model these animations as events.  A mobile moves his next step by
&gt; &gt;having a closing event log a new event to step him forward some time in
&gt; &gt;the future.  
&gt; 
&gt; Pardon me, but it soudns like syntactic sugar on top of a timer event.
&gt; 
&gt; I just don't see it as beign paradigmaticly really all that different from
&gt; animating off of a generic call back timer.  I have sucha  thing in my Cold
&gt; core runnign off the heartbeat,as  I suspect virtually every Cold core does.
&gt; 
&gt; Thanks for giving me the reference, though.
&gt; 
&gt; JK

This is an answer to both of the above. Currently Cold uses $scheduler to
implement timed pause (i.e. to keep the task suspended for a number of
seconds). The normal way of implementing 'animation' is to schedule
next move of the monster to some time in the future, and to cancel the
scheduled task if anything else happens. Don't get me wrong, even though
it's currently implemented in the core and runs off heartbeat (basically
$scheduler object checks the task queue every few seconds and resumes
the tasks that need it), it properly belongs to the driver.

Both ways are slow, though - 1000 monsters running around are plenty, unless
you set them to a rather long period, say, a minute ($scheduler uses heap
and it doesn't have problems with a large number of active tasks, the
bottleneck is the actual movement). Cold simply isn't meant to simulate
the world in the same way it's done in DIKU (but there are other ways.
For instance, you can make the monsters /really/ smart. And you can get
them to wind down, so that they sleep unless something is happening
nearby).

Oh, and to respond something else, Cold is not threaded yet, except for
the cooperative multitasking supported by interpreter itself. The reason
for it is that we decided that it'd take us ages to finish the system if
we do it, so threading is scheduled for the next major version. Also,
thanks to cooperative thingie, Cold doesn't face any of the problems
usually associated with threads, and currently has no builtin systems
that deal with it.

	Miro

PS. Thanks for inviting me to the list. :) I see it could be fun.

Background notice: I'm working on Cold development, and I expect to be
instantly recognized by the people involved with it. I mostly play
MUSHes, and I tend to enphasize roleplaying over slashing, imagination
over code, and imagination-stimulating code (such as weather,
player-to-player informational systems, detailed geography, good
building support) over video-game code - unless it really is *smashing*
game code. :)


</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="00323" HREF="msg00323.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>
<ul compact><li><em>From:</em> Ling &lt;K.L.Lo-94#student,lut.ac.uk&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00312" HREF="msg00312.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></STRONG>
<UL><LI><EM>From:</EM> Jeff Kesselman &lt;jeffk#tenetwork,com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00317.html">Re: [MUD-Dev]	Re: Multi-threaded mudding (was a flamefest)</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00319.html">Last sendmail test (we're up to 8.*)!</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00316.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00323.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00318"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00318"><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]  Re: Multi-threaded mudding (was a flamefest)</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00311" HREF="msg00311.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 03 May 1997, 08:36 GMT
</LI>
</ul>
<LI><strong><A NAME="00312" HREF="msg00312.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Sat 03 May 1997, 10:21 GMT
<UL>
<LI><strong><A NAME="00313" HREF="msg00313.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 03 May 1997, 11:38 GMT
</LI>
<LI><strong><A NAME="00316" HREF="msg00316.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 03 May 1997, 12:32 GMT
</LI>
<LI><strong><A NAME="00318" HREF="msg00318.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
Miroslav Silovic <a href="mailto:silovic#srce,hr">silovic#srce,hr</a>, Sat 03 May 1997, 14:21 GMT
<UL>
<LI><strong><A NAME="00323" HREF="msg00323.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
Ling <a href="mailto:K.L.Lo-94#student,lut.ac.uk">K.L.Lo-94#student,lut.ac.uk</a>, Mon 05 May 1997, 18:02 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
<LI><strong><A NAME="00315" HREF="msg00315.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sat 03 May 1997, 12:15 GMT
<UL>
<LI><strong><A NAME="00322" HREF="msg00322.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
Miroslav Silovic <a href="mailto:silovic#srce,hr">silovic#srce,hr</a>, Sun 04 May 1997, 12:45 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00321" HREF="msg00321.html">Re: [MUD-Dev]  Re: Multi-threaded mudding (was a flamefest)</A></strong>, 
Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Sun 04 May 1997, 11:28 GMT
</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>