2009-07-05 7 views

Respuesta

15

Hay una visión general bastante buena aquí en el siguiente enlace de cómo configurar y utilizar GameKit para su aplicación.

desgracia, no se podrá utilizar el selector de GKPeerPickerController interfaz de usuario estándar para configurar la instancia GKSession para usted si usted quiere apoyar a más de 2 dispositivos. En su lugar, debe desarrollar sus propios elementos de IU para configurar y configurar las conexiones entre el maestro/servidor y los múltiples clientes.

Aquí está una manera sencilla para que GameKit durante más de 2 dispositivos:

Al inicializar una instancia GKSession con initWithSessionID: idioma: sessionMode, utilice:

  • sessionMode: GKSessionModeServer de el servidor/maestro
  • sessionMode: GKSessionModeClient para los otros (varios) clientes

sessionMode: GKSessionModePeer es la tercera opción disponible y es la opción utilizada en la mayoría código de ejemplo proporcionado por Apple como la demo GKTank.

Nota: Probablemente pueda usar GKSessionModePeer y aún tener una red de más de 2 dispositivos ya que el modo de pares pone el dispositivo en modo servidor y cliente al mismo tiempo hasta que se establece una conexión.La configuración explícita de un dispositivo como servidor puede simplificar la configuración que es útil para probar la API de GameKit.

Para el servidor:

GKSession *session = [[GKSession alloc] initWithSessionID:kTestSessionID displayName:nil sessionMode:GKSessionModeServer]; 

Para el cliente (s):

GKSession *session = [[GKSession alloc] initWithSessionID:kTestSessionID displayName:nil sessionMode:GKSessionModeClient]; 
+0

Tenga en cuenta que todos los métodos de GKSession están en desuso en iOS 7 y versiones posteriores. – Blip

0

A lo mejor de mi conocimiento, cuando se utiliza el marco GameKit sólo se puede acoplar un par de dispositivos, uno que actúa como un servidor y el otro como cliente (si ambos son inicializados como pares, tendrá que decidir qué uno actuará como servidor, arbitrariamente o seleccionando uno aleatoriamente).

En la práctica, es posible que haya muchos dispositivos ejecutando su aplicación, pero las conexiones siempre se establecerán a través de dispositivos vinculados.

Por supuesto, puede escribir su propio código de red basado en bonjour a través de wifi y superar este límite, aunque requerirá mucha más codificación.

4

En el pasado que he leído, puedes conectar hasta 16 dispositivos con Gamekit. Creo que solo puedes hacer dos cuando estás en el modo Peer, para hacer más de dos es necesario que un dispositivo se configure como maestro y los demás en modo cliente.

Buscaría ejemplos que demuestren el uso de maestro/cliente, el lado del cliente debería aplicarse a los tres.

Puede llamar al +maxPlayersAllowedForMatchOfType: en GKMatchRequest (iOS6 +) para obtener el número real, que puede variar según el dispositivo, por lo que probablemente deba usarlo como un límite superior.

+0

¿por qué dice usted puede conectar hasta cuatro dispositivos usando GameKit? o hasta dos en modo compañero? – nico

+0

Cuatro es el gamekit de límite que admite el modo maestro/servidor. Peer to Peer solo permite dos dispositivos. Así es como es la API. –

+0

El enlace @KendallHelmstetterGelner no funciona. Por favor amablemente actualízala. – NightFury

Cuestiones relacionadas