Mostrando entradas con la etiqueta ai. Mostrar todas las entradas
Mostrando entradas con la etiqueta ai. Mostrar todas las entradas
0

Article: Real-Time Strategy High-Level Planning

Real-Time Strategy High-Level Planning
[Stefan Weijers, 2010]

In this article, the author analyzes the different elements needed for implementing AI in RTS games as well as different techniques used to achieve this. Here is a small summary:


Real-Time strategy games are computer games in which the player controls an army in real-time to destroy other players' armies, with each player requiring resources and buildings to create such army. The key to winning is to balnce the army production with the gathering of resources.

Tasks in real-time strategy games can be split in three levels of abstraction:
  • Unit Control (Lowest level, players control a specific unit).
  • Tactical Planning (Make plans on how to attack the enemy).
  • Strategic Planning (High-Level decisions involving army creation and management).
Identified Problems in real-time strategy games:
-------------------------------------------------

Resource Management
The gathering and balancing of resources can be done with a reflex agent. The AI has all the relevant information and can simply assign more units to a certain resource when it runs low.

Decision making under uncertainty
To be able to recognize important events, the game needs some sort of pattern recognition. Even with no concrete information available, the AI should be able to plan future actions.

Spatial and temporal reasoning
Applicability of a strategy needs to be reevaluated constantly. Terrain analysis is really importante for this. An important problem encountered for this aspect is the process time, because the world might have changed while the AI is still calculating its strategy.

Collaboration
This aspect is clearly lacking in RTS. Computer players never work with human players to overcome a strong opponent. The AI should be able to recognize the allied strategy and help them in the right way.

Opponent modeling, learning
Human players can spot weaknesses in a strategy and exploit them while computer players have a hard time accomplishing this. The AI needs to learn from previous experiences and formulate aplicable counter strategies.

Reasons why current commercial RTS AI fail to challenge human players:
--------------------------------------------------------------------------

Predictability and lack of spatial reasoning.
When the AI is predictable, players will inevitably exploit it. The predictability of commercial AIs comes from the fact that all AI is scripted.

Scripting
Commercial games include a set of scripts that translate into several different strategies that the AI implements to give some diversity to games but that carries several problems:

Hard to implement
Implementation of scripts needs several expertns in the game to think of viable strategies, the game has to be near completion before the AI programmers can start implementing it and even after implementation, it needs to be tested and tweaked thoroughly.

Domain Specific
After implementing a scripted AI for a game, the implementation is not applicable for other RTS games. This forces game developers to go thorugh the implementation cycle again.

Game developers use other means to entertain players. Different scripted strategies or giving the AI more information than it should have are some examples to create diversity or add challenge.

Academic Research to solve these issues:
---------------------------------------

Dynamic Scripting
A reinforcement learning technique for scripts. This allows the AI to generate a strategy on the fly by selecting a viable tactic in the tactic database. Also, this allows the AI to overcome static challenges (players that use the same tactic over and over again).

This, however, carries some of the problems. It still needs a group of experts to create viable tactics and because most research is done with static opponents to learn from, their ability to counter other adaptive players is doubted.

Monte Carlo Planning
This type of planning generates a set of simulations for all possible actions, it then chooses the plan that corresponds with the best simulation for the player. Because in an RTS game the amount of possible actions is enormous, an abstraction of actions and states has to be found.

The problem with this technique is that it requires a lot of calculating and it doesn't learn from previous mistakes.

Case Based Planning
This technique is based on case based reasoining, which is similar to the dynamic scripting method. It is based on states and looks at past experience to calculate the best sub plan in the current state. Case Based Planning doesn't model the opponent and wont do adversarial planning. It needs a database of predefined tactics. The algorithm picks a random tactic and remembers the outcome. This technique allows an expert to play the game and teach the AI what good decisions are, simplifying the process of designing an AI.

The problem with Case Based Planning is that it needs to be trained against opponents before it can become strong. The more complex and diverse the opponents are, the longer it will take the CBP to learn how to win.

