Haytam95
Active member
Hi !
I've been having this doubt since day one, about how to separe things that should be in an Ability and things that should be in their custom gameobjects and work outside character solution.
The Ability system is extremelly powerfull, and that is also a risk of having a character that does "Too many things" that aren't actually related to it.
I've three examples of Abilities that I've created:
Terror
Terror detects if the character is facing some kind of ugly thing (or enemy or whatever) and updates the terror value in the AttributeManager (That is used by another system then to update the sound).
While this is somehow related to the character, is more related to the player actually... The character doesn't change it's behavior because of the terror thing (Just some camera effects) and if the character is an AI then it really is worthless.
Health Visualizer
It just updates an Animator param based on the character current health. With that value, the animator changes the character idle animation.
Aggro
Aggro detects if some enemy is discovering the character and starts chase music. (Again, related to the player not the character).
These examples are pretty easy to separate, but: What would be the golden rule?
How are you managing Abilities vs custom gameobjects? You use always abilities? Always gameobjects?
I've been having this doubt since day one, about how to separe things that should be in an Ability and things that should be in their custom gameobjects and work outside character solution.
The Ability system is extremelly powerfull, and that is also a risk of having a character that does "Too many things" that aren't actually related to it.
I've three examples of Abilities that I've created:
Terror
Terror detects if the character is facing some kind of ugly thing (or enemy or whatever) and updates the terror value in the AttributeManager (That is used by another system then to update the sound).
While this is somehow related to the character, is more related to the player actually... The character doesn't change it's behavior because of the terror thing (Just some camera effects) and if the character is an AI then it really is worthless.
Health Visualizer
It just updates an Animator param based on the character current health. With that value, the animator changes the character idle animation.
Aggro
Aggro detects if some enemy is discovering the character and starts chase music. (Again, related to the player not the character).
These examples are pretty easy to separate, but: What would be the golden rule?
How are you managing Abilities vs custom gameobjects? You use always abilities? Always gameobjects?