AiGameDev is a site about artificial intelligence in video games, covering pathfinding, behavior trees, and developer interviews.
HN commenters list it among resources for game AI programming, and link its interviews and its community award for the best NPC.
I don't think its really that much to do with research and implementation and more about the goals of AI in games. Mostly its the illusion of intelligence while not actually being intelligent.
I was reading about game AI again just yesterday and an exmaple of this is in this aigamedev.com article about things you can learn from Halo's AI, they say that "when you make the AI tougher (e.g. with more health points), the players believe they are smarter": http://aigamedev.com/open/review/halo-ai/
Game AI is a careful balance between:
1. Providing a challenge
2. Not being too difficult to be frustrating
3. The *illusion* of intelligence
Non of these really have much to do with "AI" as such and certainly don't need fancy implementations or research.
For shooters, being a good shot and having fast reaction time (ie things that make a good player) make for frustratingly terrible AI (and is super easy to implement). What makes a shooter AI feel smart is advanced combat tactics: teamwork, flanking, tricks to flush their enemy out, whatever. A lot of this can be implemented as a mix between behaviour trees and pre-scripted events. But as the Halo guys say, if the enemies don't live long enough for this to be visible, then it doesn't actually matter.
Having said that, I personally wish games had more of an A-Life simulation (agapos mentioned Stalker, a game whose AI I quite liked). Combat tactics is nice and all, but I want the games to feel alive when I'm not fighting…
For those with a modest automated planning background, F.E.A.R. is inspirational because it shows even the most ambitious and inefficient planners, i.e. STRIPS, which is the grand-daddy of automated planning that searches across flat goals based on a known global state... even that, which is known to be an NP-complete problem in many domains, can be made practical in specific domains with tweaks.
Much of the automated planning literature is about finding ways to find the balance between computational tractability and expressivity of the domain & goals. Many attempts to fuse logic and imperative programming with an aspect of history: hierarchical task networks for example, which are like a high level procedural language with non-deterministic method dispatch. Games like Killzone 2 for the PS3 also had an interesting followup use of automated planning via hierarchical task networks, to do squad tactics; http://aigamedev.com/open/coverage/htn-planning-discussion/
Another thread is Golog as a variant of Prolog that uses Reiter's Situation Calculus to formulate complex goals and domain constraints in a relatively consistent syntax and applied towards "Cognitive Robotics": http://www.cs.toronto.edu/cogrobo/main/systems/ .. it's unfortunate a lot of that work seems stalled since Reiter passed away.
With all the recent hype around connectionist, deep learning AI, etc., there still is a lot of important work going on in the symbolic logic side of AI, particularly in this…
Yes but as I suspected it features a scripted A.I. while I was looking for a real 100% "thinking" dynamic and/or even machine-learning based A.I.
Quoting from: http://voices.yahoo.com/what-good-ai-bad-ai-7633798.html
"Metal Gear Solid 2 and Metal Gear Solid 3. These two games feature the most scripted A.I. in the history of video games. And yet, I love the A.I. of both games. They're programmed to react differently to your different actions and while everything is pre-programmed and you'll learn just how scripted it is by the time you're about half-done with the game, there're so many different scripts to the A.I., that as predictable as they are, you'll en up having a lot of unique and unpredictable moments in those two games."
Compare that to "Creatures" for example.
Quoting from: http://aigamedev.com/open/highlights/top-ai-games/
"Creatures is an artificial life program where the user ‘hatches’ small furry animals and teaches them how to behave. These “Norms” can talk, feed themselves, and protect themselves against vicious creatures.
It’s the first popular application of machine learning into an interactive simulation.
Neural networks are used by the creatures to learn what to do. The game is regarded as a breakthrough in alife research, which aims to model the behavior of creatures interacting with their environment."
So I am sure that no matter at how good MGS 3 might get, given I am specifically putting attention to this aspect (and that I am not really…
The speech recognition and synthesis are primitive compared to any smartphone assistant these days. The natural language processing is about equivalent to SHRDLU from the 1960s [1]. It turns out that this approach based on manually constructing syntax trees and applying simple logic can make some fun demos but is ultimately a dead end in terms of making systems that are actually useful, as was discovered in the "AI winter".
The part that controls Mario looks similar (if not identical) to this: http://aigamedev.com/open/interviews/mario-ai/
If you want to see the state of the art in using AI to play video games, look no further than "Playing Atari with Deep Reinforcement Learning" [2], where a single general AI system learns to play many different games. The generality is what makes it impressive. Its only inputs are pixels and score, and its only outputs are joystick and button state, just like a human player. This makes it unlike these Mario systems which are hand programmed very specifically for Mario, and use special instrumentation of the game state that skips pixels entirely.
[1] http://en.wikipedia.org/wiki/SHRDLU
[2] http://arxiv.org/abs/1312.5602
There are some other helpful reads in the field of games AI:
Killzone's AI: dynamic procedural combat tactics (interesting for its use of tactical analysis):
http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf
Misc. coverage of the HL1 AI stuff:
http://aigamedev.com/open/article/halflife-sdk/
http://twhl.info/articulator.php?art=29
The Quake 3 Arena Bot (interesting for use of fuzzy logic and GA in training):
http://fd.fabiensanglard.net/quake3/The-Quake-III-Arena-Bot.pdf
The AI Systems of Left 4 Dead (interesting for focus on player state modeling):
http://www.valvesoftware.com/publications/2009/ai_systems_of_l4d_mike_booth.pdf
Steering Behaviors for Autonomous Characters:
http://www.red3d.com/cwr/steer/
Artificial Stupidity: The Art of Intentional Mistakes (interesting for how it helps you train players):
http://www.liden.cc/lars/WEB/Resume/Papers/2003_AIWisdom.pdf
From the article:
"A* is a good choice for most pathfinding needs."
I teach A* in my game AI class, and after having examined dozens of real-world game implementations of pathfinding, this is exactly right. While it's true that you shouldn't ALWAYS use A* , most games use A* in most situations, because actually greedy approaches like you are discussing do poorly surprisingly often. My recommendation is to start with A* and only use simpler methods if it isn't giving you the performance you need.
For your subdivision comment, the general approach is generally called hierarchical pathfinding. There are lots of ways you can do this, but I like HPA* : http://aigamedev.com/open/review/near-optimal-hierarchical-pathfinding/ Your comment about two levels is good, because while hierarchical pathfinding can use any number of levels, I've never seen more than two in practice in games.