So, I came up with a concept for a game I wanted to include realistic crowds and AI actions in. I'm all consept, design and story, but my knowledge is kinda limited on the tech stuff; mostly programming. What kind of technology would it take to make this happen:
interactive crowds that you can talk to and recruit for missions through narrative dialogue choices which effect the outcome of the interaction.
realistic imperfections to AI behavior to make crowds seem more believable. Stuff like stumbling, ext.
Areas to investigate :
Agent Programming - program entities that have mechanics/operation needed for multiple objects to interact in a simulation
Planners - how objects have goals defined, make decisions and find a solution for a situation
Cognition - how a simulation situation can be interpretted (generalized so logic can generate conclusions)
Artificial Intelligence (a general subject that includes all of the above)
Negotiation Theory - if you ask an NPC to do something for you they would want to know whats in it for them
Hierarchical Templating - creating programming logic that can be reused and that breaks problems down from generalities to specifics
Uncertainty- how to make decisions when all the information is not ( or cannot be) available
Social Organization - individuals are much define by their relations to others and the roles they are assigned or accept
LOD (level of detail) Simulation - simplifying how object behave in the game, but increasing the detail as the player get closer
Simulating human behavior is quite complex because individuals have many differences that influence their behaviors
They have different tendencies and preferences, different skills and tools they can make use of, (including knowledge). This leads them to make different decisions in their own specific enviroment/situation with priorities of their own and those decisions are then solved with possibly different methods of solution.
Even in a limited situational space (of your game) there will be large numbers of factors/entities that will make it a complex environment.
To act realistically (or close enough to it) there has to be sufficient logic in the object's AI to handle all the factors and how they interrelate.
The usual difficulty with AI programming is the huge pile of logic that has to largely be hand created to handle that (world) complexity. It helps that many different objects will 'handle' things in similar ways and so can share alot of programming 'solutions' (but with different specific factors values adjusting how/what decision are made, and which solutions are available/applicable to solve the problems). Even with this 'templating' the total code can be enormous even for fairly simple environments.
You walk up to a NPC in the street and ask them to help you with a mission. That NPC need to figure (estimate/evaluate )what that mission involves, if it has any skills that apply, what the risk/rewards are to cooperating with you, does it have the opportunity to take part (compared to the rest of its 'life' in your simulation -- its priorities for other things...)
Think about how YOU would make the decisions if you were that NPC within the simplified world it lives in. Lots of evaluations (including seeking more info if insufficient info was given) and sub decisions. Consideration of all the factors that are required to make a decision.
Of course the complexity is dependant on your game mechanics - what the player and NPCs can do - what actions they can take upon what game objects, what information they are provided with.
If the NPC interacts (negotiates?) with the Player via some dialog, questions and possible answers have to be composed to fit the situation of the mission, being adjusted for the mission's specific details.
The reverse of this is for a Mission-Giver to offer a mission to a player who then could asks for more info or whats involved and what the player reward is etc...
This aspect of the game is just one component and the next is having the NPC now take part in the mission and act 'intelligently' (making decisions to carry out its actions in relation to the player and the game situation - what is it allowed to do and what is best to do). Similar evaluation is done for the CURRENT situation and picking of the right goals and then solutions (and now carrying them out -- versus just calculating them). This part can be more difficult if the NPC has to communicate with the player or other NPCs to coordinate actions and for strategies/tactics that carry across a period of time.