[MUD-Dev] TECH: Complex NPCs

Sean Kelly sean at hoth.ffwd.cx
Mon Apr 1 11:22:40 New Zealand Daylight Time 2002

On Sun, 31 Mar 2002, tryguy74 at hotmail.com wrote:
> I base my speculation on "The Sims". Essentially, I'd like to
> dulicate this kind of functionality to a text-based
> environment. I've been thinking of what functionality I'd like my
> NPCs to have, and The Sims' npcs have most of the underlying
> intelligence I'd like. I've read that The Sims' technology is
> based on fuzzy state machines and a-life. This makes sense.
> A-life -- Gives them the underyling needs/wants, and basic
> motivations, and possibly basic senses.  FuSM -- similar to FSM,
> which I already use to some extent. Good for modelling complex
> behaviour in a bounded system.
> Now, I could blunder my way through and arrive at something
> approximating The Sims' behaviours, but I thought I'd ask for help
> first!
> I'd like absolutely anything that would help me get a basic (or
> detailed) model up and running. I have lots of ideas to improve
> The Sims' engine for my personal, storytelling needs, but if I
> could get help on exactly how the engine works, that'd be
> priceless. A rough, generalized outline, a detailed description of
> how the different sub-engines co-operate, pseudocode of
> anything. Even code from MUDs that do things similar to what I'm
> after would be great.

Last month's Wired had a feature on AI and there was an interview
with the creator of The Sims.  The Sims AI is deceptively simple.
Sims people have a certain set of needs (hunger, entertainment,
sleep) and every object in the Sims world satisfies a need to some
degree.  Those objects emit signals whose strength is based on how
well they satisfy that need.  Using this idea, a 3d map is created
where the peaks are objects.  A Sims person, then, just needs to
evaluate which need is greatest and then follow the slope to that
satisfaction object.  The only exception is the bed, whose slope
extends across the entire Sims world, since the need for sleep
overrides everything.

I apologize if this is a poor description.  I'd reccommend picking
up the magazine for a better one.

> I know I'm asking alot. I've already looked for examples of
> complex npcs on google, and no-one seems to be developing anything
> other then chatterbots. Or at least not discussing them. I
> would've liked to have found a ready-made engine I could port, but
> no such luck.
> The Sim's system seems so simple: NPCs that have needs and Game
> Objects that broadcast what needs they can help with. And then
> just a behaviour model to direct how the npc should connect the
> two. It's a lot more complex, I know, and I'm not sure what
> sub-systems are involved or how they co-operate. Pathfinding,
> conflict management, and such like too, but I think I can handle
> those. I just need solid background material to understand the
> basic model.

Personally, I don't really consider the Sims AI to really be AI.
There is never much choice or thinking going on in the Sims world.
It's a strict need-satisfaction queue.  It might be a good start for
modeling realistic behavior on an individual level, but you'll still
need the chatterbot side of things to make the NPCs appear real to
the players.


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list