suoju asks “I am a Ph.D. candidate doing research on AI in games. I know it is quite a broad topic, but if you can point me in a direction which I can focus on, I would really appreciate it.”
There are quite a few research topics that involve applying artificial intelligence to games, so you have lots of options…
Non-Player Character AI
Creating intelligent non-player characters (NPC) is no doubt the most researched application of AI in games. There’s still a lot of work left to do in this field, and there’s certainly a big demand too.
Decision Making and Control
Hierarchical planning seems to be the most popular research topic, and I also believe it’s the best way to go. However, it’ll take a lot of experience to make a “valuable contribution” in this field, so make sure you build on previous research as much as possible.
Here are some interesting challenges for this type of AI:
Dealing with dynamic worlds that may change while planning.
Resolving conflicting goals and enabling concurrent behaviors.
Planning with incomplete and imperfect information.
Creating planning languages that are easy to author.
Integration of planning and execution for incremental planning or lazy re-planning.
See this paper on Building Robust Planning and Execution Systems for Virtual Worlds for references and more ideas.
Machine Learning
Making an AI that can acquire any knowledge and learn any behavior is the ultimate goal here, but you should be thinking of ways to solve useful sub-problems — if you want to finish in 3 years! Some ideas for specific AI components:
Learning behaviors based on feedback from human players.
Deriving facts from the rules of the game at runtime.
Also you may be interested to take a data-mining approach where behavior capture is used to create the logic, like the Artificial Contender middleware.
You can also research applying ML to any other aspect of game development…
AI Elsewhere in Games
Other uses of AI in games are even more popular than NPC behaviors these days. Your best bet in this area is to adapt AI techniques from other domains and apply them into games.
Interactive Storytelling
This area of research seems to be particularly popular, despite having very little commercial success to date. The idea is to dynamically generate story-lines that are interesting to the player. Look into StoryTron for inspiration, and GrandTextAuto for more references.
Cooperative Behaviors
Applying AI to multiple non-player characters is an interesting challenge, but it relies on having a good AI engine for the individual actors in the first place. This is particularly useful for serious games, such as training simulations that involve multiple people coordinating together (e.g. fire drills or police investigations).
Read the AIIDE ‘07 Papers for the latest research (there are many other ideas on that page too).
Player Control
This aspect of AI is under-researched, but I believe it holds lots of promise for improving the player’s experience. The idea is to build the whole player logic with a robust AI system, in order for the avatar to behave more intelligently and remove the frustrations of traditional reactive behaviors (running into walls, not doing the right thing, etc.)
Content Creation
Next-gen titles are taking huge amounts of time and money to create. So why not use the similar AI techniques that help create more behaviors with less time, and apply them to creating levels. For example, generating cities, buildings, rooms, or any kind of terrain that’s interesting for the player.
See this post about the Future of Game AI for more inspiration for research.
Feel free to post any further suggestions for research in the comments!










