Up to Main Index Up to Journal for October, 2018
JOURNAL FOR THURSDAY 25TH OCTOBER, 2018
______________________________________________________________________________
SUBJECT: Thoughts on mobiles, creatures and critters
DATE: Thu 25 Oct 19:21:09 BST 2018
With the upcoming Halloween release I wanted to include something new for the
players. At the moment the release would be a roll-up of all of the hidden,
behind the scenes changes that have been going on. So in effect nothing new as
far as players are concerned.
When I stopped development, to concentrate on testing and fixing bugs, I was
working on mobiles. Mobiles are all of the NPCs (Non-player characters),
creatures and critters that inhabit the game world. So far mobiles can only
have simple actions. For example, a frog with the following three actions
defined:
Action: AFTER→10s JITTER→20s
OnAction: The frog croaks a bit.
: The little frog leaps high into the air.
: The frog hops around a bit.
Every 10 seconds, plus 0 to 20 seconds, one of the three messages will be
picked at random and displayed to players in the same location as the frog:
>look
Secluded path by shed
You are on a small secluded gravel path screened off from the formal gardens
by large bushes. To the south is a small shed with its door facing you. A
rock has been positioned by the shed, from the looks of it by someone who
thought it was artistic. The gravel path you are on leads northward.
You see a small frog here.
You can see exits north and south.
>
The frog hops around a bit.
>
The frog croaks a bit.
>
The frog hops around a bit.
>
To make mobiles more interesting I started work on an OnBehaviour attribute.
The idea was to add behaviours such as moving around, eating, sleeping and so
on. That didn’t end well. I could also see myself adding more and more OnXxx
handlers as time went on. I needed something more generic.
Then a few days ago I had a bright idea. Why not modify Action to be a list of
commands? That way any player command or scripting command could be used. For
example:
Action: AFTER→10s JITTER→20s
OnAction: $ECHO The frog croaks a bit.
: $ECHO The little frog leaps high into the air.
: $ECHO The frog hops around a bit.
: $MOVE
: LOOK
: SAY Ribbit!
At the moment there no $ECHO or $MOVE commands, commands that start with a
dollar ‘$’ are for scripting only. The idea is, $ECHO just sends out the
specified message to the current location. This gives us the current action
behaviour. The $MOVE command would make the mobile wander around by picking a
random exit at the current location. The LOOK command would be just like a
player looking around, you would see “A small frog starts looking around.”.
Now and again you would see “A small frog says: Ribbit!”.
With the above example the frog would have a 1 in 6 change of moving to a new
location. By adding multiple $MOVE commands you could increase it to 2 in 7, 3
in 8 or whatever. I have contemplated adding weights to the actions, something
like:
Action: AFTER→10s JITTER→20s
OnAction: $ECHO The frog croaks a bit.
: $ECHO The little frog leaps high into the air.
: $ECHO The frog hops around a bit.
: 10→$MOVE
: 2→LOOK
: SAY Ribbit!
Now the frog would have a 10 in 16 chance of moving, and a 2 in 16 chance of
looking around. I wanted to keep things very simple, so I’ve ignored adding
weights for now — adding 10 instance of $MOVE would have the same effect. As
it is I’m not sure if there is enough time to get all of this done and tested
by Halloween. I’m not going to rush things, and if it’s not ready it’ll be a
shame but that’s fine.
Only 6 days left till Halloween… /\oo/\
--
Diddymus
Up to Main Index Up to Journal for October, 2018