"Thinking" AI

Post » Thu Sep 02, 2010 11:50 pm

You just don't get it, do you?
...

"All AI behaviors are there, ambush, eat, flee, sleep, travel... I don't want to see increased behaviors,"
I don't get it. I don't want to see pee behavior, I said that. But I won't complain about it. ;)

That hunger<30, it is a timer. There is nothing sentient about it. Enough time passes, hungersatiated meter decrease. This triggers the behavior that is already there, EAT. This way, you can steal an NPC's food and he will stay hungry and will go outside of his "eat at 5 PM" scripted behavior. If you change food for bow, he will search for bow instead. In his inventory, nearby locations, shops or steal it. Now they can even craft it. They can practice their skills, instead of being told to use a practice item at 3 PM for one hour. Bind usable items to the skill instead of a scheduled manual entry, make unpracticed skills decrease in time NPC will SEEM to decide this on their own. Eat at 5 PM doesn't satisfy my or anyone's SEEM need. These things are no brainer, not supercomputer AI properties.

You're blowing it out of proportions, always bringing Strong AI. They can be weak AI but that's better than any scripted event. This AI programmer/designer job, it exists you know.
User avatar
Deon Knight
 
Posts: 3363
Joined: Thu Sep 13, 2007 1:44 am

Post » Thu Sep 02, 2010 7:04 pm

"All AI behaviors are there, ambush, eat, flee, sleep, travel... I don't want to see increased behaviors,"
I don't get it. I don't want to see pee behavior, I said that. But I won't complain about it. ;)

That hunger<30, it is a timer.


A timer? Isn't that a schedule, a scripted event? What is "30"? What is the difference between "eat at 8, 12, 5" vs "eat every 8 hours"?
User avatar
Max Van Morrison
 
Posts: 3503
Joined: Sat Jul 07, 2007 4:48 pm

Post » Thu Sep 02, 2010 7:01 pm

A timer? Isn't that a schedule? What is "30"? What is the difference between "eat at 5" vs "eat every 8 hours"?

It starts at a non-scheduled time(why? keep reading), the moment of eating. This covers him for a while, 8 hours you say. (you can call it energy and change regeneration rates according to activities, not necessary though). When player interrupts this, NPC will stay hungry and his next eating moment will be outside of a scheduled time. Emergent behavior. When all systems become interconnected by simple reasoning... Well, no one can imagine what will happen. This way you don't have to script every and any behavior, system can cover the NPC without the bow so he won't stay there for 1 hour at 3 PM.

PS. The better explanations is. One is scheduled by a human in an editor in a non-intelligent way(eat at 5 PM), the other is scheduled by the NPC itself. The difference is small, but changes everything.
User avatar
Calum Campbell
 
Posts: 3574
Joined: Tue Jul 10, 2007 7:55 am

Post » Thu Sep 02, 2010 11:04 pm

It starts at a non-scheduled time(why? keep reading), the moment of eating. This covers him for a while, 8 hours you say. (you can call it energy and change regeneration rates according to activities, not necessary though). When player interrupts this, NPC will stay hungry and his next eating moment will be outside of a scheduled time. Emergent behavior. When all systems become interconnected by simple reasoning... Well, no one can imagine what will happen. This way you don't have to script every and any behavior, system can cover the NPC without the bow so he won't stay there for 1 hour at 3 PM.

PS. The better explanations is. One is scheduled by a human in an editor in a non-intelligent way(eat at 5 PM), the other is scheduled by the NPC itself. The difference is small, but changes everything.


I agree with you, and to my understanding this was their intentions with "radiant AI". Hope they got it right this time around.

(edit: which I doubt, perhaps for the next-generation)
User avatar
emily grieve
 
Posts: 3408
Joined: Thu Jun 22, 2006 11:55 pm

Post » Thu Sep 02, 2010 10:24 pm