The author finally concludes that the most advanced technique is the Case Based Planning because it can adapt, change and enhance strategies, but pointing out which one of the three is the best is hard because advance scripts have been made in commercial games and the performance of the Case Based or Monte Carlo planners have yet to be proved in more complex games.

Read the full article here!

Wijers, S., 2010, Real-Time strategy high-level planning. Obtained in August 11th, 2011 from PIXEL: www.inter-actief.utwente.nl/studiereis/pixel/files/indepth/StefanWeijers.pdf
0

Article: Using Potential Fields in a Real Time Strategy Game

Using Potential Fields in a Real-Time Strategy Game Scenario
[Johan Hagelback, 2009]
In this article/tutorial Johan explores a potential field based approach to real-time planning and navigation.

Potential fields are similar to influence maps in the fact that they are both constructed by placing numerical values on a grid map. The difference is that influence maps use player units/buildings to set the numerical values and potential fields place the numerical value in areas of interest.

An example of an influence map.

After the potenial map spreads through the map (fading its values to zero), a moving unit can easily reach it's destination by simply moving to its current more attractive adjacent tile. The idea is to use attractive fields in the destinations and repelling fields in the obsacles. This will create a potential map that will guide the unit through the terrain.

This can also have other applications, for example, when a unit ends its "attack phase" and enters a "reload phase", it can create repellant fields to flee if the enemy unit comes closer. Another application can be for long ranged units. If they place a small repellant field to enemy units to create a "ring" for the optimum firing range.


An example of a potenial field with obstacle repellant fields.

One of the advantages of using potential fields is the ability to handle dynamic game worlds. Agents only need to see one step ahead to move. They don't need to know the full path to their destination, eliminating the risk of obsolete paths due to changes in the game world. Also, it can easily create complex behaviors by just modifying the fields, for example, several unis will surround an enemy while being at shooting range and avoiding other friendly units who are also attacking the same enemy.

The main drawback from this approach would be the fact that it would need to be carefully programmed as to require an efficient amount of resources. Although the author solved this issue, it's definetely not something trivial.

For more information, including common problems and solutions, hit the link.
Hagelbäck, Johan, 2009. Using Potential Fields in a Real Time Strategy Game Scenario. Obtained in July 28th, 2011 from AiGameDev.com : http://aigamedev.com/open/tutorials/potential-fields/
0

Paper: Map-Adaptive Artificial Intelligence for Video Games

Map-Adaptive Artificial Intelligence for Video Games
[Laurens van der Blom, 2007]

The author of this paper explains how to implement an AI opponent in a RTS game that takes into account the properties of the map it is placed in. For example, the AI makes decisions based on the amount of resources nerby, the location of cliffs and/or narrow passages, and the overall strategy of the opponent (if the opponent is playing offensively or defensively).

To achieve this, a ID3 Decision Tree was used in combination with fuzzy logic to allow the AI to find the best course of action depending on the current state of the game.

The game in which the AI was tested was a moderately complex RTS so the following set of rules were used:

  1. Construct metal extractors at near metal resources.
  2. Construct metal extractors at far away metal resources.
  3. Place offensive units at relatively narrow roads.
  4. Place offensive units at own base.
  5. Place artillery on cliffs.
  6. Protect operational metal extractors.
  7. Protect artillery on cliffs.

The AI was tested against a computer controlled opponent and a human opponent in five different types of maps designed to test specific attributes like amount of resources or presence of narrow paths. In most of their tests, the AI performed as they expected but when placed against a human player it lost most of the games (even if it also performed as expected).

What I liked about this approach is that the AI actually varies the strategy if the enemy is near or not and if the enemy is attacking or not and it's relatively easy to distinguish what actions are being performed by it. And while this approach works, the AI had a hard time beating human players. That may be caused because, as the author states in the article, the decision tree needed more specific cases. Maybe the use of a nerual network could remedy this issue, but it could make the implementation a little more complicated or even change it completely.

Read article, complete with experiments and results here.

Van der Blom, Laurens, 2007. Map-Adaptive Artificial Intelligence for Video Games. Obtained in July 21st, 2011. http://www.unimaas.nl/games/files/bsc/Blom_BSc-paper.pdf
0

