As the troubled continent of Onich is engulfed by decay, an ancient foe returns – offering salvation. Join a diverse cast of characters to stave off the looming calamity... or unwittingly hasten its arrival!
https://youtu.be/-uTqFQlqVig
Hi all! Here's a more 'behind the scenes' look at something that I've recently been working on! In Wellspring, up until this point, all skills have required an actual target before they can be selected and queued up. We always wanted to have certain skills allow the player to manually position them and therefore, not require a specific target. Unfortunately, we didn't build out our skill system with this in mind initially, so there was a little bit of uh.. 'messiness' involved with implementing this basic first step.
For Bodom's skill Teleport Strike, we want the player to be able to position it anywhere within a certain radius, and potentially do damage if it's close to an enemy--but it can also be used as an escape route or gap closer. There were a few tricky parts to implementing this: the first issue isn't super difficult, but requires the skill to be confined to the movement radius. The other, more difficult part, is the restriction that you can't teleport on top of something else (this ain't no Philadelphia experiment)
Since the targeting area moves relative to your character and you can still move at the same time as the target area, these two issues combine to cause what I thought would be a nastier problem, where the target area gets 'pushed' by the movement radius and accidentally overlaps with a character or it gets pushed from a character and accidentally ends up outside the movement radius.
The quick and dirty solution, funny enough, is to just treat the skill as if it's an actual character. Since combatants automatically have these restrictions 'built in' (they can't move outside of their movement radius and can't move through other units), we just slap a Character component on the actual skill and give it an alternate method of control, IE, use the arrow keys/D-Pad to move the target area as opposed to WASD/analog stick movement for the actual characters.
There were a few other little issues to sort out, such as UI changes, backend targeting code (prior to this, skills couldn't execute at all without a target) and camera/character control (the target area needs to move relative to the camera, but skills are 'awakened' outside of combat, which uses a different camera), but I'm pretty happy with where it's at. I still haven't implemented the actual skill, but that'll be next on the list!