See the answers of TomĂĄĹĄ âVegetaâ Plch from your questions now here:
There are many. The most fun stuff is when NPCâs start acting up, like orbiting other NPCs, playing silly animations or some physics acting poorly. One time the horse, when it hit water after death, flew away. Or the sheep drowning in a lake one by one.
It depends on the technical designers and how many they can script. From an AI standpoint, there is no limit
[quote=âkaiman, post:31, topic:29619â]
Even after nearly 25 years, Ultima VII is still my reference in open world NPC behaviour. Why is it that modern games constantly fail to achieve this level in simulating a living and breathing world (Dwarf Fortress aside)? Will KC:D do any better?[/quote]
To be honest, I never played the Ultima series, so I cannot put that reference in perspective. The problem in simulating a believable world is imho, the âUncanny valleyâ problem. The graphics get so real that we naturally are more and more frustrated by the little indifferenceâs from real life behaviors. There is also the problem with an exponential growth of the possibilities when new stuff, NPC capabilities, etc are introduced. Lastly, the issue is computational power. More and more complex stuff requires a lot of computational power and the problems tend to explode (in a mathematical sense).
Why is KC:D better? We try to attempt a different approach to various stuff other games either did not do or did not manage to complete. We try to mimic various stuff that is present in our minds about our own thinking (humans thinking about thinking humans ). There are many novel things we came up with. You can read some of it up even in scientific articles we published. Anyhow, the problem with an open world is the actual contrast with it being a game and being a fun game.
As for being better, it really depends on what you compare it to. Commonly, AI in a shooter game is different from an open world AI.
Grey Knights, DeathWatch, Soul Drinkers, Imperial Fists
About the, âFar Away NPCâ â our LOD system is rather complicated. Technical details may be boring, but there are two plains of LOD â a soft and a hard LOD. A soft LOD is script based, where our decision-making system tells the scripter the NPC is being LODâed thus he can change the structure of its behavior. The Hard LOD is at the level of the actual low level execution which is changed in respect to the LOD (NPCs stop playing animations and only execute effects, movement is more âteleport likeâ etc). But all in all, the NPC have all their abilities, they only âshut them down if not neededâ.
NPCs are a complicated thing; they are actually very generic on the highest level of their decision making. The NPC fetches information from its relation to places and stuff in the world and from its schedule (which is a combination of a preset schedule and an emergent patching system). The NPCs can request a behavior injection from the environment, items, quests (intellect displacement) etc. which make it smarter, add abilities etc. The NPC knows only generic stuff and âgrowsâ its intellect contextually based on its schedule.
Affiliations are based on our Faction system. But an NPC is in respect to its behavior made up from the relations to the environment (itâs a graph-based database), objects, quests etc. So a script can turn an NPC from something to something else, simply by changing its respective relations (e.g. a farmer goes to work to a field, removing the relation to the field and adding a relation to the guardhouse can turn him into a soldier).
Crimes are mainly the domain of the player, they are a fairly complex system, but in our world, the player is an NPC, thus NPCs may commit crimes. But to keep the world consistent, everybody behaves so it does not mess up the game.
We have no children, but a child NPC is not reduced, it just deals with different stuff (has a different schedule). For example, an animal has the same âlogicalâ structure like a human, but also has a different job and different reactions.
I tend to sleep a lot, and when I was young, DBZ was very popular. I bear a lot of commonalities with that character (hair included).
There are many difficult things we are/were working on. One of the craziest things I did was a graph-query-language put into a tree-like structure. Another was the AI Action System that runs the actions that the NPCs do.
[quote=âWaldkauz, post:35, topic:29619â]
The AI programming seems like to be pure math, making it logical. [âŚ] Can we expect illogical decisions in the
game?[/quote]
AI is a broad field of science. There is the pure math crazy AI and then there is the soft AI for games (for example: believable, behavioral-simulation research I do). Math is only a language; logic is actually a philosophy marked up in weird symbols.
Behavioral psychology is a very novel field of science. And again â itâs humans thinking about thinking humans. Making a decision you cannot explain by reasoning does not mean it was not contextually correct. And yes, our NPCs do a lot of nonsensical decisions.
The basis of the language is Behavior Tree inspired. But some concepts are different. Itâs a combination of Behavior Trees and Finite State Machines (at the node level). Every NPC receives a tree template and can extend it on the run from the environment. I havenât studied the UE4âs implementation in detail, but there are some nice things that we can do in our BTs. But essentially, itâs a language like any other. What Iâm proud of is the idea of putting behaviors into the environment (inspired by Sims) where a NPC can get their BTs extended based on the present context either from areas, objects, quests, whatever we âmake smartâ.
Sure, all my academic work is in English
If you want some intro into the basic ideas of our system, try to get hold of my master thesis, should be somewhere online.
The NPCs work differently from processing âparametersâ. So there is always something the NPC can do. It always can rely on the âsmart worldâ to get its âWTF happenedâ behavior.
Loosing sheep is actually not a logical exception; it is a situation that can be reasoned with. For example, the shepherd has a relation to every sheep in its herd. If they get home and he misses one, he goes and searches for it. If he is asleep and all his sheep are gone, he will go look for them.
We try to keep the behavior of NPCs consistent with actual reasoning of humans. But in most cases we avoid concurrency in NPC goals. If a goal may be concurrent, we have to think about how to solve it on a local level. If you imagine it, you solve your own âconcurrent goalsâ from your local perspective or do only a very shallow reasoning about âwho does who in Beverly Hillsâ. The player is only another NPC from our standpoint. If he does something, the world reacts, but it reacts in its well-structured way. But yes, the game design and the overall structure gets rather âexplosiveâ if there are any conflicts. But you prepare your NPCs for that and they deal with it.
Radiant AI System got trashed because it was more in the planning area of AI. They did a goal-based system where they wanted to satisfy the needs of an NPC by combining various small plans. The issue is that if you have a computationally-complex problem, itâs rather unpredictable what it may come up with.
We go into a more structured way, where NPCs can have a high level planning system, but they rely on a structured view of the world. So we are very local in context, thus it can be more easily managed. The problem with âglobal problem solvingâ (i.e. Radiant) is that it often gets unmanageable. We are more about putting bits and pieces of knowledge together from the world, where the âlocal knowledgeâ is better than âglobal knowledgeâ.
But that is for a much longer talk. I would love to talk to guys at Bethesda about their AI systemsâŚmaybe someday.
A little. I tried to learn it but never had the time to get serious about it. I can make up basic stuff, if youâd like.