Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

[RELEASED] Extreme AI Light (and belatedly announcing Extreme AI) Personality Engine

Discussion in 'Assets and Asset Store' started by Jeff_Georgeson, Apr 26, 2015.

  1. Jeff_Georgeson

    Jeff_Georgeson

    Joined:
    Apr 26, 2015
    Posts:
    18

    Announcing (waaay after the fact; the full version was released in February--my marketing skills are definitely not extreme) the release of Extreme AI and Extreme AI Light, realistic personality engines for games and other projects! Available from the Asset Store (light version at http://u3d.as/cKB; full version at http://u3d.as/bCj).

    Extreme AI enables developers to create personalities for non-player characters that evolve during the course of a game based on interactions and events. Based on the Five-Factor model of personality, Extreme AI breathes life into your NPCs. Note that Extreme AI is "live" during the gameplay itself; NPCs' personalities are modified on the fly as they interact with players, other NPCs, and even the world around them.

    A character’s personality changes are individualized; that is, her attitude toward the entity causing the change is changed more than her attitude in general, and she will remember these feelings about that entity (and others) throughout the game. This “attitudinal memory” helps the NPC act realistically; if she is a shopkeeper, she may begin as generally neutral, no real like or dislike for her customers. If a player comes in often and is always nice to her, always polite, her attitude toward that player will change significantly, and her overall feelings towards new customers will skew slightly as well (although not nearly as much). Conversely, if another player starts coming in and is always nasty to her, her attitude toward that second player will change significantly in the opposite direction, and her overall feelings toward strangers will adjust back toward her original feelings (or get worse; she may feel slightly betrayed by her own feelings)—but her attitude toward the first player will continue to be significantly positive.

    Extreme AI can be used in any type of game to tie an NPC's reactions to an underlying personality: RPGs are the most obvious, but the engine can be used in a sports management game to guide the reactions of non-player managers or team members, or in a similar fashion in a game like Civilization, or in a number of other situations. It can be integrated with many other Unity assets, including Rival Theory's RAIN (see our YouTube video demonstrating this using two minotaurs).

    The Extreme AI engine is based in part on nearly five years of research not only into the Five Factor model itself, but also into the correlation between the underlying facets and our 37 chosen emotions/attributes/response types, and into the elasticity of the facets of human personality over time. Our return result range is similar to that used in the actual NEO PI-R test used to rate people using the Five Factor model.

    NPC queries return the character’s actual strength of response, based on her personality at that time, how she feels about the person/place/thing with which she is interacting, and taking into account human variability (that is, an exact response is not 100% predictable, as when a generally stubborn person decides to not be quite so stubborn this one time). The variability is not just a random occurrence; it, too, is based on personality factors.

    The full version of Extreme AI includes advanced methods allowing the developer to examine a character's raw response type values, the underlying facet values, and individualized adjustments vs specific players and other NPCs, both in-game and through the editor.

    The "Light" version of Extreme AI has much of the same functionality as the full version, including the ability to save personalities and use the engine in a published game. The Light version differs in the following ways: 9 editable personality emotions/attributes/response types (instead of 37); 14 preset personalities (instead of 28); and no user-created presets. It also lacks any of the advanced methods for viewing raw character data.

    Extreme AI is currently used in the SteamSaga RPG series (under development) to add depth and texture to NPC interactions, and in They Vote! to control 100 individual voters.

    Please feel free to download a copy of the user manual and the quickstart guide for more details and examples. You can also find a demo of the basic setup on YouTube. You can also ask us a question via our Forums.

    Note that users of any version 1 of Extreme AI are entitled to free updates to the latest version 1 (for example, updates from v1.0.0 to v1.1.0). Contact us for more information.
     
    boysenberry likes this.
  2. Ariegos

    Ariegos

    Joined:
    Jun 20, 2015
    Posts:
    24
    Hi, just watched your video and the part where the good and evil minotaurs face off was very interesting. However I don't understand how you post game events that might alter a creature's personality. Is there list of set values you use like being nice or mean? I was also wondering if the creatures can interact with and change each other in the game world. Does your program simulate every creature in the game world? Hard to tell from your videos what the functionality is.
     
  3. Jeff_Georgeson

    Jeff_Georgeson

    Joined:
    Apr 26, 2015
    Posts:
    18
    Yeah, the video examples demonstrate just the simplest functionality (for getting started with Extreme AI). In answer to your questions:

    1. Anytime there is a game event that affects a character (whether that be in a conversation, like the player says something really annoying to the NPC, or an action, such as the player repeatedly hitting the NPC and this making the NPC really angry), you can make a call to the personality engine by using AIReturnResult (if you're checking how the character would react right now; the personality itself can change or not, depending on how you call it) or AINoResult (if you're just changing a value in the personality, but don't need a result right now). For example, assuming you've set up an instance of the NPC's AICharInfo called "myAICI":

    Code (CSharp):
    1. //if player keeps hitting NPC
    2.      
    3. int amIAngry = myAICI.AIReturnResult("playerName","anger"); //adds to NPC's anger toward player and finds out how angry he is right now
    4.  
    5. //amIAngry ranges from 0-4
    6. switch (amIAngry)
    7. {
    8.     case 0:
    9.         //NPC's reaction if not angry at all with the player
    10.         break;
    11.     case 1:
    12.         //NPC's reaction if barely angry with the player
    13.         break;
    14.     case 2:
    15.         //NPC's reaction if averagely angry with the player
    16.         break;
    17.     case 3:
    18.         //NPC's reaction if quite angry with the player
    19.         break;
    20.     case 4:
    21.         //NPC's reaction if extremely angry with the player
    22.         break;
    23. }
    There are many ways to call the engine; please see the User Manual for more examples.

    2. Yes, you can give all the creatures in your world personalities (or choose only a few, it's up to you), and they can affect each other (for instance, instead of using the player's name in the method call above, you could use any NPC or creature name). Even world events can affect the NPCs--just create a "player" named something like "world_events" and use that in the method calls.

    Thanks for your questions, and feel free to ask more!
    Jeff