It starts at a non-scheduled time(why? keep reading), the moment of eating. This covers him for a while, 8 hours you say. (you can call it energy and change regeneration rates according to activities, not necessary though). When player interrupts this, NPC will stay hungry and his next eating moment will be outside of a scheduled time. Emergent behavior.



"Emergent" behavior? Nope. Scripted. You can schedule "every 8 hours", or "every 8 hours after X where X = eating)". Regardless, it is scripted.

Here, your reasoning is that, if you interrupt the scheduled behavior, the timer will not start at the exact same time, so eventually, there would be a small shift on the actual time the behavior triggers, so the outcome will be that the NPC would eat at different times. And you think that this is "emergent" behavior, when in reality it is 100% scripted.

Further, you fail to realize that scheduled behavioral packages can have the same effect.
Even if you have time-of-day schedules, like "eat at 5PM" , not every NPC will eat at 5. Why not? Because when the "eat at 5pm" behavior package kicks in, not every NPC is going to have food right next to them and not every NPC is going to be at the exact same location. AT 5 PM, they are going to start looking for food. So, one can have food in his inventory, another will have to go to his house to get food, another will have to go to an inn and buy the food, etc. and that is going to stagger the moment of performing the eating animation across NPCs.

The idea of the scheduled package is that it can be used for a great number of ancillary NPCs, the ones who are there just as a backdrop, which make sense on many levels, but most importantly, develop time and hardware resources on the players' side. Go look in the CS and see how many behavior packages are there, then multiply that number by the number of NPCs, and you tell me how many packages are those. And remember , those are coded behavior packages, not just one or 2 commands, but decision trees with a bunch of if and case and for and while statements, which in turn trigger specific animations, scripts, maybe other behaviors, etc... hopefully this will help you understand the magnitude of coding "A.I." for every NPC.

In any case, regardless of what concept you have in your mind of what "A.I." is, it is really a program that needs to be coded with every behavior (and its corresponding animations and dialog) you want a 3d model to display in a video game, being hunger, rage, sleeping, ambush, running, combat, etc., and triggers need to be specified to start/end the behavior, regardless of how random the behavior may look.
User avatar
victoria gillis
 
Posts: 3329
Joined: Wed Jan 10, 2007 7:50 pm

Post » Fri Sep 03, 2010 9:09 am

Guys Npcs don't move when the player is not in range or not in the vicinity.. So this Npc doing things behind the player is quite mute

They do, in Oblivion they moved when the player wasn't around, doing their every day routine. no reason for it not being in Skyrim.
User avatar
Pumpkin
 
Posts: 3440
Joined: Sun Jun 25, 2006 10:23 am

Post » Fri Sep 03, 2010 5:41 am

"Emergent" behavior? Nope. Scripted. You can schedule "every 8 hours", or "every 8 hours after X where X = eating)". Regardless, it is scripted.

Here, your reasoning is that, if you interrupt the scheduled behavior, the timer will not start at the exact same time, so eventually, there would be a small shift on the actual time the behavior triggers, so the outcome will be that the NPC would eat at different times. And you think that this is "emergent" behavior, when in reality it is 100% scripted.

Further, you fail to realize that scheduled behavioral packages can have the same effect.
Even if you have time-of-day schedules, like "eat at 5PM" , not every NPC will eat at 5. Why not? Because when the "eat at 5pm" behavior package kicks in, not every NPC is going to have food right next to them and not every NPC is going to be at the exact same location. AT 5 PM, they are going to start looking for food. So, one can have food in his inventory, another will have to go to his house to get food, another will have to go to an inn and buy the food, etc. and that is going to stagger the moment of performing the eating animation across NPCs.

Emergent gameplay
http://en.wikipedia.org/wiki/Emergent_gameplay

Scripted Events
http://www.giantbomb.com/scripted-events/92-2039/

First, scripting as in "scripted events" has a different meaning than that is used in programming.

