Newsgroups: rec.arts.int-fiction
Path: gmd.de!nntp.gmd.de!newsserver.jvnc.net!howland.reston.ans.net!pipex!dircon!rheged!simon
From: simon@rheged.dircon.co.uk (Simon Brooke)
Subject: Re: Artoris the bear (was Re: Intelligent NPC design (Bear?)
Message-ID: <CyCu6A.7pI@rheged.dircon.co.uk>
Organization: none. Disorganization: total.
References: <37jpjf$k98@nntp1.u.washington.edu> <380tkd$oia@ghost.sm.dsi.unimi.it> <Cy2MKI.3uK@rheged.dircon.co.uk> <whittenCyB9zq.D88@netcom.com>
Date: Thu, 27 Oct 1994 23:20:32 GMT
Lines: 69

In article <whittenCyB9zq.D88@netcom.com>,
David Whitten <whitten@netcom.com> wrote:
>Well now that A. the bear exists,
>
>what do we need to consider to handle the 'smells for food' unless in
>sealed containers?

In Artoris check for food I used RObjectsAt, the recursive version of
the objects-at-location function. This searches containers to
arbitrary depths of nesting, not including locked containers. This
should map quite well onto the containers which in reality a bear
could smell the contents of. I've made no provision for Artoris to
break his way into a locked container.

>
>What about the 'scratching trees to mark his territory?'
>

This isn't hard. Artoris only has to scan the objects in the location
to see if the word 'tree' describes any of them. If it does, then on a
one-in-three (or so) random, select the first object described by
'tree', report (if the player is present) that he is scratching a
tree, and if 'scratched' is not already a member of the adjectives of
the object, prepend 'scratched' to its adjectives.

>As I read A. the bear, he really doesn't have a home. (just the last
>place he slept) is this necessary?
>

You're right. I didn't give Artoris a home. To give him a home you
would need to (i) make his initial location a suitable sleeping place,
make his initial sleepPath a list comprising his initial location, and
(ii) remove the code fragment which causes him to recognise new sleeping
places. He would then return to his starting point each night.

>Spurring discussion
>Dave (whitten@netcom.com)
>

My real trouble with Artoris as I initially coded him (and I haven't
changed him, because I've been busy with other things) is that he's
pretty dangerous. I don't like things in games which kill the player
without warning, but currently if you come upon Artoris when he's
eating, he will immediately lash out, and he's strong enough to kill.

It's also pretty disturbing to come across NPCs lying dead around the
landscape. Artoris *does* prey on deer as intended, but he has an
unfortunate tendency to wipe out other NPCs from time to time as well.
If that happens when the player is present it's quite dramatic, but
otherwise...

	THERE IS A HALF-EATEN MAIDEN HERE.

(Genuine output!)

What I should do is set Artoris' attitude to anyone who disturbs him
while eating to a large negative number, and report that he growls
ferociously. This will make Artoris dangerous to meet in future, but
will prevent unwarned first encounter lashing out. Perhaps I should
also make his hostility gradually fade over time...

Anyone else any suggestions?



-- 
--------simon@rheged.dircon.co.uk
	(cond ((think you (oddp (my 'car)))
	       (should (see you (my 'cdr)))))
