Combat / combos / library, interface, or both?

Hi all.
sort of a Poll here.

Finally got to the point where making a proper combat system is a must…

The point of the system is that it will function for both characters and AIs.

I’m keeping things very simple on purpose, also because I would like to transform this into a free tutorial in the future.

Now, the question is…
most if not all of the functions like Attack, Defend, etc. Will contain very similar if not downright identical code.
play montage, line trace or collision trace the hit. Send a success/fail as return.

As such, it would seem that implementing a function library for those offers the most reusable implementation.

on the other hand, it (sort of) precludes the use and avoidance of casting via blueprint interface.
I could ofc use both and call the function in as the interface function call, however this seems a bit redundant?

What are the popular ways out there / suggestions / and or additional considerations here?
/ is there any other way to standardize bpi implementations with pre-made functions?

Why don’t you want to use the Gameplay Ability System?

I don’t think so. But with C++ you can indeed create default implementations.

There are probably many tutorials showing how to use (including official channel ones) game play ability.

There is almost nothing about how you would go and create things from 0, which is also a bit more important to my project.

Might look into the default c++ implementations. Seems like a nice feature to have even if not exactly tutorial material.

There is actually no good and especially complete (free) tutorial about the Gameplay Ability System in the internet. But if you want to create it from 0, maybe you want to orientate on this system? It basically consists of a **actor component **which holds **attributes **like health, strength etc. and **abilities **that apply **effects **with modifiers like health -= 50.0 to the component.