Second it is emergent, if developers didn't expect it.
http://www.youtube.com/watch?v=X-zk0eodQHI

Third, schedules as in their original way can only let these things happen accidentally in rare occasions and when that happens, it won't make sense.

The idea of the scheduled package is that it can be used for a great number of ancillary NPCs, the ones who are there just as a backdrop, which make sense on many levels, but most importantly, develop time and hardware resources on the players' side. Go look in the CS and see how many behavior packages are there, then multiply that number by the number of NPCs, and you tell me how many packages are those. And remember , those are coded behavior packages, not just one or 2 commands, but decision trees with a bunch of if and case and for and while statements, which in turn trigger specific animations, scripts, maybe other behaviors, etc... hopefully this will help you understand the magnitude of coding "A.I." for every NPC.

In any case, regardless of what concept you have in your mind of what "A.I." is, it is really a program that needs to be coded with every behavior (and its corresponding animations and dialog) you want a 3d model to display in a video game, being hunger, rage, sleeping, ambush, running, combat, etc., and triggers need to be specified to start/end the behavior, regardless of how random the behavior may look.

Scheduled packages are already running on almost every NPC. There are ways to omit them or stop monitoring them based on a priority system(which is used on most well designed AI systems). Also I can see the development time spent on setting schedules manually for every single NPC one by one. When you have an AI system, it will work for every NPC. Only variables will be different for different NPCs. They don't program them one by one. There are no hundreds of EAT packages. There is only one. I advocate simple changes for emergent gameplay.

