Questions about disconnection and whether do we need China server support for our project

Thank you for taking time to read our post.

Our team is creating a new multiplayer game with photon PUN. We tested our game recently with many Chinese players, as our game focused on the Chinese market. We used the Tokyo server at first. Disconnections happen a lot, and it's always some of them who are experiencing this, I mean, someone may keep disconnecting in-game and out-of-game, while someone just connected smoothly without a single issue.

Then I read your post "Analyze Disconnection" and I decreased the send rate, and shrank the data sent from OnPhotonSerializeView, previously it's like a client's data-send-rate is 3000bytes/sec, now it's like 750bytes/sec. And this did kind of work out, it solved most of the disconnection issues. Our game is a three-player game, if all three testing players are from China, they never experience a disconnection issue. If I joined, while the other two are testing in China, one of them will keep disconnecting if he uses home WIFI, but he won't have a problem if he uses his mobile hotspot. This is where I can not understand, shouldn't WIFI be more stable than mobile hotspot? Is this still a data-send-rate too high issue?

Today, we tested using the Singapore server, those three players who are playing from China, who never experience disconnection issue, started to disconnect and can not connect to server now. Seems they can not trigger OnConnectedToMaster callback. I don't know whether this is because of the Firewall? But previously the Tokyo server works fine for them three for a quite long time though.

Sorry for just throwing out my questions here, I am trying to sort everything out but still can't. Could you guys help me with my questions, and also, if this is not fixable, should we consider adding a Chinese Mainland region to solve all these?

Thank you again for reading our post!

Have a good day.

Comments

  • Tobias
    Tobias admin
    edited January 2021
    shouldn't WIFI be more stable than mobile hotspot? Is this still a data-send-rate too high issue?
    Yes, in general it should be better. But there may be cases where the hardware doesn't work well together. Years ago I used my mobile in our office and it disconnected me after ~20 seconds. All the time in this case. Switching the WiFi (and router), I did not have the issue again.
    So .. this really depends on the specific case.

    It might be coincidence that your users disconnect more often, when the group is mixed from various countries. As the server relays all data, there should be no way that someone else's location affects you (aside from message timing for what that user receives and sends or replies).
    I don't know whether this is because of the Firewall?
    And there is also no way for us to find out. We did not research info about the firewall but I assume there is next to none. We assume it's a connection you can't rely on. Or: Much less than any other connection via the Internet.
    should we consider adding a Chinese Mainland region to solve all these?
    I would say so, yes. Unless you know the firewall is not going to be a problem for your users.
    As said: I don't have hard evidence of any of that.
    To try out, get in touch via mail: developer@photonengine.com
  • jstzwd
    jstzwd
    edited January 2021
    Tobias wrote: »
    shouldn't WIFI be more stable than mobile hotspot? Is this still a data-send-rate too high issue?
    Yes, in general it should be better. But there may be cases where the hardware doesn't work well together. Years ago I used my mobile in our office and it disconnected me after ~20 seconds. All the time in this case. Switching the WiFi (and router), I did not have the issue again.
    So .. this really depends on the specific case.

    It might be coincidence that your users disconnect more often, when the group is mixed from various countries. As the server relays all data, there should be no way that someone else's location affects you (aside from message timing for what that user receives and sends or replies).
    I don't know whether this is because of the Firewall?
    And there is also no way for us to find out. We did not research info about the firewall but I assume there is next to none. We assume it's a connection you can't rely on. Or: Much less than any other connection via the Internet.
    should we consider adding a Chinese Mainland region to solve all these?
    I would say so, yes. Unless you know the firewall is not going to be a problem for your users.
    As said: I don't have hard evidence of any of that.
    To try out, get in touch via mail: developer@photonengine.com

    Thank you for your reply! I assume the disconnection should definitely have something to do with my data send rate. Previously my data send rate of each client is 3000bytes/second, now it's 750bytes/second for each client, and it made the disconnection happen much less often.

    Is 750bytes/sec per client good for a three-client multiplayer game? I cut some data sent by lowering the send rate to 10 times a sec, by only sending Y rotation of players. However the packet sent each time now still has a 75 bytes size, I only have 24 bytes sent in OnPhotonSerializeView each time, don't know what the other 50 bytes are. I assume it has something to do with the PhotonAnimatorView I use?

    I read the Optimize Performance document of yours, it said "Don't send animations. Usually you can derive all animations from input and actions a player does. There is a good chance that a sent animation gets delayed and playing it too late usually looks awkward anyways."

    Currently, I am using PhotonAnimatorView and I am discretely syncing 2 layers (Should I sync layers in PhotonAnimatorView?), 4 bool values(IsCrouching, IsCatched etc) and 1 float value(Speed). I also sync some animation triggers but using RPC calls. So am I doing wrong using PhotonAnimatorView, according to the document? Then how can I sync for example, whether player is crouching or standing, and whether he is walking forward or backward, should I use RPC to manually sync them instead, to cut more data I should not send?

    It's much appreciated if you can enlighten me a bit on this. Thank you!