UE5-like advanced tag system.
ODtian opened this issue · comments
Is your feature request related to a problem? Please describe.
Useful when filting items, players or effects, such you want to get all enemies that have buff, just query "buff", not "buff.a", "buff.b"...
Describe the solution you'd like
Define all tags as a tree, and each tag is a path in the tree, and tags always match their descendants tags.
Describe alternatives you've considered
Godot built-in group system, but it is more compatible with editor, and doesn't provide much useful features.
Additional context
UE5 gameplay system has a well-intergrated tag system, post here as a reference, https://docs.unrealengine.com/5.3/en-US/using-gameplay-tags-in-unreal-engine/.
Hi! This is in my personal roadmap for the v1.0.0, because with a tagging system it would be easier to setup also abilities, attributes and to handle attribute effects.
What is going to be included
- A tag-manager editor tab, which adds, modify and remove
- A tag-browser (treeview-like) control for edited properties, which enables you to select them
- A tag-container resource (good to save node's tags on single player or to replicate them in multiplayer contexts)
- A convenient way to query tags on a given node (if any) or to browse all nodes with specific tags
- A radical change in
GameplayAttributeMap
,GameplayEffect
,Ability
andAbilityContainer
, sinceAttributeTable
resource is going to be dropped with this change (attributes will be defined as tags)
I could also add a convenient way to synchronize tags using reliable udp rpcs
I think I will have to switch to a C++ plugin to do it, so It will take a while.
Can this tag manager be turned into a standalone plugin? Because I may use this tag system to create some other gameplay.
I could build a stand-alone version if you need it right now, but I cannot extract this one as a stand-alone plugin since in the version 1.0 (the gdextension one), abilities, attributes, inventory, items and interaction systems will rely on it.