Hello
I’m trying to figure out how to make it easy for designers to create abilities in my game.
I’m aiming for a system where you can add subsets of data (that I call modifiers) to an ability DataAsset. Most of my abilities can be separated in small individual behavior. For example:
-show this visual,
-Spawn here
-Constantly move in this direction
-Do X amount of damage at a specific rate
-etc.
In my case, the game will have a lot of abilities (between 50 and 100) and they aren’t meant to have vastly different behaviors like you would have in a game where your character would have a limited number of abilities. What I wish to achieve would be a system where each ability are defined threw data asset using modular pieces of information.
What I mean by that is, for example, if I want to create a fireball attack, I would create an FireballAbility DataAsset and then add the following ability modifiers to it:
-Particule effect (show a particule effect)
-Movement (move the ability in a specific way)
-life time (define when to destroy self)
Each modifier would showup in the DataAsset with it’s own set of settings (ex: Movement has a direction and speed field). When the game is played and an ability is used, I will go threw each modifier and call their execute() to modify the ability.
This might be a bit to much, and I know that I could simply have all the possible fields directly on the Ability DataAsset, but I was wandering if there is a way to achieve what I explained above.
Thanks in advance!