I find a lot of people are talking about Gameplay Ability System, and I’ve even had it come up as a crucial need in several job interviews. In response, I’ve started implementing GAS in one of my existing games just to see what all the fuss is about, and I still don’t get it.
It seems to me that GAS and actor components are both basically an ECS, just implemented in different ways. GAS has a lot more boilerplate to get it set up, and there’s this wall of lingo. Abilities, tags, attributes, blocks, etc. I’m still not seeing what the advantage is. What does GAS actually get us that makes this learning curve worth it? Why not just use good, old-fashioned components for abilities?
Here’s the documentation if you didn’t already see it. So the way it works is exactly that- it’s some pre-built things to kind of get you going if you wanted to skip some steps.
Why not just use good, old-fashioned components for abilities?
Abilities - GAS have quite adequate support for those abilities’ networking, including local prediction and rollback(if set up properly). it’s quite a big feature.
Another convenient notable feature: ability’s tags that determine the interaction rules between different abilties\other effects.
Also i like Attributes\GEs - while writing custom attibutes system isn’t really difficult, but this one is already implemented(and integrated with other GAS parts). Notable feature: support of temporary modifiers to attributes.
For singleplayer game there are less reasons to use GAS, so it’s fine to use simpler custom systems if they suit your needs. Though nevertheless when you get used to GAS it isn’t a bad idea to use it for singleplayer either.
You are not the only one who has noticed many jobs requiring GAS. I don’t quite get it either, since while GAS is useful for a range of game types, it seems to me custom systems would be better suited for others. Looks like we should all learn it anyway, since someone has decided its requirement-worthy.