Modifiable Queue for defaulting Network Ownership when players leave. (Or add a Synced Well system for Player Objects)
DrakenStark
PlayerObjects are amazing. They allow everyone to sync data without worrying about Network Ownership being an unpredictable variable. Problem though, is when you want data to persist after they and any others have left simultaneously. You could duplicate that data across all players, but that's a lot of duplicated traffic then for anyone who late joins a nearly full instance. There is also no means to prevent said duplicated data to only be synced from any specific player(s) and then locally propagate that data for all other players. (Like being able to test a small part of a well instead of all of it at once.) Unless a "Well Sync" system is implemented, there's still reason to want a NetworkOwnership juggled GameObject to sync data via trusted players. This is especially true during live streamed events by a non-profit organization.
As is, we can control most cases of Network Ownership handling except for one specific use case. When a player leaves, we have to detect the event after the Network Ownership has already transferred. It'd be great if we had the ability to queue who the next player will be before the current owning player leaves. This is a case about best effort, which this would assist with.
Hypothetically, we could have the local player:
- Loop through an array of all players.
- Stack an array with your own priority that is a list of all preferred in-instance players and all elements are valid.
- After ensuring it is valid locally and via remote clients, sync the array as an overridden queue of players for defaulting Network Ownership.
- If the queue no longer has any existing players in the instance, then the current method of defaulting players can resume.
- For longevity and network optimization, joining players may be added individually to the end of the current intended queue. (If the full queue were an array, this would take the players current element and shift it into a specific element determined by the current number deliberately queued.)
Even if it's multiple players leaving simultaneously, as is Network Ownership still has this figurative queue even if it isn't deliberately built. It currently will default to whoever is in the instance the longest, which a malicious player may unpredictably encourage and try to leverage regardless of any persisted existence of trusted players. Malicious players can currently play a stealthy game of longevity and target individuals in ways they that may be brushed off as an acceptable level of technical issues. If there's a large number of trusted players, then the malicious player would then have to be more blatant and could be much easier to catch/negate entirely. At the very least, much better clue in when a higher tier instance privacy setting may be necessary. So including what I'm asking for here should make public leaning instances more viable to persist, thwarting unorganized malicious behavior.
What I'm asking for here is a means to control Network Ownership before it is already transferred to a potentially malicious player. This would allow world devs to ensure trusted players will always be favored for Network Ownership, so long as they continue to persist existing within the instance.
Log In