JCloisterZone icon indicating copy to clipboard operation
JCloisterZone copied to clipboard

Multi-player game with 4 players causes multiple players to be playing the same card at the same time, then hangs.

Open rainerschoe opened this issue 3 years ago • 9 comments

Background info: Yesterday I was trying to host an online game Version 5.5.0 downloaded as App-image from https://jcloisterzone.com OS: Linux (all players) Java openjdk v.11. Network: SSH tunnel (ssh -R style tunnel) forwarding connection of my public v-server to my local machine on port 37447 (I am not 100% sure if and how the release versions on https://jcloisterzone.com relate to the git tags in GitHub, as latest tagged version on GitHub seems to be 5.3.2)

What worked: The multi player game worked fine when playing with 2 players (host + one client).

What did not work: But when I played with 4 online players weird things started to happen:

  • Two players somehow see their own color as the color of another player respectively.
  • Two player's turn is at the same time for the same drawn card. Whoever then places the tile first gets the move.
  • After running into this situation (in first round) game does not continue.

Consistency of the error: This was consistently reproducible twice in a row, each time observing a slightly different combination of the issues listed above.

Workaround: I then switched to version 4.6 (legacy) which worked fine.

rainerschoe avatar Feb 25 '21 07:02 rainerschoe

hi

proper tags are in separate client repo https://github.com/farin/JCloisterZone-Client (there are mandatory for building it) in this repo. tags may be sometimes accidentally missing

anyway I going to investigate it

farin avatar Feb 25 '21 21:02 farin

just one question? did everybody used own "app instance" (I mean app run under different machine or user account -> with unique client id in configuration) (still even with copied config it should be working at least up to first reconnect)

farin avatar Feb 25 '21 21:02 farin

Hi, Everybody played on his/her own instance of the game. Al players used Linux (2x Fedora33, 1x Redhat, 1x ArchLinux).

I was using ssh tunnelling in the following scheme to circumvent NAT:

Fedora33 JCloisterzone client acting as host <-- ssh -R 4000:127.0.0.1:37447 publicServerIp --> Debian server in public internet with ssh server <---- Jcloisterzone clients connecting to publicServerIp:4000

This has the effect that all Connections to publicServerIp port 4000 get forwarded to localhost of the Fedora33 game host port 37447 through the tunnel by opening TCP sockets there. From a network point of view, the JCloisterzone host sees all clients as if they were connecting from localhost/127.0.0.1 (but with different TCP ports each).

So if you are using "IP address only" somewhere to distinguish players, it might explain the observed behavior.

Might need some more experiments.

rainerschoe avatar Feb 26 '21 07:02 rainerschoe

ip address is not used, it just about unique id

i think that key informations is "Two players somehow see their own color as the color of another player respectively." I look like there is wromg mapping between client and "slot" (particula color).

One more question. did you set up game with radomized player order?

farin avatar Feb 26 '21 08:02 farin

No, used fixed player order (did not change any default settings except adding 2 extensions)

rainerschoe avatar Feb 26 '21 08:02 rainerschoe

This happened to me when several players had the same preferred colour in settings

bamx23 avatar Apr 28 '21 16:04 bamx23

Hi, just to report back and maybe give some more information: We played v4.6 as a workaround for some time now, which works mostly well. However after some multiplayer sessions using v4.6, we found out that if you save a multiplayer game and restore it, it basically shows the same problem, as described here: Player colors are all mixed up and game is unplayable. In v4.6 It seems to be related to the order in which people connect to the saved/restored game. We have the feeling that if people connect in same order as they connected in initial game it works.

Not sure if this helps, but maybe the bug was kind of hidden in v4.6 and now appears hard in new versions.

rainerschoe avatar Apr 28 '21 17:04 rainerschoe

This happened to me when several players had the same preferred colour in settings|

@bamx23 that's interesting observation, thx for it. i am going to investigate it @rainerschoe that may helps too

farin avatar Apr 29 '21 08:04 farin

Not observed on localhost, even with multiple players. I guess it will be related to network delay. Keeping my eyes on it.

farin avatar Apr 29 '21 19:04 farin