Bugfix: Sorted Item 'Reserved' being ignored on locating items where appropriate
Bugfix: Sorted display issue with population region inspector at runtime
Bugfix: Sorted issue with items not properly being ‘reserved’ and set ‘in use’ by agents
Bugfix: Sorted issue with building projects
Enhance: Added Custom inspector for Character pool
Enhance: Added Custom inspector for Character pool Service
Enhance: Added Custom inspector for Character pool Workplace requirement
Enhance: Added support for requirements in Character pool entries
Enhance: Added validation check before setup of bespoke agents at runtime (this should stop them from being runtime issues if there is a problem, warning will be produced in console)
Enhance: Clean up of some naming and general code quality
Enhance: Added default Agent template which is used to populate character pool data entries
Enhance: Added default Character Pool Data
Enhance: Improved default pool id selection with real time updating the editor (delete the current default, will switch to a valid option)
enhance: Added in Dynamic Getting Started Help Window
enhance: Added Getting Started support for example scene
enhance: Added Getting Started support for new scenes
enhance: Added Getting Started support for Behaviour Tree Editor
enhance: Added current action display for agent inspector
enhance: Added Behaviour Tree candidates list for agent inspector
enhance: Added Behaviour Tree display (work and needs) for agent inspector
enhance: Added Needs being displayed for agent inspector
enhance: Added formatting system
enhance: Added pause system (classes which are pausable inherit IPausable interface, when subscribed to a pause class when that class is paused it propagates)
enhance: Added pause button to agent inspector
enhance: Add handling of workplace having no work roles
enhance: Added warning for workplace having no work roles
enhance: Added early error on play if work behaviour is missing
enhance: Added menu handling if no work behaviour is set
enhance: Added the ability to set 'time of day' and 'day' within the module settings menu
enhance: Made setup between different pipelines with example scenes more straightforward (use the correct package in the file to have it automatically applied)
Created Ownership service to manage agent items access
Merged buildings to have common type (easier api usage and mangement)
Add agent building relationship system to allow for more complex types
Test coverage massively increased to improve update confidence and speed (80 to 275)
New version of Node Groups (now called Behaviour Trees)
Renamed Job System to Work System
File structure improved
Behaviour Tree elements and UI elements separated out
Shortcut Menu grouping has been updated and easier to use
Updated Behaviour Trees all use dictionaries (improved performance)
Created Building UI to allow for easier and better experience
Reset system for building system
Created new mapping system for actions and naming (allow for future expansion of the system)
Common Engine for processing Behaviour Tree systems
Created Module System (Create settings which can be loaded in and out easily)
Renamed Civil Region to Population Region Service
Created Region Service which handles an ‘area’ of the world (can be created with any collider/s)
Created custom UI for Population Region service (includes details such as max population size, calculated in real time)
Setup a Unity utility process which improves consistency of the product
Cleaner and quicker Behaviour Tree loading and setting system (no more recompiling)
Created common id creation process and interface
Created custom Enumerator Service which allows for any script to run coroutines
Created character pool service (these can have more than one character pool group which can have as many gameObjects for your agents as you want)
Setup a Time service which handles time and days, easily accessible from the module service
Spawn Service which will support more than one type of world placement of agents (currently only support random)
Created general orchestrator service which can take any process (both need, work and rendering run through this single class now)
Added easier bespoke agent setup, add a class; drag the two buildings needed and select the job type
Nearly everything now has tooltips (excluding some older menus and behaviour tree)
Added an eventing system for agents instead of continues checking and updating system
Created an applicator pattern; agents now have classes to apply effects to them (movement, rotation etc) to allow for more expendability and options going forward
Building zones are now expanded, centre can be set at present with more options coming soon
Created fully support version upgrading (way easier to implement and will allow going forward updates from x versions back rather than current - 1)
All objects within the system are now stored in repository services, this means less in world costly calculations which should improve performance
Better interfaces between all systems, easier to add your own code or to use existing classes
enhance: Added ability to trigger interaction once per a 'use' loop
enhance: Added in the ability to trigger animations on Items when used
enhance: Added in 'Handle point' on Items which can be used to offset the item to help with positioning when they are used
fix: Removed bug from WorkController when Need System is not enabled
enhance: Added in animation 'collection' system (can have an array of animations for each action)
enhance: Added in animations being able to have a 'start', 'middle' and 'end' animation
enhance: Added in the ability to smooth rotate agents
enhance: Added in the ability to have an animation play on rotating of agents
enhance: Added in idle, run and rotate animation setting through a interface within the editor
enhance: Added in the ability to change idle, run and rotate animation at runtime
enhance: Added in the ability to have base animations change based on conditions and triggers
enhance: Added in the concept of 'Animation Groups'
enhance: Added in the ability to have agent speeds be different (setting within the global settings which is a +/- applied - i.e. 0.2 will be -0.2 and +0.2 range from the speed setting)
enhance: Added in an inventory system; agents can now carry as many items as you wish
enhance: Added in the 'Slot' system; visual show items on your agents
enhance: Added in the 'reserve' system, this acts like the 'In Use' from before
fix: changed 'In Use' to be when the agent is actually using the item
enhance: Improved item deleting; items should only ever be deleted using the AIOrchestator
enhance: Tidied demo scenes
enhance: Added in versions for Node Groups for updating
enhance: Added in three different action length modes; free (animation based), range (between two points) and set (hard cut off)
enhance: Added in animation set creation at runtime having two different modes: Order (works down the group)and Random (Any set of animations)
enhance: Added the ability to have rigid animation sets or mix and match across groups
enhance: Added in a UI library for the editors to allow for better consitency and end user experince
enhance: Added in an auto updater, simply copy your resource file across and on start up you will be prompted to update, nothing else needed
Added in Bespoke NPCs, these are characters placed by the developer and will be linked into the Civil AI System
Fixed bug with Mounting Action (Now any item can be mounted, item selection on the action defines what item)
Handled errors within parts of the Editor Windows
Created from the Ground up the Flowchart system with some quality-of-life improvements
Flowchart Graph performance and scale has been massively improved
Flowchart Graph Import function added, design node groups separately on a smaller scale and experiment more easily, when done just add them into your larger setup
Flowchart Graph scaling and resizing improved
Flowchart Graph Nodes restructured to have a better flow when creating
Flowchart Graph on Save now automatically sets the Data up on save
Flowchart Graph Switching between types is now quicker and easier, no need to reload the last one
Flowchart Graph Styling is more in keeping with Unity and easier to understand
Flowchart Graph has been designed in a more modular way making future additions easier
Performance Gains (In testing we saw 18%-41% average fps impovements - Dependent on scenario)
Refactoring to allow for easier switch to ECS when it is available
NPC culling based on range from Camera
Orchestrator system allowing for more control over when updates run
Dynamic NPC update rates (E.g., further from camera characters get less updates)
Improvements to allow for Off screen simulation support (items and npcs positions are stored within the orchestrator)
Performance based Example scenes
New Settings screen to fine tune the asset for your needs
Max batching of NPCs to provide a smoother experience
Fixed bug with switching of controllers
Fixed bug with rolling back of iterators
Added in support of custom Actions (Pass in an action object and flag as custom, this will allow for the action to be done but not progress any iterators)
Added in a new action ‘LOCATION_ENTRANCE’, dependent on the controller called from will either make the NPC go home or to their workplace
Major improvements to locating of objects making most actions cheaper to perform
Render control component to allow for easy stopping of rendering of objects
Interactor has new behavior allowing for spawning of items based on an item becoming used or not
Renamed Manager to 'Overview Manager' for better clarity
Added new option for exporting in AI Flowchart allowing for exported group to also be setup and ready for use in the scene
Added Local workplace work time which can overwrite node job work times
Added the ability to allow job types to not need to head to workplace entrance on start of their job
Fixed Random point within zone action bug
Updated file system to support both MacOS and Windows
Updated Overview Manager (was called Manager) to have scroll bars
Fixed spelling mistake in Civil manager
Fixed ownership system throwing null exceptions in some circumstances
Added Discord link within the Overview Manager
Added Settings system to allow for more settings within CIVIL-AI-SYSTEM
Added NavMeshAgent interface which allows for easier setup of Nav systems (feel free to reach out if you setup your own for packages and I can include them in future updates for all)
Added Settings section within Overview Manager which allows for setup of Nav Agent
Added in the Need System – define what your NPCs need and how to achieve it with no need to code
Global Weighting System – Allow for granular weight of actions across controllers allowing you the designer to say which action is most important between work and needs
Local Weighting System – Allow weights to be set on each node within a level allowing for more control (Includes two new weighting iterators)
Overhauled and Rebuilt Ownership system –Items can now be owned by houses, workplaces and NPCs and each action can be defined to use these item pools as well as local area.
Improved Demo Scene to create and assign layers if they are missing so no need to setup anything on import (It is still recommended to use the ‘Fix Scene’ action in the Manager)
Added Item Interactor – Easy enable and disable other objects based upon if an object is in use or not
Type field added to Item – Group objects based upon their type, these can be used within the actions in the designer
Some refactoring allowing for future development work
Removed the need for the Global Civil Manager class
Improved loading of Civil Data
Added in Initial version of Room System – Used to assign personal objects to NPCs
Updated Editor Manager to improve usability and readability by having more defined styling and adding in tooltips
Optimizations to item discovery
Fixed issue with entrance points having problems with prefabs in some cases
Improvements to Prepopulation system making it more reliable
Fixed issue with Building project - Added '#if UNITY_EDITOR' flag around editor sections
Added in a prepopulate world function - Allows for removal of process at start of scene, can increase performance and improve continuity between loads
Added a 'Pause' function to the NPC's - this allows them to stop what they are doing and will continue like so with their action after the pause is up (and during work hours) - Wiki section can be found here
Fixed issue with out parameter 'actualID' - Functionallity has been checked and looks to be working, hotfix does seem the correct way to go
Added in a 'Fix Scene' action within ''AI Manager - Performable Actions' - this sorts out the layers of objects within the active scene (Wiki has been Updated with this)