Im currently working on, as title says, “Slightly advanced Ability/Spell Blueprint system” since i didnt want to purchase current one from marketplace. So currently I have fully networked base functionality like :
- Creating ability for a controller(ai or human doesnt matter)
- HUD management (setup button icon, manage cooldown progression, play animations on buttons, activate abilities on button click)
- Targeting management(like appearing mouse cursor, creating decal visual for indicate aoe for AOE based abilities)
- Playing animations and getting notified when they ended (casting or not casting based on montage ended/interrupted or notify firing)
- Doing some other basic stuff like spawning projectiles and dealing damage.
Now im start to develop “slightly advanced” functionality, like changing Character status(stuned, frozen etc) and Changing Characters Stats which is showed me a design issue. Since everything “works on interfaces” for being able to inject ability into anything, i need to create interface for each Stat which i want to get acces to(mana life etc) and stat mechanique which i want to use is base bonus and increase(if i want to add 10 to max character life via ability and increase life value for a 10% it require setup of three extra values like base life, base bonus life and life increase bonus for end result being mathematically and RPG correct) And all this stuff would require from a blueprint system user create and setup like that a lot of variables(20 total mb) which is looks kinda clunky.
Also, in basic features i want to include some functionality for secondary effects like burning ground (damage over time) or frozen/stunned affects, “an aura” base ability(toggle) and a lot of “ability nodes” which would act like builder for multi step spell functionality (adding functions like “explode”, “spawn projectile” + “deal damage in cone” and “drain life” to your blink ability would make it explode, spawn projectiles which would deal damage to everything behind hit target in cone and give a character life in only 4 functions and few wires.
So questions is, what do you guys think about this Stat system and should i create this extra functionality to support buff abilities but make it clunky to full setup or make it really basic but easily expandable? And what You think about “ability builder” system with those extra function library.