• Advertisement
Sign in to follow this  

What kind of tech would something like this take?

This topic is 1984 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

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.






Share this post


Link to post
Share on other sites
Advertisement
I'm not entirely sure what you're asking for here. There's a huge variety of technologies that could go into making something like that, most of which would (I'm guessing from your own statement) be totally unfamiliar to you by name.

Share this post


Link to post
Share on other sites
Making agents in crowds have slight differences is often as simple as slight parameterized randomization of things to "fuzzy them up" a bit. However, having complete dynamic conversational ability is a tough nut to crack. As ApochPiQ said, there are a lot of ways of doing a lot of things in your seemingly simple question.

Share this post


Link to post
Share on other sites
Hmm. Can I have an example of some techs that can do that? I really wanna know more. Watching how beautifully the AI played out in the last of us gameplay, I was really interested in what type of tech they used in their development to make the AI so dynamic.

Share this post


Link to post
Share on other sites
What specifically is "that"? Again, to repeat Dave, a random number generator can be plenty to make crowds seem more diverse; but conversations and such can range from trivial to extraordinarily complex.

Perhaps a better way to approach this would be to ask about specific features you want to see. As it stands, it's like asking "how did Renaissance artists create such awesome art?" - the answers will be varied, complex, and probably (if you want the whole truth) far more detailed and academic than what you're actually looking for ;-)

Share this post


Link to post
Share on other sites
I'm also not sure what you mean, but I don't know any "technology" that will make this for you (if with tech you mean libraries, programs or prebuilt stuff).

Basically you have to create a project (a program) in a specific programming language (within a particular development interface like "Visual Studio" for example). It will control the logic of your charactes (also created in there by yourself). You create the visible models in a (for example) 3D / 2D program to later import them in your project & control them logically.

I guess you have to program all the possible actions & as the guys here said you may randomize & trigger them, or trigger them according to decisions on what is happening.

For example, develop a "run" action (an animation made in a 3D/2D animation software; the actual movement: vectorial translation of the character in a programming language, etc), then a "walk", a "stand", etc. Get a random number & according to it, make one character walk, another, run & so on.


For dialogs you should check about "decision trees". For different states & activities you may like to read about "UML State Machine", "UML Activity diagrams": http://en.wikipedia....L_state_machine
http://en.wikipedia....ctivity_diagram

There's a looooot to implement & it's definately not a matter of 2 or 3 weeks.

For development tools I like to use C# and XNA. I also like to build the AI by myself, always with the help of the pros that have previously answered you here.
Hope I gave u some light.

Cheers,
Synth Edited by Synthesizer

Share this post


Link to post
Share on other sites

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. Edited by wodinoneeye

Share this post


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

  • Advertisement