Rather, there should be a hunger(or energy) variable that slowly increase and after a set threshold triggers eat AI package. So if player can make an NPC delay its launch routine, player can make them get hungry midday allowing opportunities for thieves(clashing the absence of guards with owner's).

User avatar
WYatt REed
 
Posts: 3409
Joined: Mon Jun 18, 2007 3:06 pm

Post » Fri Sep 03, 2010 4:16 am

Why do people do this? Why do people just say COMPLETELY UNTRUE THINGS about Oblivion?

People would pickpocket other people in Oblivion ALL THE TIME. I can't tell you how many times I've seen someone slain on the streets because they were caught pickpocketing. I can't tell you how many times I saw someone pickpocket someone else and get away with it.

Saying Oblivion's AI is bland and lifeless is just ridiculous. It was probably the most advanced AI in a video game at the time. What other video game do people eat, sleep, go shopping, talk to other NPCs, practice archery, practice magic, read, make potions, react to weather, and do tons of other things all just part of their daily schedule?

Give Oblivion some credit, for the love of Azura.

Well I admire thats adding schedules is somewhere progress for vanilla TES, but such schedules was introduced even in Ultima 4 twenty years before of Oblivion, not schedules make Radiant AI more unique, actions driven by Needs and controlled by Disposition, Aggression, Confidence, Responsibility and Energy Level and even intelligent attribute make it, but such interesting feature was not used on it full potential, as well there is problems in detections and reactions for AI, also schedules sometimes reset or start in not proper order if NPC was scheduled to do something at thats time but by some reason late to place where schedule must start to work.
What can be done
Better detection is must, NPC must be more aware about surrounding and thats still is not implemented well (according to demo NPC still not aware about killed buddy in few steps around)
Such detection was in Thief in 1998 and in Arx Fatalis in 2001

Less lethal or aggressive solutions for deciding with unresponsive NPC who violate the law bashing them and putting into jail for time of reset will be better then killing them
Thats will reduce city riots as well will protect more NPC from stupid deaths.

As well nice to see some more interesting improvements not only bugfixes something similar to
NPC with jobs schedules from Oblivion and Animated Morrowind was done I believe
http://www.youtube.com/watch?v=YUa-71Mp7ko
http://www.youtube.com/watch?v=6friXBiBhVs
http://www.youtube.com/watch?v=tBQ-Xrzd7I0
http://www.youtube.com/watch?v=0FG1bgM7gA8

And

Put it in its Place - Enhanced Grabbing
http://www.youtube.com/watch?v=1zl6rjqanOY
http://www.youtube.com/watch?v=P1hdZLBccLg
http://www.youtube.com/watch?v=D1CySGsoQy8

Duke Patricks - Near Miss Magic And Arrows Alert The Target
http://www.tesnexus.com/downloads/file.php?id=16150
Duke Patricks Fresh Kills Now Alert The NPCs
http://www.tesnexus.com/downloads/file.php?id=18065
Reneers Guard Overhaul
http://www.tesnexus.com/downloads/file.php?id=5977
NO PSYCHIC GUARDS 12
http://www.tesnexus.com/downloads/file.php?id=11911
Phitts Phighting Phixes
http://www.tesnexus.com/downloads/file.php?id=32651
User avatar
Melissa De Thomasis
 
Posts: 3412
Joined: Tue Feb 27, 2007 6:52 pm

Post » Thu Sep 02, 2010 8:04 pm

I have to tell you..
I have no idea why I got svckered into this conversation with you again... fool me twice, shame on me.
You got your wikipedia and giantbomb (whatever that is) and youtube links.. I got working experience coding in C, Java, perl, and shell that expands through 3 decades.
I am sure what you say makes sense in your head... but hey...

last thing I will say: if something happens when a program runs that the coder of the program wasn't expecting to happen, in layman's terms, that is not good.


Emergent gameplay
http://en.wikipedia.org/wiki/Emergent_gameplay

Scripted Events
http://www.giantbomb.com/scripted-events/92-2039/

First, scripting as in "scripted events" has a different meaning than that is used in programming.

Second it is emergent, if developers didn't expect it.
http://www.youtube.com/watch?v=X-zk0eodQHI

Third, schedules as in their original way can only let these things happen accidentally in rare occasions and when that happens, it won't make sense.


Scheduled packages are already running on almost every NPC. There are ways to omit them or stop monitoring them based on a priority system(which is used on most well designed AI systems). Also I can see the development time spent on setting schedules manually for every single NPC one by one. When you have an AI system, it will work for every NPC. Only variables will be different for different NPCs. They don't program them one by one. There are no hundreds of EAT packages. There is only one. I advocate simple changes for emergent gameplay.

User avatar
Thema
 
Posts: 3461
Joined: Thu Sep 21, 2006 2:36 am

Post » Thu Sep 02, 2010 9:11 pm

I have to tell you..
I have no idea why I got svckered into this conversation with you again... fool me twice, shame on me.
You got your wikipedia and giantbomb (whatever that is) and youtube links.. I got working experience coding in C, Java, perl, and shell that expands through 3 decades.
I am sure what you say makes sense in your head... but hey...

last thing I will say: if something happens when a program runs that the coder of the program wasn't expecting to happen, in layman's terms, that is not good.

It is just an opinion. Don't need to get worked up about it. I admire your experience in your profession. You should try learning about AI programming(it exists damn it! :P).

I wouldn't call it AI, if it doesn't do anything unexpected. AI design is creating techniques that allow these artificial systems to respond to unexpected situations. Don't think about unexpected codes, whoa what is it? Skynet! We are talking about game AI here. As a programmer maybe you can contribute about what can be done to make this game's AI better instead of advocating scripts(as in scripted events which any gamer should be familiar so I wouldn't have to post links, not as in scripting/coding/programming) to maximize profits. ;)

PS. You might be a good programmer but what you do is being captain obvious. In an artificial intelligence conversation saying "AI is abstract, it is not real. It is for making it seem intelligent!!" is being captain obvious and an insult for everyone's intelligence here. I almost thought you were flame baiting first. :confused:
PPS. Ignore my idea, my posts even me but contribute about what can be done to improve AI. It would be more constructive.
PPPS. I have no idea how we started on wrong foot here. Peace. :cookie:
User avatar
Claire Jackson
 
Posts: 3422
Joined: Thu Jul 20, 2006 11:38 pm

Post » Thu Sep 02, 2010 10:48 pm

It is just an opinion. Don't need to get worked up about it. I admire your experience in your profession. You should try learning about AI programming(it exists damn it! :P).

I wouldn't call it AI, if it doesn't do anything unexpected. AI design is creating techniques that allow these artificial systems to respond to unexpected situations. Don't think about unexpected codes, whoa what is it? Skynet! We are talking about game AI here. As a programmer maybe you can contribute about what can be done to make this game's AI better instead of advocating scripts(as in scripted events which any gamer should be familiar so I wouldn't have to post links, not as in scripting/coding/programming) to maximize profits. ;)

PS. You might be a good programmer but what you do is being captain obvious. In an artificial intelligence conversation saying "AI is abstract, it is not real. It is for making it seem intelligent!!" is being captain obvious and an insult for everyone's intelligence here. I almost thought you were flame baiting first. :confused:



You know? I am not saying this to be condescending or anything, seriously, I am at fault here for basically not specifying what I mean. There are certain terms that have certain meaning to me and within my working environment, but that may have other meanings outside what I do, or my environment, or the perception of them is different.

And yes, I must admit, I do tend to get on my high horse when talking about things like coding. So I am sorry if at any time it seemed I was trying to insult anyone.

I guess the misunderstanding here is the use of the word "scripting" ... to me, whether is called scripting, or coding, it is all the same thing: it basically means a series of instructions that you execute in a certain fashion to achieve a desired result, and this desired result could very well be randomness, the effect of making and NPC seem to make a decision, etc.

However, even within my work environment, the use of the word "script" can be taken to mean different things depending on the context of the conversation: it could be that we are making the distinction between a set of code that gets compiled into a binary versus code that is on a plain text file (which is most commonly referred as a "script"), or that we are talking about a detailed step-by-step procedure, or a utility comprised of a series of scripts and maybe even binaries, or the logic within the instructions...

There is also the matter of thinking in terms of coding instructions to achieve a result, whether it is a specific routine, or something that does one thing one time, another thing another time, or at different times. The best example I can give you, is the example I always give people at work when I hit a wall :) . I tell them:
"Take this dollar, go to go to the vending machine in the breakroom, get yourself a soda, and come back, then describe what you just did". Most people just respond "I went to get a soda"... some repeat verbaitm what I told them... some try to get smart, and start with " I got up, opened the door, walked to the breakroom, put the money in the machine, retrieve my soda, walked back to the room, sat down'.
Now, what is my version of the event, if I were coding it or scripting it,or let's just say creating the instructions for the event?
You handed me a dollar. I had to recognize you were giving me a dollar. I had to decide which arm I extended to reach for the dollar. I grabbed the dollar. Once in my grasp, I had to decide whether to put the dollar in one of my pockets, lower my arm, or just keep my arm static at the same position as the moment I grabbed the dollar. If I decide to put the dollar in a pocket, I need to decide which pocket. Once I make sure the dollar is in my pocket, I need to recognize I need to get up off my chair. I have to figure out if I am sitting with my legs under the table, or not. If I am not, lean forward and push with both legs to get up. If under the table, push first with my legs away from the table; do I hit a wall behind me?... well, by now you get the idea. And we are not even close to reaching the door, never mind reaching the soda machine, then figuring out if I had enough money, deciding where to put the money (coin slot or bill slot), which soda to choose, etc etc etc

And that right there, in a nutshell, if you can all that diatribe a nutshell, is how I think when I talk "scripting" or 'coding instructions". And I just can't help it :) And I am sure Beth devs go through something very similar when it comes to coding "A.I." (I'm still putting it in quotation marks :) )

And again, I really didn't mean to flame, or insult.. I just may get a little bit passionate about coding.. after all, I am a professional geek, that's what I do :)
User avatar
Trent Theriot
 
Posts: 3395
Joined: Sat Oct 13, 2007 3:37 am

Post » Fri Sep 03, 2010 12:22 am

You know? I am not saying this to be condescending or anything, seriously, I am at fault here for basically not specifying what I mean. There are certain terms that have certain meaning to me and within my working environment, but that may have other meanings outside what I do, or my environment, or the perception of them is different.

And yes, I must admit, I do tend to get on my high horse when talking about things like coding. So I am sorry if at any time it seemed I was trying to insult anyone.
...

And that right there, in a nutshell, if you can all that diatribe a nutshell, is how I think when I talk "scripting" or 'coding instructions". And I just can't help it :) And I am sure Beth devs go through something very similar when it comes to coding "A.I." (I'm still putting it in quotation marks :) )

And again, I really didn't mean to flame, or insult.. I just may get a little bit passionate about coding.. after all, I am a professional geek, that's what I do :)

