1998Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: Combat  Was Re: Leaving characters in play -->
<!--X-From-R13: Aevba Vrael <bevbaLNvk.argpbz.pbz> -->
<!--X-Date: Mon, 18 May 1998 18:08:04 &#45;0700 -->
<!--X-Message-Id: 3.0.5.32.19980519060259.0082b760#popd,ix.netcom.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 3.0.5.32.19980518122701.00828690#popd,ix.netcom.com -->
<!--X-Reference: Pine.LNX.3.95.980518221044.1045C&#45;100000#pyrolisk,ip.local -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: Combat  Was Re: Leaving characters in play</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:orionZ#ix,netcom.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="msg00677.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00679.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00662.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00683.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00678">Author</A>
&nbsp;|&nbsp;<A HREF="#00678">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00678">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</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: Combat  Was Re: Leaving characters in play </LI>
<LI><em>From</em>: Orion Henry &lt;<A HREF="mailto:orionZ#ix,netcom.com">orionZ#ix,netcom.com</A>&gt;</LI>
<LI><em>Date</em>: Tue, 19 May 1998 06:02:59 -0700</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Sender</em>: "Petidomo List Agent -- Kanga.Nu version" &lt;<A HREF="mailto:petidomo#kanga,nu">petidomo#kanga,nu</A>&gt;</LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
At 10:42 PM 5/18/98 +1200, Oliver wrote:
&gt;On Mon, 18 May 1998, Orion Henry wrote:
&gt;
&gt;&gt; &gt;I have a feeling I've seen discussion of this before on the list, but 
&gt;&gt; &gt;anyway..
&gt;&gt; 
&gt;&gt; Yes, this was brought system was brougt up over a year ago.  Its been so
&gt;&gt; long since we have talked combat systems and we have so many new
&gt;&gt; subscribers I didnt feel bad about recycling it.  Also all the luck stuff
&gt;&gt; at the end was new and I was curious as to what people thought.
&gt;
&gt;I actually meant the "how do you work out which actions are appropriate"
&gt;idea - I'm sure I saw a thread to do with climbing trees vs. finding
&gt;healers at one point. WebGlimpse on the archives is spitting internal
&gt;server errors at me currently, and the other search engine is timing out, 
&gt;so I can't find it :(

That tree climbing thing was an offshoot of the first time we presented
this system.


&gt;&gt; &gt;  Bubba casts the dreaded "make all chests electrified" spell.
&gt;&gt; &gt;  &gt; skewer bubba
&gt;&gt; &gt;  You skewer Bubba with your sword. He collapses to the ground.
&gt;&gt; &gt;  You open the chest. ZAP! You are dead!
&gt;&gt; &gt;  &gt; say damn!
&gt;&gt; 
&gt;&gt; hahaha... yes, that COULD happen under the system as I understand it.  I
&gt;&gt; had a few things to compensate:  1) the "stop" command clears the queue of
&gt;&gt; all volintary actions.  Thus if you see something bad heading your way you
&gt;&gt; can immidatly stop your action queue.
&gt;
&gt;Hm, well, my point was that it might kick in before you have a chance to
&gt;react, which is why you want the system to be intelligent about which
&gt;actions it selects. more on this below.
&gt;
&gt;&gt; 2) different actions have different
&gt;&gt; fragility levels.  If you get bonked on the head you will most likely
&gt;&gt; forget about your apple.  If you casually kill bubba without breaking a
&gt;&gt; sweat you'd go right back to eating it.  Some things (like counting) get
&gt;&gt; broken very easily. ;)
&gt;
&gt;Right, this sounds like what I was suggesting later. Anything significant
&gt;should interrupt less important actions, so combat of any length would
&gt;probably result in the open chest action being cancelled.
&gt;
&gt;Do you use a simple priority system to work out what to cancel? ie. "being
&gt;bonked on the head cancels all actions at priority 'menial'"? Or
&gt;something more complex like "if I'm bonked on the head more than twice in
&gt;10 seconds, cancel all actions at 'menial' that will take more than 5s 
&gt;to execute"? Or something different again?

