Ok, so I raged out a bit when my friend got disconnected in SAB tribulation mode 90% into the map and he left party to start anew. Turns out it was his instance and I was thrown out meaning I have to redo it all.
This is not that big an issue in dungeons since people can rejoin.
However in dungeons the problem is ragequitters and votekicking the instance owner and possibly some form of disconnecting too, not sure.
It is especially annoying if the instance owner is an kitten that leaves before everyone has got the end reward chest and stuff like that.
Removing the ownership or rotating it has the pro of removing all of these current cons. I can’t see any con with removing it other than rewriting the current system, which I understand can take some time and resources.
The only difference I see is that the instance owner can leave, disconnect or get kicked without the rest of the party raging.
Rotating ownership is unnecessary since no owner is required, but would likely be an easier fix seeing as the system is currently based on having an owner.
.
.
.
Today I assume the instance owner is needed to know which party goes where. I wouldn’t assume it’s needed to specifically deal with any exploits because I can’t really see any and other than that I can’t really see any reason to use an instance owner.
Instead of using the instance owner as an identification for this, once you enter the dungeon “door” in order to get the menu with the options for the dungeon (story mode, exploration mode etc), the player or dungeon object could send an inquiry to the party object to check if any other party members are in the dungeon and if they are, you’re given a choice to join them (or cancel the dialog).
So if no party members are in the dungeon and you enter, an instance is created without owner and the party member opening it is moved inside.
I assume that you have a way for the environment to detect when a player has disappeared either by logging out, losing connection or leaving the area. If not, you could either add a timer for checking it in the dungeon instance or add a message that goes out to some information bus or the instance controller when the player object is deleted from the area.
Thus you know when a player leaves and thus you know how many and what players are inside of the dungeon. You could double check this for added security with a timer.
Then when the last player leaves, the dungeon instance is deleted.
Now what if 2 or more players open the entry dialog and have them open at the same time? Then you have a security check if an instance is already created for the party by checking if any player is inside the dungeon and if so, instead of creating a new, just send the guy to that instance or give him a message that an instance is created and have him try again.
If the reward system uses the instance owner to check who should get a reward, instead have it check what people hit the last boss or what people were in the area when it died. This system supports that.
.
.
.?
So when someone decides to leave the party while being inside the dungeon? Then kick that specific person from the dungeon. Whoever presses “leave” is the one who is kicked. Contrary if someone is kicked, that specific person is of course the one who is kicked.
There is a problem if there are only 2 people left because either one can kick the other and take control of the instance. You need to be able to kick the other player in order to be able to kick someone who has went afk for example. But it also means you can steal the dungeon. However in that case, let the victim report it and take actions on the people who steal dungeons. The benefits from removing the instance owner is too large for that to matter in my book.
No other party can join the same instance, they’ll just get their own dialog. All party members can join the instance and whenever they want, just as today.
The instance is deleted when no party members are left inside.
You can exploit it as much / as little as today (as far as I know).
.
.
.
An idea for rotating ownership, of course depends on how ownership is currently handled.
I hope that the instance is not a sub-object of the owner’s player-object because that would naturally mean that we have a problem with owner rotation unless the whole instance is copied to the next owner with the current state saved.
However if the owner is stored as a flag in the instance object/controller or if the instance ID is stored in the owner’s player object ( would be kinda weird?), you should be able to just change that.
So when the owner leaves for whatever reason, instead of kicking people out, check if anyone is left inside the dungeon and if so, transfer the ownership. Otherwise just destroy the instance.
This again poses the problem with the 2 players as described above. But again the problem is solved in the same way as above.
.
.
.
Continue in next post.
Instance owner --> Removed/Rotating ownership
Continuation from previous post.
.
.
.
Now I understand that the people working at ANet are not kittens and they are probably much better than me at programming and a post like this can, by some, possibly be seen as some elitist way to say “I’m better than you and you suck”. This post is not written to make any sorts of claims, offense or anything. I am not writing this to ridicule any of you, but to hopefully give you ideas on how it can be done incase the reason that it has not yet been implemented is the lack of ideas. I am not claiming that you don’t have any ideas either, it’s just that I think the game needs an ownerless instance system so badly that I’m willing to write this whole wall of text in hope that it might, if anything, be at least the seed for it if nothing.
I also understand that my assumptions about the game as it is can be completely wrong and in that case my ideas won’t work at all.
Then again you might already be working on an ownerless instance system and in that case I hope it is coming soon and I wish you good luck.
.
.
.
Thank you for an otherwise great game and please make an ownerless instance system soon. I will sadly be playing my tribulation mode either as instance owner or alone until then