Jump to content

Recommended Posts

Posted

Can anyone fill me in a bit on modern (last three years) developments in AI, who makes the best, and where the Unreal AI engines fit in?

 

EDIT: Does anyone feel like filling me in...

"It wasn't lies. It was just... bull****"."

             -Elwood Blues

 

tarna's dead; processing... complete. Disappointed by Universe. RIP Hades/Sand/etc. Here's hoping your next alt has a harp.

Posted
*casts summon alanschu*

 

Are you sure you used the right animals?

"It wasn't lies. It was just... bull****"."

             -Elwood Blues

 

tarna's dead; processing... complete. Disappointed by Universe. RIP Hades/Sand/etc. Here's hoping your next alt has a harp.

Posted

I'm certainly no expert in artificial intelligence, and I certainly don't know who makes the "best" AI (best by what metric?), nor am I all that familiar with Unreal's AI (though I do remember thinking that the AI in the original Unreal was, well, unreal at the time), but I will offer my thoughts none-the-less.

 

 

To be perfectly frank, I can't think of anything substantial in modern AI, in terms of anything revolutionary. Unfortunately, it does not really seem to be the focus in game development at this time. It doesn't take much time to recognize that much of the focus is on the more instant and immediate visuals. By visuals I mean both graphics (as has been the case for the past 10 years), as well as (more recently) physics. It is something that is very easy to promote, as videos and screenshots provide a sufficient medium. As a result, AI has slowly taken a back seat, especially if you look at it in terms of percentage of computational power used.

 

In my limited experience, much of the AI focus in video games is done on things such as pathfinding. I suspect this is both because pathfinding errors tend to be immersion killers (not necessarily bad pathfinding, but certainly broken pathfinding), and it's also an aspect of AI that has had a fair bit of investment, so algorithms are more readily available, and research more thorough. Things such as decision trees for multiple agents inside a 3D space become problematic, especially as games become more complex. I would say that this is mostly due to the size of the search space and its subsequent branching factor. You can easily set up a simple decision tree for determining whether or not a bad guy decides to fight or run away, based on perhaps a metric of health remaining. That's just two options however. When you want them to make their decisions based upon the current situation, which could involve additional enemies, additional allies, and so on. Suddenly, with just the two options of fighting and running away, a more sophisticated AI is going to have to take into account the dynamic parameters of the situation. For instance, an agent could get hit to a point where he has low enough hit points that typically he would want to run away, except that this agent also has 3 friends helping him fight, and his foe is particularly tough and requires a heavy concentration of fire, and it's unlikely that the foe has enough firepower to actually kill the agent. When you start to add to the list of actions so you have more than just fight/run away (should I flank? Should I hide? Should I cover? Should I find healing? Should I rush?), a non-trivial AI will start to eat up an exponential amount of computer cycles. Then you start to take into consideration that it must analyze the environment. It should recognize that doors are choke points and to not go running through them if it knows the enemy is on the other side. So now it needs to address what exactly is a door? You can fake it by implementing some sort of key into the level that will recognize that certain areas are doors, but that's not necessarily perfect, and if you miss one, then it simply will not be treated like a door. So do you spend time teaching it to not go through doors through some reinforcement learning? That could work, but perhaps it finds large garage doors to be the same as small one person doors. It's a lot of work, which means it's a lot of time and money.

 

AI can also be curtailed because a very good AI is not a very fun AI. My boss (Jonathan Schaeffer) has made basically an unbeatable Checkers AI (go ahead and try to beat it here if you want). He has shown that with the first move, it cannot lose unless you handicap it. A smart and dynamic AI can also lead to unexpected consequences. Sometimes this is good (the gunboats in Half-Life 2 ended up assessing that the rockets from the RPG were a bigger threat than the person, and would try to shoot the rocket when you shot one). Other times this can be bad (implementations of the radiant AI in Oblivion that lead to NPCs killing each other, leaving quests unattainable and so on. As cool as this may sound, the fact of the matter is that on the whole, people want to be the one taking part in the action). There is also uncertainties. My University worked together with EA on making a dynamic AI that learned as it played for FIFA 2004. It was very effective, but EA would not ship it with any copy of the game, because it was impossible to guarantee that the AI would never break. The fact that the AI changed and adapted meant it was possible for the AI to for whatever reason get bad input, and break itself.

 

 

I had a brief discussion with Dr. Schaeffer about the future of AI, and in his opinion, the prognosis was not too optimistic. In his view, things probably wouldn't significantly change until addon cards designed specifically for artificial intelligence became common, since it would be processor power that would be reserved exclusively for the artificial intelligence. Right now it is much more economically and computationally efficient to work on squeezing out better graphics/physics with the available cycles, rather than exploring into the more uncertain world of artificial intelligence.

 

I know research has been done to help reduce the computation time of things such as pathfinding. Abstractions and heuristics are created to greatly reduce the amount of search space (though this is true for all parts of AI, not just pathfinding). In my opinion, there is no technical reason why a game cannot have good pathfinding (just those annoying time and money reasons). I do think that AI has improved in recent years, just not at the same pace as graphics and physics. Perhaps as we approach the uncanny valley, we'll see diminishing returns on continued investment into graphics and physics, and more time and energy will be spent on improving artificial intelligence applications in video games. Unfortunately, simplistic AI tends to be sufficient for a lot of people. The problem is compounded when people don't really want "good" AI, they want "realistic" AI. So what are the metrics for "realistic" AIs?

 

