Article
files/QUESTIONS

Research Opportunities in Game AI

Alex J. Champandard on July 28, 2007

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!

Discussion 6 Comments

alexjc on July 29th, 2007

Hey, 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: [LIST] [*]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. [/LIST] 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

alexjc on July 29th, 2007

Hey, 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: [LIST] [*]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. [/LIST] 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

Sergio on July 30th, 2007

Another area where I would like to see more research is in development tools and middleware. 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.

Sergio on July 30th, 2007

Another area where I would like to see more research is in development tools and middleware. 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.

gware on July 31st, 2007

I'll also add two categories : 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.

gware on July 31st, 2007

I'll also add two categories : 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.

If you'd like to add a comment or question on this page, simply log-in to the site. You can create an account from the sign-up page if necessary... It takes less than a minute!