Jump to content
  • Advertisement
Sign in to follow this  
Ketchaval

NPCs have a routine / schedule.

This topic is 4743 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Games where the characters have a fixed schedule, or a 'suggested' schedule. Ie. They will do something fun at 7 o'clock ie. a choice of watching TV, playing pool, phoning their friends etc. I'm surprised that I haven't seen this idea more often in games (except in things like Majora's Mask), however I suppose the problem is that it doesn't tie in much to the "gameplay" side of most existing games and so is more effort than it is worth.

Share this post


Link to post
Share on other sites
Advertisement
Check out Oblivion and the Radiant AI.

Instead of giving NPC's a schedule, they give them goals and let the AI decide its own schedule.

Etc goals for a shopkeeper: Be in your store at day time, rest at night, eat when you are hungry, find shoplifters, exchange gossip. The the shopkeeper will do its own schedule on the spot.Very interresting, but of course messy things can happen if you don't do a lot of balancing and testing.

Is it worth it? depends on the game, and the players. A lot of players likes to know that the NPCs will always be at the same spot, so that they can find them easily. So if your scheduling can make your NPC's move around a lot, give the players a mean to find them quickly.

Share this post


Link to post
Share on other sites
This is something that we've been discussing in another thread called "Making a game you would actually roleplay in."

Im surprised you dont see it as much as well.

Share this post


Link to post
Share on other sites
There was a great project called the Virtual Village based off this - Its a thread dated back to December 2004 time - I dont have the link but its a great read!

Share this post


Link to post
Share on other sites
I think it's important to find a balance between impressive NPC behavior and world accessibility. If I've finally saved up enough for a new helmet, I don't want to have to camp out at the blacksmith for three game days while he's vacationing in the Stony Mountains. I want to walk up to the counter, plunk down my gold, and walk away with a sugarloaf. Bam. In this instance, a totally inanimate model of a shopkeeper is vastly preferable to a living, breathing, feeeeeeeling one.

So if you're going with this fancy heuristic behavior deal, make sure I can ask the barber, "Hey, barber! Where'd the blacksmith go?" and have him say, "He's at the wharf, catching crabs!"

Just keeping regular hours would probably be good enough, really. Post them on the door, and have the NPC show up religiously.

Share this post


Link to post
Share on other sites
Quote:
Original post by Iron Chef Carnage
So if you're going with this fancy heuristic behavior deal, make sure I can ask the barber, "Hey, barber! Where'd the blacksmith go?" and have him say, "He's at the wharf, catching crabs!"


I was in fact considering something like this, where an NPC could remember where he last saw this or that guy; it would be very simple to tie in with a semantic network. Later I realized it's better to DESIGN a schedule than to let the computer make one, so I abandoned this model (it included other ways of exploiting a semantic network also). Then again, some writers like to use scrambled text to give their imagination a push...