Comments
Comment on this article. | Show full forum thread.thanks lot for your timely feedback. actually i am now teaching at a local university and before that i was a software engineer and mostly doing java. C++ hand-on experience is very limited. due to the academic reseach, i join in the area of AI game. both game playing and AI game is fresh for me. what i am doing now is to find a AI game framework like FEAR so i can develop and make verification of the new idea on AI game efficiently.
i have a few questions which make me screwed up for more than a week of using the fear and Quake 2. if you or someone else with this forum can answer it , i really appreciate it.
1. after i install Quake 2, then FEAR according to the user manual, i want to run a demo of the Animat, and try to add a bot: "sv add Marvin 1 " from the bot console, but it is not working at all.
2. also: quake2.exe +set game fear +set dedicated 1 +set maxclients 32 +set deathmatch 1 +map grdm1
the command is not working because of "map grdm1"
3. i try to run a demo of FEAR/animat after i put boost inside the fear, i got the following error:
LINK : fatal error LNK1181: can not open input file FEAR-vc6.lib,
i am using the Visual studio 2005
4. do you have a newsgroup/forum in addition to this one on FEAR to recommend so i can get quick feed back.
thanks in advance for any assist
If you're not too comfortable with C++, then I definitely do not recommend using either FEAR or Quake 2. Make a simple application in Java or write a client-side application with GameBots.
As for your questions, it's probably not the right place for this, but here's the summary:
[*]Chances are you're not typing the command in the server's console, or you didn't install the extension into the right directory.
[*]The manual tells you where you can download that map. Try 'q2dm1' instead; it's shipped with Quake 2.
[*]Make sure that VS2005 has imported the dependencies correctly from 2003 (it's not tested). If so, make sure the library built O.K. in the first place.
[*]There's a mailing list, but it's not used very much. Contact me if you need help.
It seems like FEAR may not be the best choice for you. C++ can be a pain to work with for these exact reasons, so I recommend sticking with what you know best.
I hope that helps a bit. Email me if you need more guidance.
Alex
I think there are a lot of opportunities in finding what techniques can be reused and packaged as middleware, on all levels: pathfinding and environment modeling, control logic, scripting, etc.
The good thing is that you don't really need C++ for this. [URL=http://www.cs.ualberta.ca/~script/]ScriptEase[/URL] is a tool that sits on top of the NeverWinter Nights script language and is written in Java.
1/ AI in quality management & production control
Artificial intelligence techniques can be applied to ease the production flow. I believe that we can apply some of the field's technique :
- Knowledge base & expert systems to help correct bugs. Lot of game companies are using bug tracking software, and trying to avoid duplicating bugs. But from my (very very little) experience, when there's too many bugs in the base it's impossible to find your answer (or even know if the answer is in the base).
- Machine vision to help detecting visual bugs.
- Machine learning (as Alex said)
2/ In-Game Machine vision
The eye toy and xbox camera are two very interesting mediums (nearly as much as is the wiimote). Using these peripherals some games are providing features like player creation, controller replacement, but I believe we can do more with this.
thanks lot for your timely feedback. actually i am now teaching at a local university and before that i was a software engineer and mostly doing java. C++ hand-on experience is very limited. due to the academic reseach, i join in the area of AI game. both game playing and AI game is fresh for me. what i am doing now is to find a AI game framework like FEAR so i can develop and make verification of the new idea on AI game efficiently.
i have a few questions which make me screwed up for more than a week of using the fear and Quake 2. if you or someone else with this forum can answer it , i really appreciate it.
1. after i install Quake 2, then FEAR according to the user manual, i want to run a demo of the Animat, and try to add a bot: "sv add Marvin 1 " from the bot console, but it is not working at all.
2. also: quake2.exe +set game fear +set dedicated 1 +set maxclients 32 +set deathmatch 1 +map grdm1
the command is not working because of "map grdm1"
3. i try to run a demo of FEAR/animat after i put boost inside the fear, i got the following error:
LINK : fatal error LNK1181: can not open input file FEAR-vc6.lib,
i am using the Visual studio 2005
4. do you have a newsgroup/forum in addition to this one on FEAR to recommend so i can get quick feed back.
thanks in advance for any assist
If you're not too comfortable with C++, then I definitely do not recommend using either FEAR or Quake 2. Make a simple application in Java or write a client-side application with GameBots.
As for your questions, it's probably not the right place for this, but here's the summary:
[*]Chances are you're not typing the command in the server's console, or you didn't install the extension into the right directory.
[*]The manual tells you where you can download that map. Try 'q2dm1' instead; it's shipped with Quake 2.
[*]Make sure that VS2005 has imported the dependencies correctly from 2003 (it's not tested). If so, make sure the library built O.K. in the first place.
[*]There's a mailing list, but it's not used very much. Contact me if you need help.
It seems like FEAR may not be the best choice for you. C++ can be a pain to work with for these exact reasons, so I recommend sticking with what you know best.
I hope that helps a bit. Email me if you need more guidance.
Alex
I think there are a lot of opportunities in finding what techniques can be reused and packaged as middleware, on all levels: pathfinding and environment modeling, control logic, scripting, etc.
The good thing is that you don't really need C++ for this. [URL=http://www.cs.ualberta.ca/~script/]ScriptEase[/URL] is a tool that sits on top of the NeverWinter Nights script language and is written in Java.
1/ AI in quality management & production control
Artificial intelligence techniques can be applied to ease the production flow. I believe that we can apply some of the field's technique :
- Knowledge base & expert systems to help correct bugs. Lot of game companies are using bug tracking software, and trying to avoid duplicating bugs. But from my (very very little) experience, when there's too many bugs in the base it's impossible to find your answer (or even know if the answer is in the base).
- Machine vision to help detecting visual bugs.
- Machine learning (as Alex said)
2/ In-Game Machine vision
The eye toy and xbox camera are two very interesting mediums (nearly as much as is the wiimote). Using these peripherals some games are providing features like player creation, controller replacement, but I believe we can do more with this.
One way we'll never get closer to satisfying many different player types with one game is by never investigating how we can get the game to discern between different types of player.
Of course, this kind of work is a long way from being practical as it stands, but with commercial use of stuff like Dynamic Difficulty Adjustment, its coming along.