Half the blame is on me. I actually understood you're a programmer from the start and in what context you're using scripting. I posted about "scripted events" three times but you didn't get it. :P I understand your anology and how it applies program flow/logic, I heard it many times from my programmer friends. Game designers would approach the subject differently though, by simplifying it by any means and systematizing things but your programming logic still applies to actual programming of it.

I certainly wouldn't want to be in their shoes. It is too much work for a student like me. And I appreciate how flexible their system is.

http://www.youtube.com/watch?v=X-zk0eodQHI

It is a coincidence(even a mistake) that two use item packages(rake, chair) scheduled to the same moment. This result wasn't expected. Not an example of AI but how flexible the animation system is and how unexpected things can occur in the system. It is achieved with zero reasoning. Think what can happen if there was an interior game logic(like a simple dynamic hunger variable) behind their actions instead of exterior static schedules(or static variables).
User avatar
Rich O'Brien
 
Posts: 3381
Joined: Thu Jun 14, 2007 3:53 am

Post » Fri Sep 03, 2010 9:45 am

http://www.youtube.com/watch?v=vV2HunTUcyE&feature=related

http://www.youtube.com/watch?v=X-zk0eodQHI


http://www.youtube.com/watch?v=6KN7cKO8-P0

crixus just gave 3 simple examples, of games with if not better AI without the stupidity that happens in Oblivion
:spotted owl:



