Difference between revisions of "Main Page"

From AI Product Manuals
Jump to navigationJump to search
Tag: Reverted
m
Tag: Reverted
Line 5: Line 5:


=== Infinite Axis Utility System ===
=== Infinite Axis Utility System ===
Dave Mark is well known in AI circles, particularly at the GDC AI Summit, as being a [http://intrinsicalgorithm.com/IAonAI/2013/02/both-my-gdc-lectures-on-utility-theory-free-on-gdc-vault/ proponent of utility-based AI]. While utility can be (and has been) applied to many different types of architectures for decades, he has developed a stand-alone architecture based entirely on utility mechanisms. Over the past 8 years, he has continued to improve this method and deployed it to great success in his contract work with a variety of companies. The Infinite Access Utility System was spoken about briefly at the GDC AI Summit in 2013 as his part of a multi-person talk entitled, [http://www.gdcvault.com/play/1018040/Architecture-Tricks-Managing-Behaviors-in "Architecture Tricks: Managing Behaviors in Time, Space, and Depth"]. (You can skip to 33:35 for the beginning of his segment.)
Dave Mark is well known in AI circles, particularly at the GDC AI Summit, as being a [http://intrinsicalgorithm.com/IAonAI/2013/02/both-my-gdc-lectures-on-utility-theory-free-on-gdc-vault/ proponent of utility-based AI]. While utility can be (and has been) applied to many different types of architectures for decades, he has developed a stand-alone architecture based entirely on utility mechanisms. Over the past 8 years, he has continued to improve this method and deployed it to great success in his contract work with a variety of companies. The [[IAUS|Infinite Access Utility System]] was spoken about briefly at the GDC AI Summit in 2013 as his part of a multi-person talk entitled, [http://www.gdcvault.com/play/1018040/Architecture-Tricks-Managing-Behaviors-in "Architecture Tricks: Managing Behaviors in Time, Space, and Depth"]. (You can skip to 33:35 for the beginning of his segment.)


Additionally, he spoke about it at length with Mike Lewis of ArenaNet in the 2015 GDC AI Summit specifically in regard to how it was deployed at ArenaNet for use in the GuildWars 2: Heart of Thorns expansion. (See [http://www.gdcvault.com/play/1021848/Building-a-Better-Centaur-AI "Building a Better Centaur: AI at Massive Scale"]) This 1 hour lecture also shows how the entire architecture works (at the time) as well as tidbits of some of the other technologies that were included in that game. Importantly, he demonstrates via a time-lapse video how the modular data-driven design of the IAUS enables designers to construct unique AI packages for their NPCs in as little as 7 minutes. Additionally, as a result of this modular data-driven system, core behaviors authored by any designer can be added to any character with ease. Because all the behaviors are allowed to "play together" as they are scored, it is simply a matter of the designer selecting which ones the NPC should have at it's disposal.
Additionally, he spoke about it at length with Mike Lewis of ArenaNet in the 2015 GDC AI Summit specifically in regard to how it was deployed at ArenaNet for use in the GuildWars 2: Heart of Thorns expansion. (See [http://www.gdcvault.com/play/1021848/Building-a-Better-Centaur-AI "Building a Better Centaur: AI at Massive Scale"]) This 1 hour lecture also shows how the entire architecture works (at the time) as well as tidbits of some of the other technologies that were included in that game. Importantly, he demonstrates via a time-lapse video how the modular data-driven design of the IAUS enables designers to construct unique AI packages for their NPCs in as little as 7 minutes. Additionally, as a result of this modular data-driven system, core behaviors authored by any designer can be added to any character with ease. Because all the behaviors are allowed to "play together" as they are scored, it is simply a matter of the designer selecting which ones the NPC should have at it's disposal.
Line 12: Line 12:


=== Modular Scalable Influence Map System (Imap) ===
=== Modular Scalable Influence Map System (Imap) ===
Much like the IAUS above, our Imap system has been worked on for over 6 years and has been used in a number of shipped titles. Over that time, this architecture has been extended and optimized. However, it's core beneficial use has remained intact and improved upon. It is a general knowledge representation system that allows for analysis of spatial, tactical, strategic, and ecological situations. This is used for NPCs to easily query information about the distribution of dozens... or even hundreds... of other agents in the world on the enemy team, their own team, neutral agents or objects, or any combination of the above to get information about a specific location (e.g. "am I crowded?" or "how much threat am I under right here?") or to find locations where something should be performed (e.g. "where is the safest place to stand?" or "where should I use this area of effect spell?")
Much like the IAUS above, our [[IMAP|Imap system]] has been worked on for over 6 years and has been used in a number of shipped titles. Over that time, this architecture has been extended and optimized. However, it's core beneficial use has remained intact and improved upon. It is a general knowledge representation system that allows for analysis of spatial, tactical, strategic, and ecological situations. This is used for NPCs to easily query information about the distribution of dozens... or even hundreds... of other agents in the world on the enemy team, their own team, neutral agents or objects, or any combination of the above to get information about a specific location (e.g. "am I crowded?" or "how much threat am I under right here?") or to find locations where something should be performed (e.g. "where is the safest place to stand?" or "where should I use this area of effect spell?")


As with the IAUS, the Imap system exists a stand-alone black box that can be installed into a project codebase and calibrated to whatever spatial and coordinate system the existing project runs on. Additionally, many of the queries for commonly used information and code for commonly used movement and targeting locations exist already as part of the install. New Imap queries can be completed usually in only a few lines of code. Often in minutes. As planned future work, the system allows for data-driven implementation of these queries so that designers can mix-and-match their own combinations of influence map data for specific behaviors without programmer involvement.
As with the IAUS, the Imap system exists a stand-alone black box that can be installed into a project codebase and calibrated to whatever spatial and coordinate system the existing project runs on. Additionally, many of the queries for commonly used information and code for commonly used movement and targeting locations exist already as part of the install. New Imap queries can be completed usually in only a few lines of code. Often in minutes. As planned future work, the system allows for data-driven implementation of these queries so that designers can mix-and-match their own combinations of influence map data for specific behaviors without programmer involvement.
Line 19: Line 19:


=== Robust Tagging System ===
=== Robust Tagging System ===
To support the above technologies -- and for other things -- we have developed a robust tagging system. This allows designers to tag objects and NPCs to provide very useful contextual information that the AI can understand. For example, tagging a campfire as FIRE, HEAT_SOURCE, LIGHT_SOURCE, SOCIAL_AREA may affect how NPCs view it. They may move toward it at night because they know it is providing light or they may move toward it when they are bored and want to chat with other NPCs. It can also be used to trigger specific animations such as holding out hands to warm them. This would only be done when close to an item tagged HEAT_SOURCE and only when facing it. The benefit of this is that simply adding the HEAT_SOURCE tag to another object (such as a fireplace or a stove) would cause the NPCs with that behavior to automatically use that object in the same fashion.
To support the above technologies -- and for other things -- we have developed a [[Tag System|robust tagging system]]. This allows designers to tag objects and NPCs to provide very useful contextual information that the AI can understand.  


=== Text Dialog System ===
=== Text Dialog System ===
For text based games that do not want repetitive text dialog, we have developed a dialog system that is entirely designer-driven. With it, a designer can specify a near infinite number of parameterized text statements that can then be filled out with relevant information from the game. For example "Greetings, {0}." can have parameter 0 specified to fill in the other character's name, their race, their class, etc. Each of those would be specified by the designer in the tool. By having different phrases with different parameters to be filled in, a huge amount of variety can appear on the screen rather than the same phrases over and over.
For text based games that do not want repetitive text dialog, we have developed a dialog system that is entirely designer-driven. With it, a designer can specify a near infinite number of parameterized text statements that can then be filled out with relevant information from the game and filtered appropriately for use by different types of characters.  


== References ==
== References ==

Revision as of 20:23, 28 September 2021

This is the place to access all the descriptions, information, and usage manuals for all of Intrinsic Algorithm's game development technology. Some of these will be filled out slower than others and they will be updated as technology changes or features are added. You will also find references to lectures and documents about these products as well as game and AI development in general.

Technologies

The following is a list of the technologies that are offered by IA and have information contained in this section.

Infinite Axis Utility System

Dave Mark is well known in AI circles, particularly at the GDC AI Summit, as being a proponent of utility-based AI. While utility can be (and has been) applied to many different types of architectures for decades, he has developed a stand-alone architecture based entirely on utility mechanisms. Over the past 8 years, he has continued to improve this method and deployed it to great success in his contract work with a variety of companies. The Infinite Access Utility System was spoken about briefly at the GDC AI Summit in 2013 as his part of a multi-person talk entitled, "Architecture Tricks: Managing Behaviors in Time, Space, and Depth". (You can skip to 33:35 for the beginning of his segment.)

Additionally, he spoke about it at length with Mike Lewis of ArenaNet in the 2015 GDC AI Summit specifically in regard to how it was deployed at ArenaNet for use in the GuildWars 2: Heart of Thorns expansion. (See "Building a Better Centaur: AI at Massive Scale") This 1 hour lecture also shows how the entire architecture works (at the time) as well as tidbits of some of the other technologies that were included in that game. Importantly, he demonstrates via a time-lapse video how the modular data-driven design of the IAUS enables designers to construct unique AI packages for their NPCs in as little as 7 minutes. Additionally, as a result of this modular data-driven system, core behaviors authored by any designer can be added to any character with ease. Because all the behaviors are allowed to "play together" as they are scored, it is simply a matter of the designer selecting which ones the NPC should have at it's disposal.

The IAUS exists as a stand-alone black box that can be installed into a project codebase with minimal work. We have both C++ and C# versions based on the needs to the client. In theory, minus any specific custom language or library issues, this means that this core AI system can be installed on day 1 and work can begin on hooking it up to world information, existing behavior and animation code, and behavior logic can be authored in the tool we have developed for that purpose.

Modular Scalable Influence Map System (Imap)

Much like the IAUS above, our Imap system has been worked on for over 6 years and has been used in a number of shipped titles. Over that time, this architecture has been extended and optimized. However, it's core beneficial use has remained intact and improved upon. It is a general knowledge representation system that allows for analysis of spatial, tactical, strategic, and ecological situations. This is used for NPCs to easily query information about the distribution of dozens... or even hundreds... of other agents in the world on the enemy team, their own team, neutral agents or objects, or any combination of the above to get information about a specific location (e.g. "am I crowded?" or "how much threat am I under right here?") or to find locations where something should be performed (e.g. "where is the safest place to stand?" or "where should I use this area of effect spell?")

As with the IAUS, the Imap system exists a stand-alone black box that can be installed into a project codebase and calibrated to whatever spatial and coordinate system the existing project runs on. Additionally, many of the queries for commonly used information and code for commonly used movement and targeting locations exist already as part of the install. New Imap queries can be completed usually in only a few lines of code. Often in minutes. As planned future work, the system allows for data-driven implementation of these queries so that designers can mix-and-match their own combinations of influence map data for specific behaviors without programmer involvement.

Dave covered an overview of his Imap system in a lecture in the 2018 GDC AI Summit entitled, "Spatial Knowledge Representation through Modular Scalable Influence Maps".

Robust Tagging System

To support the above technologies -- and for other things -- we have developed a robust tagging system. This allows designers to tag objects and NPCs to provide very useful contextual information that the AI can understand.

Text Dialog System

For text based games that do not want repetitive text dialog, we have developed a dialog system that is entirely designer-driven. With it, a designer can specify a near infinite number of parameterized text statements that can then be filled out with relevant information from the game and filtered appropriately for use by different types of characters.

References

Consult the User's Guide for information on using the wiki software.

Getting started