I just have a few things to say about the multiplayer play mode package that I’ve been using recently. It’s been a really good solution for testing my multiplayer game except for two things that I think could be improved.
Firstly when I try to mute other players it just immediately unmutes again which is annoying and I’m pretty sure this is a bug.
Second I think that it would be good to be able to pause specific players for debugging purposes. It’s not great only being able to pause all of them at the same time.
Lastly it’s annoying I can’t take the console out of the individual players because it makes the players take up a lot of space and I’d like to be able to turn them into floating panels next to the player windows so I can customize it more.
One other thing is that I’m also having issues selecting other windows in my multiplayer players. When I try to select the other windows from the Layout section it’s just grayed out and I can’t see a workaround in the docs.
Overall the package is very helpful and thanks for reading this. I hope that some of these changes could be made or perhaps I missed something and there are workarounds to these!
Not practical. This would effectively cause the paused player to timeout and drop out of the session.
Also for debugging purposes you will want to also see the unchanged state of other players, specifically the host. This is more important than pausing a single player, which I’m not even sure what the benefits would be if the rest of the game keeps advancing. Even if the paused player unpauses and keeps playing, it may have missed important game events causing other issues that you’d spend time on even though they would never occur in a real game.
3 Likes
Thanks for reaching out !
Firstly when I try to mute other players it just immediately unmutes again which is annoying and I’m pretty sure this is a bug.
Yes, it’s a bug. We are working on a fix.
Second I think that it would be good to be able to pause specific players for debugging purposes. It’s not great only being able to pause all of them at the same time.
Unfortunately, allowing different life cycles between the virtual player and the main one is not currently planned. Partly for the reasons highlighted by CodeSmile.
Lastly it’s annoying I can’t take the console out of the individual players because it makes the players take up a lot of space and I’d like to be able to turn them into floating panels next to the player windows so I can customize it more.
That’s good feedback. Although not planned yet, I’ll add it to our feature request backlog.
3 Likes
Thanks for the replies and taking into account the feedback 
I’d like to add one more note to this topic; it’s that each player window is limited resize. I don’t really have a big monitor so it will definitely help to be able to resize other player’s window just like in the editor.
1 Like
One more for the backlog: The virtual player editor layout isn’t configurable. It defaults to the default layout. There isn’t even an option to select from a list of presets, which would be totally okay provided the presets are sensible (or perhaps editable in a config file for power users).
Most annoying to me, is to have the scene view in the center, the scene hierarchy to the left, and the inspector to the right. I very rarely select anything in the scene but rather in the hierarchy. This means selection is on the left side, information and editing on the opposite side, with lots of irrelevant space in-between.
Same feedback from me about the layout.
Are you planning to support panel repositioning in the future?
And just out of curiosity, why add this limitation in the first place?
Not that this solves the problem with Multiplay Mode, but FWIW you can accomplish the pausing thing just using Project Cloner: GitHub - hwaet/UnityProjectCloner: A tool to let the user to create a duplicate project that links back to the original, for multiplayer testing or it’s offshoot ParrelSync: GitHub - VeriorPies/ParrelSync: (Unity3D) Test multiplayer without building
Basically they just make a symlinked copy of your game. A couple things of note is when you update the scene in one instance you’ll need to discard changes in the other instance(s) and you’ll need to make sure to save your scene to propagate asset changes like prefabs and scriptable objects. If you really find yourself needing the pause on one but not another to check something out you can do that with this approach. If you run into timing out issues you should be able to adjust the timeout from the transport or network manager (not sure I’m still using Mirror myself but it works the way you’d expect, make the timeout super massive and you can pause different clients all you want)
Aside from that you can configure the windows however you want in your clone projects.