July 19, 2019

MyWorld Meetup - 6/15/19

Discussion:

  • No updates right now, but wanted to talk a bit about AI in MyWorld (Note: This is still highly tentative and mostly in planning/design stages right now. Any features discussed may change in the released version. In addition, most of the AI system is intended for MyWorld’s support for games, not the MyWorld Virtual World.)
  • GOAP (Goal Oriented Action Planning) is a common and very powerful way to give NPCs behavior – the solver is given the current world state, desired state, and a set of actions that it can use, and it makes a plan for how to reach the goal state.
    • Traditional GOAP solvers used in game development are pretty limited and exhibit poor scalability, practically limiting them to working with a small (< 10) number of actions.
    • On a project outside of MyWorld, we’re experimenting with a more powerful type of solver. If successful, we may be able to use a clean-room implementation in MyWorld.
  • Q (Zauberin) – Will the AI be able to be “package” behaviors for specific NPCs?
    • Yes, our plans for the AI involve a high degree of customizability for individuals and for groups.
    • Our goal is to support “personalities” of sorts, allowing NPCs to grow and adapt over time. These would model attitudes, personality traits, and the flow of information from one NPC to another.
    • If successful and given complex enough logical models, the AI could possibly allow NPCs to exhibit emergent behaviors and develop distinctive personalities according to the conditions they live in.
  • Q (Zauberin) – With NPCs adapting over time, would it be possible to model NPCs going insane?
    • Yes, it would be possible. From early on, we’ve planned heritable traits and “volatility” scores, allowing traits to change both subtly and dramatically according to time and the events the NPC encounters. This could be either spontaneous (which would be quite rare) or could be influenced with script bindings to “tip” the NPCs mentality over time.
      • Even without direct intervention, given enough time such a system has the potential to produce everything from extreme pacifism to terrorism in an NPC population (assuming limiting factors are not put into place).
  • Q (Zauberin) – Would the AI support giving specific traits or volatility scores to specific in-game character races?
    • Yes, tribal/racial/species differences are critical. The traits/mood/personality system won’t need to know anything about the race/species it’s simulating – all it would need is the individual’s (or group’s) traits and it can go from there, and different race/species/individual NPCs will be able to have distinctive traits/moods/memories, etc.
    • For example, with sufficient model complexity, NPCs could engage in political behaviors (war, peace, etc).
  • Q (Zauberin) – Will there be a system for interaction between an NPCs and regular players?
    • Yes, NPCs will likely be modeled with moods and emotions that can influence their behaviors. A critical part of this is the ability to respond to events in the world around them, both from other NPCs and from players, as well as to form memories and impressions.
      • To prevent an explosive growth to the AI dataset, NPCs need to be able to meaningfully forget – memories need to either be incorporated into fuzzy statistical generalities, or insignificant memories need to be forgotten in favor of memories of major events.
        • Q (Zauberin) – Could NPC memory (good memory or forgetfullness) be tuned?
          • Yes, that’s something that would definitely make sense to expose as part of the AI trait system.
  • Q (Zauberin) – Some games have disguise systems where players can disguise themselves to get away with unsavory behaviors that would normally lower their reputation with NPCs. For example, say the player is in a village and is playing as a thief, would the AI be able to handle the players disguising themselves?
    • This would require overriding how the AI translates events in the area into perceptions. It would be possible to support this, probably through scripting support for the AI, but probably would not be a directly supported core feature as it’s quite specific to individual games. We’ll investigate this as we integrate scripting into the AI system.