Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 02 Jan 2002
Offline Last Active Yesterday, 01:27 PM

Posts I've Made

In Topic: AI for an active time based combat system

14 June 2016 - 03:40 PM

I've never heard of any commercial games using fuzzy logic before. But the utility system mentioned above is broadly equivalent to fuzzy logic in most ways, in that as it generates a continuous value for each behavior based on several distributions of input values. In fact, from a designer's point of view, it's potentially almost identical - it's just the underlying mathematics that are likely to differ.


The main difference is that in FL, you define your defuzzification thresholds on an individual input. Those areas map input to a selected output to some extent. It is difficult to map multiple inputs into a defuzzification zone, but it can be done. (I wrote an article about a way to do this with 2+ axes for AIGPG 4.) When you get into n-dimensional space, the model is a bitch and a half.


That's why I came up with the IAUS because it is so much easier to combine an arbitrary number of inputs into one scoring function.


The other main difference is that FL provides you an output for that input whereas the IAUS (and other utility systems) can simply provide a score. That way, it is easier to weigh dozens or hundreds of actions against each other by comparing scores rather than the authoritative model that FL uses ("this input is N, therefore our action is A").

In Topic: AI for an active time based combat system

14 June 2016 - 03:35 PM

A combination of Fuzzy logic and blackboards tends to be best when you need your AI to be autonomous, and react intelligently to a variety of a scenarios.


For example... it's pretty fuzzy about the best time to use a healing spell or item. You don't want to heal if you've been lightly damaged, it probably wouldn't be on your top priority if you're moderately damaged and the DPS you're taking isn't much. You'll concider it if you reach fifty percent... and then you will mostly likely use it if you're critical... but you might not if it looks like you can win on the next turn.


Fuzzy Logic was used in FEAR and S.T.A.L.K.E.R. (though stalker's AI tends to be garbage). Starbound also uses fuzzy logic, but as far as I know, only for NPC interactions and your pet.



Yeaaah... no one that I've ever heard of uses fuzzy logic in the textbook definition. I can't tell from your example if you are referring to fuzzy logic or, as Kylotan said, utility systems.


Either way, Fuzzy logic was NOT used in FEAR or STALKER -- Goal-Oriented Action Planning (GOAP) was. Those are completely different types of systems. FWIW, even the creator of GOAP doesn't recommend using it anymore. I've never heard of Starbound... perhaps you were talking about Star Citizen? (Which doesn't use Fuzzy Logic or GOAP.)


So yeah, you swung and missed a few times on that post, sir.

In Topic: how would you do this w/ utility based AI + influence maps ?

14 June 2016 - 07:08 AM

Threat or proximity. I use them for 2 different things. But yes...

In Topic: how would you do this w/ utility based AI + influence maps ?

13 June 2016 - 03:45 PM

The Imap system is used most often for 2 different things:

  • What is the value of the location I'm at (or a target is at)?
  • Where is the highest/lowest place in the map?

In this case, the former suggests when you should flee (by being an input into the flee decision) and the latter suggest to where you should flee if you decide to.

In Topic: AI for an active time based combat system

13 June 2016 - 03:42 PM

In the lecture, you used the example of having 6 considerations with values (1, 0.9, 0.9, 0.9, 0.9, 0.9).

Original score without compensation = 0.59

Why's the value for score in the following formula 0.9? I originally thought it was the original unmodified score; my understanding is you multiply original scores to get 0.59, and plug that as value for score.

ModificationFactor = 1 - (1/ number of considerations)
MakeUp value = (1 - score) * ModificationFactor
FinalConsiderationScore = score + (MakeUpValue * score)


In the example on the graph slide, there are 6 considerations each at 0.9f.


ModificationFactor = 1 - ( 1 / 6 ) = 0.833

MakeUpValue = (1 - 0.9) * 0.833 = 0.083

FinalConsiderationScore = 0.9 + (0.083 * 0.9) = 0.975


0.975 *

0.975 *

0.975 *

0.975 *

0.975 *

0.975 = .859 = final decision score


Compare to 0.9 6 times = 0.59