(Part of Godot Gameplay Systems)
- Open the asset store
- Search for "Gameplay Attributes"
- Install and enjoy!
or
follow the instructions here
Documentation is available in the docs folder.
The addon provides a set of resources and a node that can be used to define gameplay attributes with ease and flexibility. These nodes can be added to any scene in your game to define the attributes of the objects in that scene.
- Attributes define, well, attributes.
- They can also be used to define derived attributes (attributes that are calculated from other attributes).
- Attribute sets contain the attributes definitions (aka, they describe which attribute an attribute container has).
- Just use them as they, 99% of the time you will not need to customize them.
- Attribute containers expose attributes life-cycle, values and signals to the node-tree.
- Same as above, just use them as they are and you will be fine.
- Attribute buffs are used to modify directly (or transiently) the attributes values.
- Buffs can be instantly applied, have a duration, can be stacked, can be unique, can be removed if transient, etc.
- They can also be used to modify multiple attributes at once by overloading a couple of methods.
- GGA is fully decoupled from an ability system (you can find it here), while GAS is mostly coupled to it (if you need only one of the two things, you still have to deal with the other).
- You can define the attributes you want to use inside the editor (or by scripting, or with c++ or your favourite language) , while in GAS you have to define them in C++ first.
- GAS does not provide an easy way to define derived attributes, you need to use calculation classes inside GameplayEffects.
- GGA is not networked by default, but you can easily add it to your game (with a couple of RPCs), giving you the flexibility to choose if and how to handle the replication for attributes.
- GGA can be used in any game, while GAS is mostly used in RPGs and shooters. You want to build a rts with deck-building features? Go on, the whole system does not hold you back.
- A scene can have multiple attribute containers, while in GAS you have to use a single attribute set for each actor (not really a feature, but if you need it you can use it).
- It's dead simple and consistent, you need to learn a few concepts, and you are ready to go. You can use it in your game without having to learn a whole new system.
tools not rules.
If you want to contribute to this project, please read the CONTRIBUTING.md file.
Don't be shy, this project is open to any kind of contribution!