I’m excited to announce Total AI has just been open sourced (MIT License)!
It is in Alpha so expect bugs/issues and breaking changes.
Summary
Total AI (TAI) is a complete free open source agent AI Framework for Unity. Its goals are to provide an easy to prototype, flexible, fully customizable, and performant framework for a broad array of AI types and for a broad array of game types. Eventually TAI hopes to have a vast library of community created types that anyone can use to jumpstart their AI.
The core of TAI are Agents who can to sense the world, create memories, plans, and act in order to either reduce their Drives or based on the action with the most utility. This is accomplished with its Type System and Plan/Mapping System. It is also easy to extend and customize through ScriptableObject’s pluggable data and logic ability. This makes writing and plugging in your own custom AI logic easy.
Links
Website: http://totalai.org
GitHub: GitHub - TotalAI/TotalAI: A Complete Open Source Agent AI Framework For Unity
Discord: Total AI's Server
Agent Logic Flow Diagram
Features
- Designed from the ground up to be take advantage of Unity’s unique features.
- Customizable - Usually will just need to implement a few methods to create a new type.
- Quick to Prototype - easy to switch between various AI types.
- Flexible - ScriptableObject Type system allows for lego-like building parts.
- Multi-Agent - Agent Events allow for multi-agent coordination.
- Intelligent division of Agent’s functions - Planner, Decider, Sensors, Memory, Movement, and Animation.
- World Objects have states, state transitions, grow, built, damage, change appearance, and inventory recipes.
- Inventory - Slot based inventory system that allows any Entity to be in any other Entity’s inventory.
- Factions - Groups of Agents, can be figured into the Planning.
- Drive (Motivation) based Planning - Agents will choose most pressing drive to lower.
- Complex logic for Drive level changes - faction synced - attribute synced - custom equation changes.
- Target Factors - Utility AI like selection process for choosing best target and best inventory target.
- Selectors - Advanced selection logic for choosing values to use in a Mapping.
- Mapping - Core unit of planning has Target Factors, Utility Modifiers, Input Conditions, and Output Changes.
- Behavior/Decider Logic - Allows for complex logic for running and interrupting Mappings.
- Mulitple supported AI types - GOAP, Utility AI, and FSM - Deep RL using ml-agents coming soon.
- Attributes - Generic value types for Agents.
- Roles - Allows for Actions and Drives to be changed dynamically.
- Tags - Useful for controlling Mappings and can also be used to create relationships between Entities.
- TypeCategories/TypeGroups - Attach multiple categories to Entities - Generalizes Mappings.
- Agent View Editor - Agent properties, realtime history logging and plan tree visualization.
- Setup Editor - Quick Basic Setup for a Project using the Setup Editor.
- Custom Inspectors - Extensive use of custom inspectors for increased ease of use.
- Extensive Documentation with goal of having 100% documentation coverage.
Requested Feedback
For everyone that tried out Total AI, thank you! I apologize for any bugs/issues encountered. You can report them here or on the Total AI GitHub Repo Issues.
Please let me know if you feel like TAI is missing some core features or any parts are confusing and/or not documented well enough. Also let me know if there are certain topics that you think deserve a video tutorial.
Contribute
If you love AI and Unity please consider helping out with Total AI! All contributions are welcome.
Thanks!
Zac