I loled so hard at the lsat one, the way they slam into the table!
User avatar
Rebekah Rebekah Nicole
 
Posts: 3477
Joined: Fri Oct 13, 2006 8:47 pm

Post » Fri Sep 03, 2010 9:42 am

I loled so hard at the lsat one, the way they slam into the table!

That video is super funny, essentials are super annoying.
User avatar
Franko AlVarado
 
Posts: 3473
Joined: Sun Nov 18, 2007 7:49 pm

Post » Fri Sep 03, 2010 8:04 am

.........

Oh please! R2D2 was Artificially Intelligent remember?
The gaping hole in your argument is combat AI. The position, tactics and skill of the player etc can’t always be predicted, especially when playing against AI bots offline on a multiplayer game. It’s clumsy, I know that as an observer, however it does show that the AI CAN react to an unexpected situation by itself using existing code to find the best solution, despite combat AI not being able to make the decision to jump in TESIV. A great oversight, I feel.

I know that what is funny is how many misconceptions you made about my post. I don't expect a life simulator. However, I have to bend a knee to your superior knowledge on this topic, so read this in the friendly nature that it is intended.

Years ago, I saw a documentary on the discovery channel about robots in Japan that were learning at the equivalent level of a 2 year old. This was at least five years ago now. They were getting their information from English speakers involved with the project, so it wasn't a mistranslation. In addition, from the lowliest bacterium to the human brain, organic creatures can exhibit a reaction to stimuli external to their own existence. I understand that the video game AI is a program, but in effect, so are a lot of the processes of the brain and nervous system, and look at what WE can do. Now don't get me wrong, I'm not expecting a video game to come out next year with an Einstein on board.