I was planning on adding a fragility level to each possible action.  Things
like pain, loud noises or being distracted could cause them to fall out of
the queue.  Now I have to admit you have a lot of good points on what to do
when an action is surpressed and then resurfaces.  My stubbornness on this
is rooted in the fact that most of the things I am implimenting in the mud
are there to achieve my "cinematic realism" quota.  Basically I choose a
cool action movie and try to figure out what I need to add to the code so
that all the things that happen in the movie could easily happen in the
dayly context of the mud.  "The Princess Bride" was a big contributor, with
the flashing sword play vs. the standard Diku 400 hp with platemail and a
big axe.  The rice ball scene at the begining of "Ninja Scroll" is what I'm
aiming at with the priority queue. (If you have seen it you know what I am
talking about, and if you havent go see it).  The hero is munching on a
ball of rice and is jumped by 3 thugs.  He tosses the ball straight up,
dispatches all three, does a cool cinematic pose where we slides the sword
back into his shieth, and then catches the ball of rice and keeps eating. 

I figure that with this system 90% of the time the menial actions will be
dropped in combat... but when the character dosnt break a sweat in the
fight I am assumign the player isnt either, and just to puncutate the
bad-ass-ness of the situation let them keep doing whatever it was without
considering the fight an interuption.

&gt;I can see the advantages of having a more complex system, so that someone
&gt;can't sit there and repeatedly scream "WE'RE UNDER ATTACK" in your face,
&gt;thus preventing you from ever eating your apple. Conversely, a lot of this
&gt;system seems to be oriented around improving player control - at least
&gt;partially to counteract the speed-demon-typist syndrome, I suspect: it's
&gt;so that the character has some basic intelligence of its own, rather than
&gt;being a mindless puppet. 

Absolutly.  It does many things for me.  The character is more intelegent.
Actions are paced correctly.  The flow of combat is realistic with people
on the offensive and defensive, w/ parrys, dodges and counterattacks all
makign sense.  Light vs. Heavy weapons work correctly.  Spamming commands
is useless.  Actions and execution of actions seem more realistic and dont
allow for as many reality loopholes for players.  It lets me avoid an ugly
"Combat" state that is somehow seporate from the rest of the world. I have
to admit I have become quite fond of the system.

&gt;You want a -predictable- system, as requiring a
&gt;player to constantly guess what their character will do if they enter a
&gt;command doesn't seem too enjoyable to me.

I have been hopeing that if I do things correctly the character will only
forget about the old actions if the player does too, avoiding confusion.
If you were right in the middle of stacking plates and washign dishes when
an ogred tried to kill you, needless to say you have  to stop and stack
stock of the situation to figure out where you where when things calmed
down... "Now where was I..."  If the fight was quick and clean and
painless, quite likely the character will just keep washing dishes as if
nothing had happened, just as the player would want. ( I think )  This
looks like a great opertunity for customization on the players part...


&gt;Not sure on this - the ear was probably a bad example. You want to assume
&gt;that if the player suddenly enters a stream of high-priority actions, or
&gt;if a pile of reflex actions kick in, then something -important- is
&gt;happening, and the player doesn't want to be worried about whether he'll
&gt;be opening the chest next.

Right... the trick is figureing out what is important.  I'm working under
the assumption that if the actions are of high priority in the first palce
then they are important.  Byond that I assume that if the characer breaks a
sweat, its reasonable that he'll forget the menial tasks he was doing.  And
lastly if the "player" views something as really important then he will
issue a stop command to drop everythign and then get to work.

&gt;There's an element of "people don't -do- that!" in here too. Having
&gt;players eat apples while fighting off dragons and opening chests in the
&gt;breaks in combat seems vaguely obsessive-compulsive to me. "Ooh, he's
&gt;pausing to cast a fireball, I can open another chest! &lt;creak&gt; &lt;boom&gt;"

Heheheh... I have an information priority action called "on guard" that
blocks you from doing anything menail.  It lets you react faster to
attacks, lets you notice things like knives in the back better.  And since
its not life-or-death priority you can use the time to check out your
oponent, notice how wounded they are, how tired ect... being "on guard" is
a standard reaction to other people being on guard or people casting spells
ect... thus everyone tends to be on guard even for a bit after combat
stops... thus the above is not likely to happen.
 

&gt;Perhaps suspend actions when there's something important going on, and
&gt;remind the player about them in some way when the fuss dies down.
&gt;
&gt;   &gt; open chest
&gt;   A dragon flies in and tries to eat you. Ouch.
&gt;   [.. combat ..]
&gt;   The dragon collapses to the ground, dead.
&gt;   You could probably continue opening the chest now.
&gt;   &gt; continue
&gt;   You open the chest.

This is a really good idea, but my "Ninja Scroll" sensibilities will
proboly prevent me from useing it.  Alas...

Now... heres something I have been working on in the back of my head, and
if any of you old school hackers have any ideas on how I should code this
please let me know.  I havnt found a data structure that I feel is simple
and straight forward enough.