Article: Decision Making Levels in RTS Games

Decision Making Levels in RTS Games
[Muhamad Hesham, 2010]

In this short blog post, Muhamad divides the actions in RTS games in three different levels:
  1. High level strategic decisions
  2. Intermediate level tactical decisions
  3. Low level micromanagement decisions.
The high level strategy resembles the general of a real army. The actions include building a base, training units, attacking enemis, etc. The perception at this level is based on the information from the lower levels.

Medium level actions resemble a commander that groups units into fighting elements and control them in a large war sense.

Finally the low level actions are most commonly known as actions like moving units or using a unit's special ability.

This is how players make decisions while playing RTS games and AI creation can be made to resemble this behavior. Each level should not care on how the lower levels will carry on a specific task, for example, in the high level, a decision has been made to attack the enemy, so the message arrives at the medium level. Here, it is decided which troops will move and where and finally the low level will be in charge of finding the best path and maintaining a strong formation within the group of units.

The author concludes that medium-level AI is the most complex of all and is usually lacking in most games because of this. The amount of feedback information that is needed and complex plans that need to be made make this level AI worth considering.

Read the full article here.

Hesham, Muhamed (2010). Decision Making Levels in RTS Games. Obrained in July 10th, 2011 from Adaptive AI Engine for RTS: www.rtsairesearch.wordpress.com/2010/10/27/paper-read-an-integrated-agent-for-real-time-strategy-games/
0

Unity: SimplePath

SimplePath


SimplePath is a set of scripts for Unity that allows fast pathfinding for any type of terrain. It supports deployment to Web, PC, Mac, iPhone, and Android. These scripts cost $60 usd and can be bought from the Unity Asset Store.


SimplePath's web page.
0

Paper: Can a Realistic Artificial Intelligence be created for a Real-Time Strategy Game?

Can a Realistic Artificial Intelligence be created for a Real-Time Strategy Game?
[Dane Anderson, 2008]

In this paper, the author explains how is it possible to create a realistic AI for a RTS game. To make this task easier, the AI should be divided in two important categories:
  • Tactics: Combat and path-finding.
  • Strategy: Sub-goal identification, engaging the enemy, learning and economy management.
Combat
This involves individual units fighting with each other. This section boils down to choosing the correct weapon for each unit to use in specific situations. This is further simplified if the unit only has one weapon available.

Path-Finding
This involves units, individually or as a group, finding the shortest path between two points. The author quickly states that the A* algorithm is a popular choice for RTS games but it suffers from two important flaws. The first one is the amount of resources needed to calculate the path for all the units. This can be solved with flock algorithms, from which Simple Swarms (SS) was chosen for its efficiency and easy control. The second one is unreallistic movement when obstacles are present. This can be solved by calculating the path before moving (the amount of resources needed are balanced with the use of SS).

Sub-Goal Identification
This involves the use of scouts to acquire information about the player to create sub-goals that will help the AI to win the game. For example, if the scout detects that the player has created an archer, the AI can deduce what buildings the player has built and adjust the units that will be created next.

Engaging the Enemy
This involves how the AI will use the units at its disposal. The author explains that most of the time, the AI sends the units unintelligently, making it easier for the player to kill them. Influence Maps can prevent this behavior because the enemy formations can be easily determined and the AI can make a better decision on how to move its units.

Learning
This involves the AI adjusting its strategy over time. This is intended to mimic the players own behavior, as they also adjust their strategies over time.

Economy Management
This involves the AI managing units, constructions and resources. The use of a resource chart will help the AI determine what units to build or what buildings to construct based on its current sub-goal.

The author concludes that the use of this architecture for the creation of the AI can achieve a better sense of realism for the player, because both players are given the same information and the competition becomes fair (no need to use 'cheating' techniques, often used in game AI).

Read the paper here

Anderson, Dane (2008). Can a Realistic Artificial Intelligence be created for a Real-Time Strategy Game? Obtained in July 10th, 2011 from Scribd.com http://es.scribd.com/doc/2546855/Can-a-Realistic-Artificial-Intelligence-Be-Created-for-a-RealTime-Strategy-Game
0

