Over the past few days, I’ve spent some time laying the groundwork for ability implementation. This consisted of a few things:
- dynamic loading of all abilities from an external JSON file
- associating above loaded abilities to units (which are also loaded from an external JSON file)
- tying in abilities to existing radial menu framework
- getting some free, prototype icons
The question still remains: How am I going to implement this ability system?
On a high level, yes, different units will have different abilities, and will be able to use them in combat. All the standard issue stuff. It’s some of the other details that are still up in the air. Some of these are:
How Are Abilities Earned?
- automatically at predefined levels (i.e. Magic Missile earned at level 3)?
- ability points are given out at every level up, allowing you to allocate them to how you see fit?
- ability points are earned in combat and you can spend them however/whenever you like?
If I was thinking about this back in 2004 when I made my first game, I’d probably lean towards the first bullet point. From a game balancing standpoint, knowing what abilities the player will have helps out tremendously. Think something like the first Dragon Quest.
13 years later, and I have grown a lot as a game designer, and I understand the importance of allowing players to dictate their character progression, so I’m definitely leaning towards the final 2 options. Final Fantasy Tactics employed a similar system.
How Are Abilities Organized?
- can you see new abilities you will be able to learn in the future?
- individual categories for each line of ability?
- linear progression, or tree?
For the first bullet point, I believe the answer is a resounding yes. If I want to give players the option to construct their characters as they see fit, well, they’ll need to know what the future holds so they can plan properly.
With the question of individual categories, that all depends on how many abilities I’ll have in the game. If there are lots of options to choose from, they have to be split up in some manner. However, if it’s a small set (per character, per class, etc.), then maybe this isn’t needed. Too early to tell.
Finally, with regards to how the progression is displayed, there’s the linear solution, used in Dragon Age: Origins:
Then there’s a more tree like solution used in Dragon Age: Inquisition:
I’m leaning towards a tree, but thankfully, don’t have to make that decision right now.
Before I get to all of this, however, I’ll need to finish implementing some more of the ability system. Up next, in fact, is the implementation of selecting the ability and then being able to select a target. On the face of it, it’s easier, but the bulk of my work will be dealing with range and area of effect range. The former should be easy enough (I already do that with normal attacks), it’s the AOE stuff that will take a bit longer. AOE could be things like:
- standard AOE (i.e. circle around the target)
- straight lines
I’d like to come up with a solution that can handle of of these existing ones (as well as future ones). It should be fun.