I’ve been playing with GAS recently for a multiplayer RPG project and this question can’t get off my head: why should I RepNotify every Attribute?
It’s really network consuming so why not only load attributes when the actor becomes relevant (Net Load, COND_InitialOnly), then reliably replicate only movement and abilities (the enum ID) ?
Further explanation in case I’m not clear: what do you think about the idea of NOT replicating attributes on server change, as long as you handle properly Relevancy of actors: attributes are synced everytime an actor becomes relevant. Then I could update locally these local attributes (every time I as a client receive the request to fire an ability from a relevant actor) and it should still have the same value as the server as long as I at least replicate movement/skills ID correctly
What would go wrong? Is it about the risk of desync?
If a player cheats attributes locally, well… it just screws its own instance, server won’t be affected. Also note that no RNG is involved (ie no critical chance).
Since I am not aware of tutorials / projects that do things this way, I guess other actors attributes would end up desyncing from server at some point or something, but I cant seem to find out in which cases
Could you help me out with this problematic?
EDIT: Updated subject and post from why replicate attributes to why RepNotify Attributes rather than just replicate them conditionnally with COND_InitialOnly