Paper: Promising Game AI Techniques

Promising Game AI Techniques
Steve Ravin [2004]

As a follow-up to the paper: Common Game AI Techniques, the same author explains some techniques that can be interesting to use in game development but that haven't (as of 2004) become popular in the industry.

Much like his other paper, he describes each technique and provides a specific game application with each one of them. The techniques described are the following:

  • Bayesian Networks: They allow complex humanlike reasoning when faced with uncertainty.
  • Blackboard Architecture: Problem solving with the use of a shared communication space.
  • Decision Tree Learning: Relate a series of inputs to an ouptut using a series of rules arranged in a tree structure.
  • Filtered Randomness: Ensure that random events appear random to players.
  • Fuzzy Logic: Extension of classical logic that is based on the idea of a fuzzy set.
  • Genetic Algorithms: Search and optimization based on evolutionary principles.
  • N-Gram Statistical Prediction: Statistical technique that can predict the next value in a sequence.
  • Neural Networks: Complex nonlinear functions that relate one or more input variables to an output variable.
  • Perceptrons: A Nerual Network of exactly 1 layer.
  • Planning: Series of techniques that allow the AI to perform several actions in order to reach a certain goal.
  • Player Modelling: Build a profile of the player's behavior to adapt the game accordingly.
  • Production Systems: Architecture for capturing expert knowledge in the form of rules.
  • Reinforcement Learning: Learning based on trial and error.
  • Reputation System: A model of the player's reputation in the game world.
  • Smart Terrain: A technique based on putting intelligence into inanimate objects.
  • Speech Recognition: Enable a player to speak into a mic and have the game respond accordingly.
  • Weakness Modification Learning: Learning technique that prevents an AI from losing repeatedly to a human player in the same way each time.

You can find more information on each one of them in the book AI Game Programming Wisdom 2.
Rabin, Steve (2004). Promising Game AI Techniques. In Steve Rabin (Ed.) AI Game Programming Wisdom 2 (pp 15 - 27) United States, Charles River Media Inc.
0

Paper: Common Game AI Techniques

Common Game AI Techniques
Steve Rabin [2004]

In this paper, the author describes the most common techniques used in the industry and gives a game application example of each one of them. Here is a list of the techniques described in the article:

  • A* Pathfinding: Find the cheapest path through an environment.
  • Command Hierarchy: Strategy to deal with AI decisions at different levels. Modeled after military hierarchies.
  • Dead Reckoning: Predict a player's future position based on current position, velocity and acceleration.
  • Emergent Behavior: Behavior that wasn't explicitly programmed but emerges from the interaction of simpler behaviors.
  • Flocking: Technique for moving groups of creatures in a natural manner.
  • Formations: Group movement technique that mimics military formations.
  • Influence Mapping: Method for viewing the distribution of power within a game world.
  • Level of Detail AI: Optimization technique where AI computations are only performed if the player will notice them.
  • Manager Task Assignment: A single agent makes decisions and assings tasks to agents best suited for the task.
  • Obstacle Avoidance: Use of trajectory prediction and layered steering behaviors to avoid obstacles.
  • Scripting: Specify a game's logic outside the game's source language.
  • State Machine: A finite set of states and transitions where only one state can be active at a time.
  • Stack-Based State Machine: Same as State Machine but remembers past states so they can be retrieved if current state is interrupted.
  • Subsumption Architectures: A specifict type of agent architecture that separates the behavior of a single character into concurrently running layers of State Machines.
  • Terrain Analysis: Analyze the terrain of a game world in order to identify strategic locations such as resources, ambush points, etc.
  • Trigger System: Simple system that allows if/then rules to be encapsulated within game objects of the world itself.

Each one of these topics is further explained in the paper that you can find in the book AI Game Programming Wisdom 2.

Rabin, Steve (2004). Common Game AI Techniques. In Steve Rabin (Ed.) AI Game Programming Wisdom 2 (pp 3-14) United States, Charles River Media Inc.
0

Book: AI Game Programming Wisdom 2

AI Game Programming Wisdom 2
Various Authors, edited by Steve Rabin [2004]

