GameplayAbility vs custom system for a melee combo mechanic

I am adding a melee combo mechanic to my game. Think Devil May Cry, Nier Automata, or Dark Souls. I’ve heard very good things about the GameplayAbility plugin, and I’ve started messing around with it. However, in the back of my head I keep telling myself I should just rely on my own implementation.

My idea would be like this: Player spams one of the face buttons, the attacks will keep executing. Press another face button, now we are doing a different kind of melee attack. Of course, there is a limit to the length of combos.

Anybody have any experience with the GameplayAbility system? I’m going to be adding buffs and such as well, and that’s where I’m hung up on. I don’t know if I should let the GameplayAbility take control of the combo mechanic, or go the hybrid route and have my own custom implementation of the melee that calls the GameplayAbility system whenever I need to add a buff such as attack boosts triggered by doing a specific attack.


The GA is very robust and if you take the time to go through its source code, placing breakpoints and figuring out how it works and why it does things the way it does you can learn a lot, but the same goes for rolling your own system, even if the end result isn’t going to be as refined at first. If you plan to have online multiplayer, the GA does have a significant advantage: its networking code is not something one could come up with without tons of experience and iterations.

Yea, the multiplayer and its robustness is what sold me. My first impressions with it were that it was primarily used just for buffs and such, however upon more searching around it seems to accommodate melee quite well. It’s a shame that it’s unsupported with limited documentation. Thanks! :cool:

Yeah, it can be used to drive pretty much any kinds of “actions” and “interactions” players and other kinds of things can perform in a very organized/data-driven way.

The lack of official docs is a bummer, indeed. The wiki article is a good starting point, but to make full use of it I strongly recommend setting aside some time to do some experiments and step through the source code to get some idea of how things are glued together. The whole way it deal with input activation and prediction, for example, is very inspiring.

Well, I’ve decided to go ahead with GameplayAbility to control all my player’s actions. If I understand correctly, GA is an entire system to drive the activation behind a player’s actions. Once I understand it well enough, perhaps I could add an extensive entry or a tutorial.