Demox AI #2 – Sensors

I’ve made some relatively large updates to AI behaviours and sensors before the summer arrived- something that might sound familiar to you who follow me on Twitter, since I’ve shown some of these things there already. Haven’t posted any development logs touching the subject though, primarily since I tend to do other things than sitting in front of the nerd-station when the snow finally melt… anyways, let’s get on with it!

Dynamic Point System Behaviour

I’ve talked about the DPBS earlier already, if not you can find the post HERE, the AI in Demox will continuously evaluate their current situation and perform actions relevant to the conditions of said situation.
A new behaviour has been added to this system, to equip items found near the AI agent and to throw the equipment if it’s beneficial for the AI agent.

Clip showcasing both new AI hearing sensor, aswell as AI item useage behaviour

A quite simple behaviour but it opens up for more combat challenges, since AI who can collect weapons will increase their damage output. Also, if the AI can throw the weapon they can do so if the player tries to run away from them- giving them a ranged attack opportunity.


Situational Awareness

Furthermore, I wanted my AI to be a bit more aware of their surroundings, earlier the player could run and jump around right behind the AI and they wouldn’t notice a thing- two new sensors have been implemented, namely, “Smell Sensor” and “Sound Sensor”. Two components that simulate exactly what they sound like.

Smell Sensor

The Smell sensor is not used by all AI, at first I implemented it only for the Maradeur monster since it has no eyes. Another primary way of detecting hostiles was required so the smell sensor felt appropriate. Recently I’ve also used it for other creatures to some extent.

The way it works is that characters in the game feed the game master logic with some information at regular intervals. First, their own smell– some AI can determine what creature they’re facing by their smell. Second, a value to determine how far the character’s smell can be detected is sent. Information about the current area the character is in is sent aswell and the world position of the character when the smell data was registered.

Area and Character smell volumes
The Maradeur

The idea is that some areas with strong smells should cloak a character’s smell- not completely but for a pre-defined percent of the character’s scent range.

An example is in an area with very strong smells, a character who has a scent range of 8 meters would receive a 75% smell-cloak benefit, resulting in a reduced scent range of 2 meters, therefore making it alot harder for other AI to detect by smell. This can be seen in action in the attached Twitter-post to the left, the red circles represent the player character’s scent range. When entering different area volumes ( colored boxes ) the size of those red circles are reduced.

As can be seen in the video the trail of smell information left behind the player shrink over time.

So in order for the AI smell sensor to make use of this information it must first be collected from the Game Master, all registered smell information is filtered to find only information relevant to the AI, ie. smell data with a location reference within x meters of the AI’s world position.

The “x meters” is the smell sensors detection range, while the detection range is not printed in the video shown here it can still be noticed since the AI does not have to be inside the red circles to start investigating a smell. This is because only the sensors detection range volume have to intersect with the smell information’s volume, not the character itself.


Sound Sensor

The sound sensor was implemented since I found it weird that as the player you could jump and run around right behind an enemy and they’ld be completely clueless about what was going on behind their back. All AI characters in the game now use sound sensors, essentially it work the same way as my smell sensor– characters and actions happening in the game feed the game master with data containers holding information about the sound: noise radius (volume), origin (friendly, wildlife, hostile, combat, environment, unknown) and world position.

The AI regularly check the noises registered within the range that they can hear and depending on how the AI character is set up it will interact with the noise.

Combat sounds will make all combatant characters investigate, while non-combatants will get scared, try to hide, or run away from the sound. Hostile sounds ( primarily monster voices & footsteps ) will agitate friendly AI, and scare most wildlife AI, vice verca for friendly sounds, wildlife sounds ( animal voices & footsteps ) is ignored by friendly AI and agitates some of the hostile AI characters. Environment and unknown-flagged sounds depend alot on what type of sound is registered, but these two sound types are either ignored or investigated.

GIF Snapper 0.1.02 Release

Publishing a new version of GIF Snapper that solve some awkward issues detected in 0.1.01. GIF Snapper is available here.

0.1.0.2 Update Log

Updates –

-Removed two-step creation of GIFs. Capturing a GIF now only require one single user action.
-The frame used to set desired capture bounds is renamed to “Screen Capture Bounds”
-Button to apply screen capture bounds was recolored to green
-Created a hotkey for .gif capture. Pressing LCtrl+F12 now captures the .gif. Application window can now be
minimised when performing the action

Fixed –

-If resolution and capture bounds were not the same value, the resulting .gif file had non-desired size. Resolution property removed, it’s now always the same as Screen capture bounds size
-Fixed issue with the application corrupting the defined Screen capture bounds and frame-related user settings
after capturing a .Gif

Solotility 0.1.23 Release

I noticed some awkward issues in Solotility after publishing the previous version, fixed them as fast as I could- new version (0.1.2.3) is available here.

0.1.2.3 Update Log

Updates –
Reduced the size of the Comment Writer
Reduced size of the Interime Goal control

Fixed –
-Fixed issue with image list not updating when adding new images to an item
-Fixed issue with Item Link list scaling horizontally, completely destroying the Item Editor, making it near impossible to use

Solotility #6 – 0.1.22 Release

As I’m sure that I’ve mentioned in alot, if not all, previous posts concerning Solotility, most of my dev-time is spent building Demox- I’ve managed to get some time to fiddle with Solotility aswell though- which to me is a good thing since I’m using the tool myself for my own project management.

With that said, I’ve just released v0.1.2.2 with some new features, updated behaviour and bug fixes!

Head over to the Files page to download v0.1.2.2

0.1.2.2 Release Log

Features

Update Log Generator – Save a text-line when closing an item, all text lines will be printed to a .txt document when an update log is built

Tag List Popup – Display a list of all tags that already exist in your solution from the Item Editor

Interim Goal Tracker – New widget that makes it possible to track interim goals or build progress

Updates

Item Naming Conflict – Items that share the same name with an already existing item will either replace the original or append an integer at the end of the name

Improved Text Formatting – An easier tag-library has been implemented and text formatting is more consistent

Now possible to move catalogs within the Solution Outliner by right-clicking them

Widget DisplayMessage Board, Item Filters, Item Search widgets have been docked to the main window, other custom widgets will appear on the dashboard

Images attached to the items are now added to an image-gallery inside the Item Editor. Previous method of printing them inside the text editor had inconsistent results and sometimes also caused an application crash

Fixed


[ Item Template Manager ] – Fixed Null Reference Exception beeing thrown if the user clicked an empty space in the item template list
[ Item Editor ] – Fixed issue with “Edit Content” button remaining highlit if checked when deleting an item
[ Data Management ] – Fixed issue with used solutions not appearing in the “Recent Files” list on the Welcome Screen
[ Item Editor ] – Fixed minor glitches when editing user-created item templates.
[ Dashboard ] – Fixed issue with the Database Statistics field displaying wrong item sums
[ Dashboard ] – Fixed issue with Database Statistics not beeing updated when creating, closing or disposing items
[ Item Editor ] – Fixed issue with empty item links beeing added to an item if the “New Item” event is cancelled during Item Link Management