Get the book on Amazon.com
Visit the AI Wisdom website
ISBN:1-58450-289-4



This book is the next iteration in the AI Game Programming Wisdom Series and as the first one, this one has a great collection of articles from a wide variety of topics. Specific topics in the book are: Pathfinding, Group Movement, Animation, State Machines, Architecture, Strategy AI, Sports AI, Scripting, Learning, Genetic Algorithms and Speech Recognition.

This series is amazing because each article found in the book provides a clear an concise way of implementing a certain technique in a game with easy-to-understand explanations. This book is also a great addition for any game AI programmer out there.
0

Two More AI topics on Serious Games

Animal-like AI behavior

I found this topic quite interesting because it can be applied to lots of different stuff. The most obvious one being programming the AI of in-game animals. Depending on the type of game, this can greatly enhance the player's experience. This is a must in games designed to teach about animals or simulations that involve animals. For example, the game WolfQuest could be enhanced with this type of AI, as the different animals in the gameworld would feel less scripted.

Another possible application can be in enemy behavior. The enemy can use animal - like behavior to hunt, ambush, escape, regroup, etc. depending on the player's actions. This could also make the game feel less scripted and more dynamic while preventing the player to "learn" the AI and exploit a weakness the programmer didn't consider.

Opponent Modeling

This is very similar to player modeling, where you need to classify the players in order to modify the game and create enjoyable experiences for everyone whether they are newbies or experts. The difference is that in opponent modeling, the objective is to modify the enemy's strategy to the player or even other AI controlled opponents. When an opponent is successfuly modeled, a rough estimation can be mado of what will happen next, so the AI could be prepared beforehand.

The gameplay value of this topic consists on forcing the player to change strategies instead of grinding the game with the same one over and over. This of course, makes the game more dinamic and entertaining.

References:
  • David Carmel and Shaul Markovitch. Opponent Modeling in Multi-agent Systems. In Gerhard Weiss and Sandip Sen, editors, Adaption And Learning In Multi-Agent Systems, volume 1042 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1996.
  • Schneider, Nicolas (2011). Animal and Genetic AI: A Combination To Improve AI in Video Games. Obtained in April 13, 2011 from Gameinformer: http://www.gameinformer.com/blogs/members/b/tognick_blog/archive/2011/04/08/animal-and-genetic-ai-a-combination-to-improve-ai-in-video-games.aspx
  • Kharkar, Sandeep V.; (2002). Simulating Real Animal Behavior. In Steve Rabin (Ed.) AI Game Programming Wisdom (pp 479 - 485) United States, Charles River Media Inc.
0

Paper: Simulating Real Animal Behavior

Simulating Real Animal Behavior
Sandeep V. Kharkar [2002]

I found this article really interesting because this is the first time I read about AI applied to animal behavior. This type of behavior is a little bit different from the usual opponent AI as to make the animals seem realistic.

