Advertisement

What kind of tech would something like this take?

Started by August 12, 2012 06:45 PM
5 comments, last by wodinoneeye 12 years, 3 months ago
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.






Art: The expression or application of human creative skill and imagination, typically in a visual form; producing works to be appreciated primarily for their beauty or emotional power.

...If games aren't that, then I don't know what is ¬_¬
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.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Advertisement
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.

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

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.
Art: The expression or application of human creative skill and imagination, typically in a visual form; producing works to be appreciated primarily for their beauty or emotional power.

...If games aren't that, then I don't know what is ¬_¬
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 ;-)

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

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
Advertisement

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.
--------------------------------------------[size="1"]Ratings are Opinion, not Fact

This topic is closed to new replies.

Advertisement