I’m working on a small Action-RPG similar to a bad clone of Diablo and I’ve now started to think about how I want the skill system implemented. I have some ideas on how I could do it, but I also think it could be good to hear how other people implemented a skill system.
My plan:
Skills are GameObjects which when Instantiated perform their scripted behaviour.
These GameObjects are build from different components which makes up the entire skill.
Hierarchy:
-
Skill (Required in all skills, in charge of updating the components)
-
Effect (What happends when the skill hits something. For example, damage, heal, buff, etc.)
-
Projectile type (How the skill is deployed and how it hits the targets. For example, projectile, ground target, AoE projectile etc.)
-
Example: Fireball
-
Effect: Damage & Debuff (burning)
-
Projectile type: Projectile (Maybe AoE projectile)
The benefit of this system which I can see is that is that it’s easy to create a skill when the entire system is in place, even for someone not super into programming.
But I’ve sketched up a small foundation of this method, and it get messy quick.
Another way of implementing skills that I can see is that every skill is it’s own separate class/script just derived from a base skill class. It is less elegant, but might be easier to implement but harder to maintain as the system expands.
Question:
Is my plan a valid way of implementing skills or am I thinking to big?
How have you implemented skill systems in the past (If you wish to share)?
Thanks in advance!