The paper states that there are three different categories of animales in a game:
  • Ambient Animals (Ambient animals are used to enchance the environment of the game. They don't require heavy AI programming but they still require specific behaviors to make them seem real).
  • Secondary Animals (Secondary animals have limited interaction with the player. They need to be intelligent but somewhat limited so the interaction with them doesn't take the focus away from the main gameplay).
  • Primary Animals (Primary animals are the focus of the game. They usually have the most complex AI as they are the center of attention and probably a key part of a gameplay mechanic).
The author gives some tips to program the behavior of different types of animals like bugs, birds and fish. Also, he provides some insight what should be considered when programming each of the three kinds of animals in games.

For example, when programming bugs, you should consider that they never fly in a straight line, that they don't always flap their wings or that they try to avoid any moving objects.

This paper is a great starting point when trying to make the environment more lifelike as it gives a nice overview of what you can expect to achieve with AI programming.

The complete paper can be found in the book: AI Game Programming Wisdom.

Kharkar, Sandeep V.; (2002). Simulating Real Animal Behavior. In Steve Rabin (Ed.) AI Game Programming Wisdom (pp 479 - 485) United States, Charles River Media Inc.
0

Paper: Opponent Modeling in Multi-Agent Systems

Opponent Modeling in Multi-Agent Systems
David Carmel and Shaul Markovitch [1996]

Opponent modeling is an interesting way to allow the AI to behave realistically to different strategies. If you can create an accurate model of your opponent, you could be able choose your next actions based on what you predict your opponent will do.

In this paper the authors propose an opponent modeling algorithm based on Finite State Machines that can work in a multi-agent environment.

They explain an algorithm that can create a model of an opponent as a Finite State Machine based on previous actions taken in the game. The model is reinforced as data is being processed. When a counter exapmle is found, the model updates itself to try and match the real model. The full algorithm with proofs and thorough explanations can be found in the original paper.

The authors concluded that their algorithm is only a first step in the area of opponent modeling, but can be of great interest if further research is made.

Complete paper can be found here
David Carmel and Shaul Markovitch. Opponent Modeling in Multi-agent Systems. In Gerhard Weiss and Sandip Sen, editors, Adaption And Learning In Multi-Agent Systems, volume 1042 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1996.
0

Article: Animal and Genetic AI

Animal and Genetic AI: A Combination to Improve AI in Video Games
Nicholas Schneider [2011]

In this article, the author analyzes how to create challenge in videogames as to make them fun. He says that artificially creating challenge through inflated health bars, unlocable moves and one hit kills don't offer a sense of realism.

A nice attempt to solve this problem was Bethesda's Radiant AI system, in which the NPC's would make choices rather than perform scripted events. Still, Schneider considers that this system still feels scripted.

On the other hand, in FPS games like Halo, enemies act intelligently by trying to flank you, run for cover and sending search parties for the player. This also feels scripted as the player needs to pass through a specific waypoint to trigger certain behaviors.

The author proposes the combination of AI with animal like behaviors, which can be the hunting habits of wolves or the social structure of bees for example. The difference is that no waypoints and scripted events would be needed as the animal like behaviors themselves would kick in the moment they are needed or as each NPC sees fit.

Even now, the AI would feel scripted, so Schneider says that combining those behaviors with Genetic AI would provide a much dynamic and interesting experience. The AI would adapt to the player and adjust it's skills while applying such behaviors like predator skills (force the player into an area where the rest of the enemies can set an ambush) thus making the experience feel more like a real life exercise in survival and less like scripted enemy guidance.


Schneider, Nicolas (2011). Animal and Genetic AI: A Combination To Improve AI in Video Games. Obtained in April 13, 2011 from Gameinformer: http://www.gameinformer.com/blogs/members/b/tognick_blog/archive/2011/04/08/animal-and-genetic-ai-a-combination-to-improve-ai-in-video-games.aspx
0

Conference: Paris Game/AI Conference

The Paris Game/AI Conference is largest worldwide gathering dedicated to gameplay, character animation & artificial intelligence in game development, and we'd argue it's the most passionate event on the topic too — but we're a little biased. In 2010, the conference brought together leading developers from Europe and worldwide, and in total almost three hundred (300) people from all around the globe including programmers, designers, students and enthusiasts
.Check out the Paris Game/AI Conference
0

Even More AI Topics on Serious Games


Pathfinding
If the game involves a user programming agents and pitting them agains AI controlled agents, it is possible that some sort of pathfinding would need to be done as to allow the AI to reach the player in a believable manner. Implementing this topic would include things such as A*, Theta* and path smoothing.

Blackboard Architecture
This architecture seems to be really helpful when developing AI agents, as a platform that eases agent scalability and as a platform that enables inter-agent coordination, as well as dynamic logic changing with the addition and removal of Knowledge Sources. This topic would need to be further researched as there are already several blackboard architecture implementations out there for different kinds of problems.

State Machine For Non-Programmers Implementation
If the game involves teaching some sort of programmable agent, it should become apparent that we would need to implement some sort of state machine that is easy to use, easy to modify and fun to work with. This would probably lead to visual programming. Implementing this topic would include things such as abstraction/generalization of computer logic and the cognitive process of the player while engaging in visual programming.

In-Game Scripting Implementation
On the other hand, if we end up creating a game where the player would need to a more complex programming of the agent, a form of in-game scripting would be needed to facilitate this. This would have to be combined with other gameplay mechanics as to not make the game tedious in a 'create a solution, watch what happens, change the solution' cycle and make it more active and fun. The scripting language would have to be tailored to our game's needs.

GoCap
This is something I didn't know about but can be quite useful. Capturing the actions of different gamers and then having the AI replicating those actions can create a believable experience, as the AI would learn the little quirks that human players have that are difficult to emulate in a computer controlled player. The implementation of this topic depends completely on the style and objective on the game that will be developed.

Resources
  • McGlinchey, Stephen (2004). Enabling Computers to Play Like Humans. In Ercim News 57(1),14-16
  • Nash, A. (2010). Theta*: Any-Angle Path Planning for Smoother Trajectories in Continuous Environments.
  • Rabin, Steve (2002) AI Game Programming Wisdom, United States, Charles River Media Inc.
  • Isla, Damian; Blumberg, Bruce (2002) Blackboard Architectures. In Steve Rabin (Ed.) In AIGame Programign Wisdom (pp 333-344) United States, Charles River Media Inc.
0

Paper: Blackboard Architectures

Blackboard Architectures
Damian Isla and Bruce Blumberg [2002]

This paper explains a possible approach to handle coordination between different AI agents called "blackboard". This architecture references the physical blackboard that we are all used to.

A physical blackboard provides a shared space where the problem can be broken down and incrementally solved. Also, the group standing around the blackboard can break into smaller groups to solve different parts of the problem but still knowing how the others are going and being able to assist them if necessary.

A blackboard architecture consists on three basic elements:
  • A blackboard: A publicly read/writeable information display.
  • Knowledge sources: Components that operate on the information that the blackboard contains.
  • Arbiter: Given a single snapshot of the blackboard contents, the arbiter must decide which of the relevant knowledge sources to execute.

This system can be used as part of an agent architecture. The most notable improvement when using this architecture is that when the agent needs to be extended, the new modules just need to be connected to the blackboard and that's it. This could also help to morph an agent's behavior by adding or removing knowledge sources.

Also, this system can be used for agent-to-agent coordination. Depending on the type of game, the knowledge sources can represent different elements. The most important aspect of this architecture is to get the arbiter's decision making algorithm right.

The full article can be found in the book AI Game Programming Wisdom.

Isla, Damian; Blumberg, Bruce (2002) Blackboard Architectures. In Steve Rabin (Ed.) AI Game Programming Wisdom (pp 333 - 344) United States, Charles River Media Inc.
0

Article: Enabling Computers to Play Games Like Humans

Enabling Computers to Play Games Like Humans
Stephen McGlinchey [2004]

This article is a quick mention on how it might be possible to create an AI that behaves like a human.

McGlinchey states that AI players can be written with several different objectives. Some developers aim to develop AI players that are most likely to succeed in a game, others aim at producing players that will make the gaming experience more enjoyable and this means that the AI should behave like a human.

She says that there are two aspects of game AI that affect the gamer's experience: level of performance and style of play. This means that the AI must match the experience level of the player and that it must behave similar to how a human would play (AI players should not have superhuman reactions or be able to move in an impossible manner). Failing to correctly adjust any of those will make the experience less immersive and less enjoyable.

One way of solving this problem is a technique that is being researched called motion capture for AI. Which is basically training the AI with recorded data from human players, a process called GoCap (Game Observation Capture). The trained AI can then mimic the data that was used to train it.

The author suggests using Kohonen's Self Organising Map (SOM) in conjunction with the GoCap. In a simple game of pong, they were able to replicate some of the quirks that are present in human play, which can actually make the player believe that the opponent is intelligent and non-mechanized.


McGlinchey, Stephen (2004). Enabling Computers to Play Games like Humans. In Ercim News 57(1),14 - 16
0

Book: AI Game Programming Wisdom

AI Game Programming Wisdom
Various Authors, edited by Steve Rabin [2002]

Get the book on Amazon.com
Visit the AI Wisdom website
ISBN: 1-58450-077-8



This book is an amazing collection of AI related articles that focus on specific aspects of AI development. The great variety of authors and topics make this book a must have for game developers interested in improving their games thorugh AI.

The more than 70 articles contained in the book range from general purpose AI techniques to genere specific AI implementations. It also includes a cd-rom with implemented examples of the code that appears in the book.

Can the information in this book be applied in a serious game context? Probably not every single article, but depending on the type of serious game, many of them could be applied or easily modified to fit the needs of a serious game.
0

Paper: Building an AI Diagnostic Toolset

Building an AI Diagnostic Toolset
Paul Tozour [2002]

This paper explains one of those things that are rarely planned when developing an AI system: the diagnosis tools.

The author explains that having a good set of diagnosis tools can save a lot of time when trying to figure out what is the AI trying to do, plus it makes it easier for non AI-developers to understand and tweak the system if needed.

Two types of tools are proposed: AI Commands and AI Diagnostic Tools. The former can be used to change the state of the system and the latter can be used to view the internal state of the system.

Here are a few examples of the proposed tools:

AI Commands
  • Destroy (Eliminate a number of AI-controlled units).
  • Insensate (Make AIs unaware of sensory inputs).
  • Forget (AI forgets current target and loses all knowledge it possesses).
  • Modify State (Force the AI to excecute a specific behavior or tactic).
  • Switch player control (Allow user to take over an AI unit)

AI Diagnostic Tools
  • Unit AI state (If the system is a finite-state machine, display the state of any given AI subsystem).
  • View Pathfinding search (Show nodes looked at and the order they were searched).
  • View Current Target (Display arrow from selected AI unit to it's intended target).
  • View Sensory Knowledge (Draw a line from selected AI to any stimuli it notices, changing colors depending on the intensity of the stimulus).
  • View Past Locations (Draw connected lines indicating locations an AI has visited).

Aside from being useful as debugging and tweaking tools, they can also provide interesting functionality if implemented as game mechanics in a game where the player can "program" their units, for example, being able to analyze what's going on with Diagnostic Tools in-game and being able to alter part of the programmed behavior with AI Commands could make the game more active and less "program and wait too see what happens".

The paper can be found on the book: AI Game Programmming Wisdom
Tozour, Paul (2002). Building an AI Diagnostic Toolset. In Steve Rabin (Ed.), AI Game Programming Wisdom (pp. 39 - 45). United States, Charles River Media, Inc.
0

More AI Topics on Educational Serious Game Development

Expanding my previous post, I'd like to add some more topics I've found that could have some use in a serious game.

Procedurally Generated Levels

Automatically generating levels has the advantage of creating a great amount of levels without the developer having to program all of them. This can also help in a game to keep things fresh for many replays. The great disadvantage is that the levels might end up being awkward or not useful for the purpose of the game. This could be solved with an intelligent algorithm that prefers creating fun and useful content. But how would it know what is fun and what is not? Maybe a genetic algorithm that receives input from players instead of having a calculated fitness score could be one solution.

Opponent AI

How could I have missed this one. In about any game, having opponents to play with when no humans are around is nice, and the more human-like they behave, the better. Depending on the type of serious game, there might or might not be the need to include intelligent bots that play like humans, but even outside a Serious Game context, this topic is an interesting one.

Dynamic Scripting

Dinamically adapt the AI of a game can provide a boost in the entertainment it provides while improving the Enemy AI. Dynamic Scrpting allows the game to adapt to new or unforseen strategies used by players. This technique can be used in real time and its computationally fast, effective, robust, and efficient. Depending on the type of Serious Game, this technique can be used to moderate the material provided to the player to learn or to force the player to think of different strategies to defeat an enemy. This is also a topic that can prove interesting to implement in a Serious Game context.

References:
  • Mott, Ken. (2009) Evolution of Artificial Intelligence in Video gAMES: A Survey
  • Spronck, Pieter; Sprinkhuizen-Kuyper, Ida; Postma, Eric (2004) Difficulty Scaling of Game AI
  • Spronck, Pieter; Ponsen, Mark; et. Al (2006) Adaptive Game AI with Dynamic Scripting