Dani AI’s Revolution

GDC 2017 (otherwise known as Game Developers Conference) is going on right now with amazing talks and keynotes on everything related to game development!  While that is going on, we made some major improvements to our Dani AI system as well as to its editor, thanks to the feedback that we received from our testers!

Editor’s UI Overhaul

We updated the interface to focus on quickly providing information on what the agent is doing at a glance.  Much of our inspiration came from various interfaces from games including Tom Clancy’s The Division, Endless Legends, and Civilization V.

Why games?  Other than the point of Dani being an AI framework for games, interfaces in games are great at displaying information to glance at, since the focus is not particularly on the interface itself, but is on the game world and what’s going on in it.  It’s a lot easier to glance in the corner and see how much ammo you have left, than to push a button and have  a ton of weapon information show up.  As a result, we’ve done the following:

  • Icon support for nodes
    • Quickly associate images with the node’s purpose
    • Customizable with one line of code
  • Action nodes now show what state they are in on runtime
  • Unity Pro skin is now supported
Dani_UI_Overhaul.PNG
The new interface, a 180 on using the default Unity skin.

Additionally, we’ve made various quality-of-life improvements on the editor, such as selecting multiple nodes and copy+paste functionality, with full undo support.  Keyboard support is available to, if you want to use Ctrl + C and Ctrl + V to copy and paste.

Selecting Multiple Nodes.gif

Selecting multiple nodes in order to move or copy and paste.

Utility AI Support

There are times when a character needs to be less robotic and do more than “if A is true, then do B”.  We call those agent “humanoid characters”, and a utility-based approach suits well for those kind of characters.  Utility-based AI is another way to determine which actions an agent can take via using something along the lines of “how much will A make me do B?”  The more A influences B, the more “useful” A is.

Utility can be defined using curves, and what we’ve done is adding an Animator Curve (used in Unity!)  to visually define the usefulness without needing to work out and invent new equations.

Utility.PNG
A utility inspector.  Curves can be defined by clicking “Function”.
Utility curve.png
Unity’s editor for defining an animator curve.

As always, huge thanks to our testers who are willing to test the framework with us and implement Dani AI into their own projects.  If you have any questions or would like to test Dani AI, please shoot us an email at info@initialprefabs.com or find us on Facebook or @initialprefabs on Twitter.

 

-initialPrefabs Team