I wanted to make the priority queue more complex, wider.  Where actions tie
up bodyparts as well as priorites.  Thus, when sword fighting with someone,
your hands and eyes are doing things at life-or-death but your mouth is not
so you can still talk to someone in the midts of the fray, without slowing
your attacks down.  At the same time you would have to stagger your coments
while eating an apple as each in turn would need access of the mouth.  Each
action would require some limbs to be free.  This would also automate limb
loss.  If you are missing both your legs a walk command will never get off
as it cant get the limbs needed, but a crawl command would work as it only
needs arms, and for the quadraplegis, wriggle would only require a torso ;)
 This would also make it easy to automate things like grabbing an opponent
or having your hands tied or being in an arm lock.  You could define one
arm as a prime hand and one as an off hand.  Actions like blocking a blow
could be done with an off hand but most attacks would require a primehand.
Thus you can block with your shield, and while that arm is tied up on the
queue, you could attack with your other hand.  If you simply defined
someone as ambidextrous as having two primehands they could have two
simultanoius queues of hand actions being processed at once.  This would
allow you to easily add things like 4 armed races or winged races where the
"fly" action requires 2 wings.  Things get sticky and I start to get
confused when I consider attacking with a two handed sword that needs any
two hands.  If i impliment parallel queues, one hand delay could get stuck
behind if one queue was cloged and one was not, while in practice I'd want
both hands to get stuck until both queues are open... Also I wanted to
leave things open for things like limbs that are both hands and feet...
like a chimp...

	Any ideas?

	Orion



-- 
MUD-Dev: Advancing an unrealised future.

</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="00661" HREF="msg00661.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></STRONG>
<UL><LI><EM>From:</EM> Orion Henry &lt;orionZ#ix,netcom.com&gt;</LI></UL></LI>
<LI><STRONG><A NAME="00662" HREF="msg00662.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></STRONG>
<UL><LI><EM>From:</EM> Oliver Jowett &lt;oliver#jowett,manawatu.planet.co.nz&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00677.html">[MUD-Dev] Re: Bad Game Designer, No Twinkie! -- By Ernest Adams</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00679.html">[MUD-Dev] Re: Combat Was Re: Leaving characters in play</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00662.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00683.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00678"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00678"><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="00655" HREF="msg00655.html">[MUD-Dev] Combat  Was Re: Leaving characters in play</A></strong>, 
Orion Henry <a href="mailto:orionZ#ix,netcom.com">orionZ#ix,netcom.com</a>, Sun 17 May 1998, 21:55 GMT
<UL>
<LI><strong><A NAME="00660" HREF="msg00660.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></strong>, 
Oliver Jowett <a href="mailto:oliver#jowett,manawatu.planet.co.nz">oliver#jowett,manawatu.planet.co.nz</a>, Sun 17 May 1998, 23:44 GMT
<UL>
<LI><strong><A NAME="00661" HREF="msg00661.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></strong>, 
Orion Henry <a href="mailto:orionZ#ix,netcom.com">orionZ#ix,netcom.com</a>, Mon 18 May 1998, 01:04 GMT
<UL>
<LI><strong><A NAME="00662" HREF="msg00662.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></strong>, 
Oliver Jowett <a href="mailto:oliver#jowett,manawatu.planet.co.nz">oliver#jowett,manawatu.planet.co.nz</a>, Mon 18 May 1998, 04:26 GMT
<UL>
<LI><strong><A NAME="00678" HREF="msg00678.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></strong>, 
Orion Henry <a href="mailto:orionZ#ix,netcom.com">orionZ#ix,netcom.com</a>, Tue 19 May 1998, 01:08 GMT
</LI>
<LI><strong><A NAME="00683" HREF="msg00683.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Tue 19 May 1998, 03:36 GMT
</LI>
<LI><strong><A NAME="00686" HREF="msg00686.html">[MUD-Dev] Re: Combat Was Re: Leaving characters in play</A></strong>, 
J C Lawrence <a href="mailto:claw#greek,kanga.nu">claw#greek,kanga.nu</a>, Tue 19 May 1998, 04:28 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
<LI><strong><A NAME="00681" HREF="msg00681.html">[MUD-Dev] Re: Combat  Was Re: Leaving characters in play</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Tue 19 May 1998, 02:50 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
<LI><strong><A NAME="00632" HREF="msg00632.html">[MUD-Dev] Re: OT: Java multithreading performance</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 16 May 1998, 17:16 GMT
</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>