Edit of asset "Utility AI (GDExtension)" Accepted
Old/Current | New/Edit | |
---|---|---|
Title | Utility AI (GDExtension) | |
Description |
A set of nodes for making AI agents, with support to utility-based behaviour and state selection. Created using GDExtension and C++. The extension contains: - Utility-based AI Agent Behaviour nodes - Utility-enabled Behaviour Tree nodes (can also be used as a regular behaviour tree) - Utility-enabled State Tree nodes for hierarchical state management - Node Query System for generalized Utility-based node queries, with time-budgeting Binaries available for Windows and Linux. Web/Wasm and (unsigned) MacOS binaries are also included and are currently experimental. The linked github release zip-file contains only the gdextension files. Please download the example project as a separate zip-file from the Releases page or using this direct link: https://github.com/JarkkoPar/Utility_AI_GDExtension/releases/download/v1.6/utility_ai_example_project_1.6.zip The Utility AI GDExtension contains utility-based nodes for creating AI Agent Behaviours and a generalized Node Query System for performing "find top N nodes" queries. The Agent Behaviour, State Tree and the Behaviour Tree nodes can be used to create AI agents to your games, and the Node Query System to add searching and ranking of any type of node to find, for instance, the best tile to move to, the best cover point to take, the best buff to use, etc. The Node Query System has a time budgeting feature, which will spread out the queries to several frames when the given per-frame time budget is reached (i.e. it will keep your FPS up even with heavier queries). To get started, open the included example project. It contains examples that will help you learn to use the nodes: - Example 1 is a simple example with an AI agent that has very simple behaviours to follow the mouse cursor. - Example 2 is a more elaborate example with an AI agent that has multiple behaviours and has two AI teams fighting for their lives. - Example 3 shows a better way of using actions to make your actions more re-usable between AI agents. - Example 4 shows how to use the UtilityAIArea2DVisibilitySensor to let your AI see and hear player actions in the game world. - Example 5 shows how to use the Behaviour Tree nodes with the Node Query System, and demonstrates the time budgeting feature. - Example 6 is a 3D example that shows how to create a simple cover system and an AI that tries to hide behind cover, using the AI Agent Behaviours, Behaviour Tree nodes and the Node Query System. This repository contains the binaries and example project only. If you want the source code, follow the link in the readme.md to the source code repository. Tutorials can be found here: https://github.com/JarkkoPar/Utility_AI_GDExtension/tree/main/tutorial Full release notes for the latest release can be found here: https://github.com/JarkkoPar/Utility_AI_GDExtension/releases/tag/v1.6 |
A set of nodes for making Utility AI agents. Created using GDExtension. The linked github release zip-file contains only the gdextension files. Please download the example project as a separate zip-file from the Releases page or using this direct link: https://github.com/JarkkoPar/Utility_AI_GDExtension/releases/download/v1.3/utility_ai_example_project_1.3.zip The Utility AI GDExtension contains utility-based nodes for creating AI Agent Behaviours and a generalized Node Query System for performing "find top N nodes" queries. The Agent Behaviour nodes can be used to create AI agents to your games, and the Node Query System to add searching and ranking of any type of node to find, for instance, the best tile to move to, the best cover point to take, the best buff to use, etc. The extension adds the following Agent Behaviour nodes to your project: - UtilityAIAgent: Main node for AI agents, represents an AI entity. You add Sensors and Behaviours under this node. - UtilityAISensor and UtilityAISensorGroup: The Sensor node is used to gather information about the game world for the AI agent (distances to enemies, ammo, health, etc). The Sensor Group is used to group and aggregate the sensor data. - UtilityAIBehaviour: The various things the AI agent can do are called behaviours. Each behaviour is defined by the Considerations and Actions it contains. - UtilityAIBehaviourGroup: for grouping behaviours for easier activation/deactivation - UtilityAIConsideration and UtilityAIConsiderationGroup: The AI Agent uses considerations to do its reasoning on what kind of a score each behaviour gets. Consideration Groups are used to combine several Considerations (and Consideration Groups) to create more complex scoring logic. - UtilityAIAction and UtilityAIActionGroup: These nodes define what actions a behaviour contains and the sequence for executing them. - And 9 additional, specialized sensor nodes for visibility and angle checks and more. The extension also adds the following Node Query System nodes to your project: - UtilityAINodeGroupSearchSpace - UtilityAINodeChildrenSearchSpace - UtilityAIArea2DSearchSpace and UtilityAIArea3DSearchSpace - UtilityAICustomSearchCriterion - UtilityAIMetadataSearchCriterion - UtilityAIAngleToVector2SearchCriterion and UtilityAIAngleToVector3SearchCriterion - UtilityAIDistanceToVector2SearchCriterion and UtilityAIDistanceToVector3SearchCriterion - UtilityAIDistanceToNode2DSearchCriterion and UtilityAIDistanceToNode3DSearchCriterion - UtilityAIDotProductVector2SearchCriterion and UtilityAIDotProductVector3SearchCriterion - UtilityAIDotProductToPositionVector2SearchCriterion and UtilityAIDotProductToPositionVector3SearchCriterion The SearchSpaces are used to define a set of nodes as a target for a search query, and the criterias are used to filter and score them, to find the Top N nodes. To get started, open the included example project. It contains four examples that will help you learn to use the nodes: - Example 1 is a simple example with an AI agent that has very simple behaviours to follow the mouse cursor. - Example 2 is a more elaborate example with an AI agent that has multiple behaviours and has two AI teams fighting for their lives. - Example 3 shows a better way of using actions to make your actions more re-usable between AI agents. - Example 4 shows how to use the UtilityAIArea2DVisibilitySensor to let your AI see and hear player actions in the game world. - Example 5 is a 3D example that shows how to use the Node Query System with a simple cover system to create an AI that tries to hide behind cover. This repository contains the binaries and example project only. If you want the source code, follow the link in the readme.md to the source code repository. A tutorial can be found here: https://github.com/JarkkoPar/Utility_AI_GDExtension/tree/main/tutorial IMPORTANT NOTE! Since version 1.2 the gdextension files have been moved to the addons/utility_ai/bin folder. If you are moving from Version 1.1 to Version 1.2 or newer, please delete the bin-folder from your godot project root and then install the latest version of this extension. |
Category | Scripts | |
License | MIT | |
Repository Provider | GitHub | |
Repository Url | https://github.com/JarkkoPar/Utility_AI_GDExtension | |
Issues Url | https://github.com/JarkkoPar/Utility_AI_GDExtension/issues | |
Godot version | Godot 4.1 | |
Version String | 1.6 | 1.3 |
Download Commit | 218073e2e64ff68add0bd25640107d01a8bf3d49 | de391810749cfd771067ebe119ba13846511a98a |
Download Url (Computed) | https://github.com/JarkkoPar/Utility_AI_GDExtension/archive/218073e2e64ff68add0bd25640107d01a8bf3d49.zip | https://github.com/JarkkoPar/Utility_AI_GDExtension/archive/de391810749cfd771067ebe119ba13846511a98a.zip |
Icon Url |
https://raw.githubusercontent.com/JarkkoPar/Utility_AI_GDExtension/main/utility_ai.png
|