I know this doesn't really answer your question, but that's just my thoughts. Based on what little I have read about the Unreal AI, it seems as though it provides a nice framework for you to implement your own AI. It probably has decent pathfinding algorithms and whatnot, but a licensee is still going to need to set up how the AI should react in situations and determine metrics for its decision making models. Having awesome pathfinding doesn't mean much if the agents aren't sure what it should pathfind to! It doesn't make sense for a squad of troops to stick together unless it knows that there are useful bonuses for sticking together. Stuff like that.

 

Having said that, Epic seems to be in the engine business, almost more so than the game business. Their games seem to be more demonstrations of what they can do with their engine (which means it's still in their best interests to make good games, since it makes the engine more appealing). I have heard that the Unreal 3 Engine is super nice to work with, and I imagine that a lot of the hard work for the foundation of AI is probably done quite well, since Epic has a financial interest in it.

 

 

Anyways, hopefully you found my thoughts interesting. I will now return to my self-imposed hiatus.

 

Allan

Posted

Thanks Allan. * erases pentagram *

 

I guess the real question you want to ask, Walsh, is what you want the AI to do.

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Posted

It doesn't mention any developers that are currently using the accelerator ...

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Posted

Realistic or, if you prefer, "immersive" AI is an interesting concept, and I think there are already people moving in that direction with a specific eye towards simulated environment applications. While the prognosis for AI in the next few years is, indeed, terrible, I don't think that this line of thought is hopeless unless synthetic biology takes over electronic gaming as the next paradigm for mass entertainment (think living toys). Assuming that doesn't happen, it seems inevitable that electronic gaming will have to turn to AI in order to tackle the big hurdle of emergent depth in environments and mobiles. Otherwise, we will quickly reach a limit in what can be done, as graphics technology is, as you say, heading towards a ceiling. I guess full body immersion is also an alternative path for advancement, and probably the more likely, but that is probably as far away as good AI in terms of actual application.

There are doors

Posted

What do you mean by "emergent depth"?

 

It doesn't mention any developers that are currently using the accelerator ...

 

Like Bok cares...

I was more interested for me. ;)

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Posted

Emergent gameplay that's deep :yucky:

 

Examples:

 

1. Complex, believable, and interesting NPC reactions that aren't scripted, but which arise from the interactions between the player and the NPC's AI. Non-scripted gives you emergent gameplay, and complexity/believability gives you depth.

 

Would require (at the minimum): natural language processing and generation, emotional modeling, machine learning, robustness (a very challenging problem for this sort of AI systems)

 

2. Embedded "game master" AI that procedurally generates content based on the world's physical laws and structures. Kind of like the roguelike dungeon generator, but much more sophisticated and capable of far greater complexity and adaptability (to player demands).

 

Would require (at the minimum): machine learning, procedural graphics generation, natural simulation, robustness

 

Etc.

There are doors

Posted
Emergent gameplay that's deep :yucky:

 

Examples:

 

1. Complex, believable, and interesting NPC reactions that aren't scripted, but which arise from the interactions between the player and the NPC's AI. Non-scripted gives you emergent gameplay, and complexity/believability gives you depth.

 

Would require (at the minimum): natural language processing and generation, emotional modeling, machine learning, robustness (a very challenging problem for this sort of AI systems)

 

2. Embedded "game master" AI that procedurally generates content based on the world's physical laws and structures. Kind of like the roguelike dungeon generator, but much more sophisticated and capable of far greater complexity and adaptability (to player demands).

 

Would require (at the minimum): machine learning, procedural graphics generation, natural simulation, robustness

 

Etc.

 

That sort of AI is years off, decades even.

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Posted

It's a nice idea, but then you come up against the Gabe Newell conundrum, whereby the audience has no guaranteed viewing elements of the narrative. I'm not suggesting that "emergent depth" is a bad thing, just that it's a little more complex than just creating an extempore experience. More analogous to watching Whose Line is it Anyway versus Hamlet; it becomes a lot more difficult to ensure minimum standards.

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Posted
It's a nice idea, but then you come up against the Gabe Newell conundrum, whereby the audience has no guaranteed viewing elements of the narrative. I'm not suggesting that "emergent depth" is a bad thing, just that it's a little more complex than just creating an extempore experience. More analogous to watching Whose Line is it Anyway versus Hamlet; it becomes a lot more difficult to ensure minimum standards.

 

Absolutely. It creates a different kind of experience and requires a different mindset from the audience, really, and I'm sure that even when emergent depth becomes a reality some games would opt to have more, and some games would opt to have less. Actually, RPGs constitute a genre where I estimate more utility (or a new sub-genre emerging entirely), since playthrough branching factor is such a big deal here from a production point of view. Non-linearity could then have its cake and eat it too.

There are doors

  • 3 weeks later...
Posted

I almost completely forgot about this thread. So profuse apologies to Alanschu and Azarkon for my not replying sooner.

 

My interest is not from the game direction, but from the simulation direction. That is that the AI does not have to be fun to play against. But equally it doesn't have to be unbeatable. I'm interested in scripting - or more precisely acting as backup for the guy scripting - a 'human' combat AI.

 

One avenue that particularly interests me is, in order to address some of those tactical questions you raised, Alan, is that of commanders. The questions you asked would be tackled by a corporal or sergeant, while bigger questions would be tackled by higher officers and NCOs.

"It wasn't lies. It was just... bull****"."

             -Elwood Blues

 

tarna's dead; processing... complete. Disappointed by Universe. RIP Hades/Sand/etc. Here's hoping your next alt has a harp.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...