juego matchmaking centro entre no amigos usando playersToInvite

¿Esto es imposible? Probé un código de testing que logra hacer coincidir cuando los dos jugadores que especifiqué por ID son amigos, pero falla con este error cuando no lo son.

Utilizando GKMatchmaker, busque matchforrequest

Impresión de la descripción del error:

Error Domain = GKErrorDomain Code = 8 "La operación solicitada no se pudo completar porque el reproductor no es válido". UserInfo = 0x1dd62f40 {GKServerStatusCode = 5121, NSUnderlyingError = 0x1dd62ca0 "La operación no se pudo completar. Invitación entre jugadores que no han jugado recientemente: G: 1752931323, G: 1752935955", NSLocalizedDescription = La operación solicitada no se pudo completar porque el jugador es inválido.}

Me encantaría poder hacer esto también, pero creo en la documentation de Apple especificar que las invitaciones deben ser solo de amigos.

Funciona, sí, la restricción es que los jugadores deben haber jugado recientemente. Este podría ser el caso en algunos escenarios para jugadores que no son amigos:

  • Jugaron random juntos
  • Los jugadores están jugando o previamente han jugado juntos a través de wifi o bluetooth
  • Solían ser amigos pero se separaban de su list de amigos.
  • Jugaron un juego multijugador de 3+ en el que eran amigos de uno de los jugadores, pero no del otro.
  • Se reproducen en 2 dispositivos que anteriormente se reproducían juntos, incluso si el inicio de session de GameCenter para esos dispositivos ha cambiado recientemente, por lo que técnicamente no son amigos (la configuration de la networking de restablecimiento elimina esta capacidad).

Estos casos son raros, de ahí la cláusula de "casi siempre amigos".

La forma en que estoy manejando esto es primero intentar hacer una invitación, independientemente de si son amigos. Si se produce este error, notifico al usuario que no son amigos y les pido que envíen una request de amistad utilizando el controller de vista de request de amigo.