Really, if you want to play a game where the NPCs live to serve the player, you could just pick any title and get to it. Ever heard of Diablo II? (I wonder how many times I've used this game as an example to something...)

Anyways, like I said above, it can be a lot better to design a unique schedule for everyone. It's rarely a good idea to let the game run free, though in this case it wouldn't do that much harm after all. Still, it should be much more interesting to have an NPC that does something fitting to its personality and the moment rather than one that randomly selects between actions a and g that sort of, kind of, relate to what's going on.

Share this post


Link to post
Share on other sites
Here's the subroutine that I proposed for the on-going needs assesment of an NPC:


I. Are my needs at an acceptable state?

A. Physical (the most basic requirements)
1. Safety - If Im being attacked I will forget hunger and sleep
2. Food - If I am hungry, I may not be able to sleep
3. Sleep - If I am tired, I cannot meet other goals
4. Shelter - I need a place to sleep, avoid distraction, collect things
5. Freedom - The above conditions can be met without freedom (prisoner/slave)

B. Psychological (Is my personal identity acceptable?)
1. To like myself (Do I like who I am?)
a. My status
i. personal
ii. professional
b. My plans to manage my status (Do I like where Im going in life?)

2. For others to like me
a. My status (Do others like my identity as it is now?)
i. personal
ii. professional
b. My actions to manage my status (Do others like the direction my life is headed in?)


II. If not, who do I decide which need is most important / to be done first?
A. Character traits
1. Nature - what behavior is innate (who was I at birth or what cant I change about myself)
2. Nurture - what behavior has been shaped (adaptive response to physical or mental environmental changes over time)

B. Physical changes
1. Environment = danger?
2. Environment = incorrect for activity?
3. Environment = incorrect for schedule?

C. Social changes
1. Direct personal contact (NPC or Player)
2. Indirect social contact (Video, audio, or written information)
3. Internal emotional change (conscious change, not adaptive change like traits)


III. How do I return needs to an acceptable state?
A. Where do I do it?
B. What is needed to do it?
C. When am I to do it?
D. How do I do it?
E. Whom do I interact with to do it?

There are a bazillion crux-points in that outline that could be chosen to set off all kinds of quests, change faction, develop character arc...etc.

We're working on adding this to an online game so that the changing actions of the players affect the NPCs who in turn change their needs and quests.

Share this post


Link to post
Share on other sites
Quote:
Original post by Iron Chef Carnage


So if you're going with this fancy heuristic behavior deal, make sure I can ask the barber, "Hey, barber! Where'd the blacksmith go?" and have him say, "He's at the wharf, catching crabs!"


I think this brings up an important point. If the NPCs get to live like real people, then the player should get that option, too.

With scripted NPCs that live just to serve the player and game experience, the player just needs to know where they hang out and bother them. However, if the NPC can DO things, then the player needs a way of finding out that sort of informatino. There needs to be a strong social engine in the game. Otherwise, the player could just get frustrated in feeling that theyre the only one in the game who cant ask specific questions to help his quest. Basically, youd be making the player the dumbest character in the game by forcing him to figure out information the hard way (by searching and searching for NPCs and quest objectives).

Share this post


Link to post
Share on other sites
I think schedules were originally introduced in Ultima V, 1988. They have been missing from many modern games though, which is a pity, as they definetly make NPCs and the world more plausible. I don't mind to find the shop closed at midnight, I'll just find a bed and try again in the morning. Or if the villager I'm supposed to have a chat with isn't at his plantations, I'll try the pub or have a peak in his house. As long as the schedules are logical and something the player can figure out, they are a very good addition IMO. You can also add some interesting content with them. Have a NPC who is a sleepwalker, or allow the player to follow the npc to find out something interesting.

It's also sad how few NPCs seem to travel between locations. I guess the roaming monsters could have something to do with that though. Still I'd like to just once meet a similar adventuring party between locations or deep inside a dungeon or something. Or see a ship slowly moving along the coastline and arrive to the docks. Or witness an army patrol marching on the road.

Share this post


Link to post
Share on other sites
The potential pitfalls of such a dynamic system are quite numerous. Done perfectly right, such a system is only going to appeal to the minority of hardcore roleplayers. If it's not done right, it'll hamper the gameplay for everyone. That's just the risk vs reward aspect.

One step over on the same side of this coin, is the ammount of effort required to get it done right. This is by no means a trivial endeavor, and never will be. Many developers just aren't willing to invest the effort. An NPC that just stands behind his counter is far less likely to just accidently disappear. An NPC with a more dynamic schedule (nevermind one a schedule that completely AI controlled) is far more likely to unintentionally disappear for some obscure reason. Anyone who codes should know how tough it can be to get systems of this nature working perfectly. It's not just a matter of finding that NPC at his home, the local pub, or the local brothel (if he's that kind of fella). It's the possibility that somewhere along the line the code hits a snag and that NPC disappears completely.

Games are a matter of balance in more than one way. They need to balance realism with gameplay and fun, they need to balance features with stability, and they need to balance the developers available time and resources with what the majority vs. minority of their potential playerbase wants. Maximizing potential revenues typically means foregoing any major features that only cater to the minority.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!