Seeing as the robots were operating in an utterly foreign environment to them, using an onboard processing power (no supercomputers involved), the technology is now at least 7 years old (allowing for production time, my rough estimate and broadcast delay) no, I DON'T see any hardware restraint NOW for a more complex AI.

You make the assumption that I stalked the archer. I did not. I observed that the archer spent the rest of the game without a bow while not needing to use the bow. The assumption that the gamer wouldn’t observe that is mentally deficient by the developers; I wouldn’t assume that they made that assumption. Likewise, the next logical goal to make on realising you don’t have a bow IS to find your old one or get a new one. How you realise that goal is just an intermediary, which is quite frankly irrelevant to this discussion and overly pedantic. You’re complicating the issue more than it should be complicated

My expectation was that the NPC would do SOMETHING, other than follow his original instructions, while not being able to follow his original instructions because he has been rendered unable to do so. That’s just an apparently unintentional infinite loop, and that is bad programming.

That’s an idiotic response from the NPC and a lazy one from the programmer - there is no differentiation between doing that and not doing anything about the problem. As part of a quest, yes, because it would be shown through the quest that they are affected by the change from the way things should be (e.g. that mage in Leyawiin) As a random NPC who just appears to be a moron? If they have nothing to add, may as well cut them from the game.
By the same token, it could be every NPC’s response to get depressed when they are attacked and let the player attack them, like the Grey Prince did, and guess what every player would say then?

If I had the programming knowledge, using the existing game (TESIV), what would I do? I'll message it to you if you like it's long and off topic.

I agree that you can’t have an AI-bot do an unpredicted action unless they have an existing structure to do that action, which you yourself have to program and thus it’s a paradox to have them perform an action which the programmer doesn’t expect. I don’t see why they can’t be given the necessary programming to provide a structure for them to be able to achieve a goal, be given a goal which they then achieve before returning to whatever they were originally doing.
User avatar
Penny Wills
 
Posts: 3474
Joined: Wed Sep 27, 2006 6:16 pm

Post » Fri Sep 03, 2010 4:18 am

It starts at a non-scheduled time(why? keep reading), the moment of eating. This covers him for a while, 8 hours you say. (you can call it energy and change regeneration rates according to activities, not necessary though). When player interrupts this, NPC will stay hungry and his next eating moment will be outside of a scheduled time. Emergent behavior. When all systems become interconnected by simple reasoning... Well, no one can imagine what will happen. This way you don't have to script every and any behavior, system can cover the NPC without the bow so he won't stay there for 1 hour at 3 PM.

PS. The better explanations is. One is scheduled by a human in an editor in a non-intelligent way(eat at 5 PM), the other is scheduled by the NPC itself. The difference is small, but changes everything.

An NPC could also check the time and then eat if it is time to eat. A lot of people do it that way. Even when I am not particularly hungry, I may eat when it is time to eat because that is when my friends are eating and I want to join them. Also, I may eat at the most convenient time in my schedule, not because I am feeling hungry, but because it is my best opportunity and I think that I may become too fatigued later if I don't eat now. If the NPC's eating schedule is disrupted, then his hunger flag might be set, and he would snatch some food at his first free moment (unless it is almost time for his next meal).

I read somewhere that certain Skyrim predators will leave you alone if they have already eaten and you leave them alone. Unfortunately, I can't remember the source, so I can't confirm it either to you or to me.

A reason for not leaving it up to each NPC to check the time or check his hunger meter might be efficiency. It could be more efficient to check the time only once and to refer to a table to determine which NPCs have goals to be triggered at that time.
User avatar
K J S
 
Posts: 3326
Joined: Thu Apr 05, 2007 11:50 am

Previous

Return to V - Skyrim

cron