So if “Abilities” are the parent, high level category, right below that would be “Talents” and “Spells”. I decided to start working with the latter, for no particular reason. It was really a coin flip. Lucky for me, things are coming along quite well so far.
The first thing I started looking at where visual effects for the spells. Now, anyone who knows me would call me cheap. I like to say I’m fiscally responsible. Either way, when it comes to this game, I will not be holding back at all. However, since I’m still in the prototyping phase, I have been hesitant to purchase assets, assets that I know won’t be used long term. Now, if I can’t find anything free, I’ll certainly pay up, but best believe, I’ll spend a bunch of time looking for the free stuff 🙂
- Particles/Materials/whatever needed for actual VFX
- Sound Effects
- VFX Icons
All of these are bundled up into nice prefabs. For me, all I have to do is spawn the VFX prefab, and well, that’s it! Of course, I have tweaked some of them for my own purposes, like increase the size. But overall, I am very happy with this package, as it’s everything I could ask for and more for my prototype. Also, as I’m writing this blog entry, when I started looking for the links to the asset’s author, I realized they had many more free assets, ones I may take advantage of. Good stuff.
Once I had all the assets in the game, it was all about the actual coding changes to my existing systems to allow for spells to work. For now, it is sort of hacked in, where if I know a spell was used, the same attack animations are used, and then I just apply the VFX on the target, and apply the same damage I would have applied if it was a melee attack. In the coming days, I’ll start refactoring this code into a proper interface.
Another thing I’ve been making changes to are the range/AOE range of the current spells. As with everything else in the game, these are all defined in ability.json. This is obviously more of a spell balance design thing, but I still needed to support these things. For the most part, I’ve supported range for melee attacks, so that a guy with a throwing axe has a range of 2, while someone wielding a sword has a range of 1.
AOE ranges are a totally new beast, something I had to code from scratch. Nothing too difficult, mind you, but I had to touch a lot of files in order to make it work. Here’s an example of a spell that has an AOE range of 1.
There’s still more work to do, like showing multiple targets in the “Head 2 Head” confirmation panel that pops up before the spell is executed. But I’m on the right path.