In our multiplayer game prototype, we experience a ping of 300 ms (at best) when using Game Center and GKMatch to send data between players, over the GKMatch.SendDataMode.unreliable channel. This latency is not suitable for a real-time game.
When we tested alternative services like Unity's Relay under identical conditions (location, devices, and Wi-Fi), we achieved a ping of 120 ms.
Is a ping value of 300 ms typical when using Game Center?
I can think of possible reasons in case it's not typical, but I can't be sure:
Is there a different behavior (servers relaying peer-to-peer connections) when the game is not yet released on the store?
We're in Europe, maybe this is normal in Europe and better in US?