Game Center y tablas de clasificación para tu aplicación iOS

Introducción

Game Center es la red de juegos sociales de Apple. Permite a los usuarios realizar un seguimiento de sus puntuaciones más altas en una tabla de clasificación, comparar logros, invitar a amigos a jugar un juego y comenzar un juego multijugador a través de la clasificación automática. Entonces, si ha creado un juego de iOS y desea que los usuarios puedan publicar sus puntuaciones en una tabla de clasificación de Game Center, este es el tutorial adecuado para usted.!

Para obtener más información sobre las aplicaciones y el Game Center, visite su página de desarrolladores de Apple.

El proyecto Xcode

Por el bien de este tutorial, he creado un proyecto básico de Xcode que puedes descargar desde GitHub. Explicaré todos los pasos necesarios para crear una tabla de clasificación en iTunes Connect y el código necesario para enviarle una puntuación, junto con un botón para abrir la tabla de clasificación desde la aplicación.. 

Así es como se ve el guión gráfico de la aplicación:

Este proyecto tiene una UILabel con el texto en rojo que he llamado puntuaciónLabel y un par de UIButtons. El rojo agregará 10 puntos a la puntuación y lo enviará a la tabla de clasificación de Game Center, y el azul abrirá el marcador. GKGameCenterViewController y mostrar ese marcador.

Lo primero que hay que hacer es habilitar Centro de juegos en el Capacidades pestaña en Xcode.

Luego debes importar GameKit en la parte superior de tu ViewController.swift archiva y agrega el GKGameCenterControllerDelegate protocolo a la declaración de clase.

importar clase GameKit ViewController: UIViewController, GKGameCenterControllerDelegate 

Vamos a añadir algunas variables ahora. Puede pegar este código directamente en su ViewController clase:

/ * Variables * / var gcEnabled = Bool () // Comprueba si el usuario tiene Game Center habilitado var gcDefaultLeaderBoard = String () // Comprueba el valor predeterminado de leaderboardID var score = 0 // IMPORTANTE: reemplaza la cadena roja a continuación con tu propia tabla de clasificación ID (la que has establecido en iTunes Connect) permite que LEADERBOARD_ID = "com.score.mygamename"

La primera variable indica si tienes Game Center habilitado, y la segunda será utilizada más adelante por el código de autenticación del jugador local para permitir que GameKit identifique la tabla de clasificación predeterminada.

Puntuación inicialmente será 0, por supuesto.

LEADERBOARD_ID es un Cuerda  que debe configurar para que Game Center envíe su puntuación al servidor a través del identificador predeterminado de la tabla de clasificación. Elija el nombre que desee, pero tenga en cuenta que debe tener una sintaxis invertida en la web. Es por eso que he identificado esta tabla de clasificación como com.score.mygamename, dónde mygamename debe ser reemplazado por el nombre de su aplicación en minúsculas, sin espacios.

Antes de habilitar Game Center en la página de iTunes Connect de su aplicación, terminemos el código básico. Añadir esta línea en viewDidLoad ():

 // Llamar al controlador de autenticación GC authenticateLocalPlayer ()

Y agrega la siguiente función justo debajo viewDidLoad ():

// MARCAR: - AUTHENTICATE LOCAL PLAYER func authenticateLocalPlayer () let localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer () localPlayer.authenticateHandler = (ViewController, error) -> Void in if ((ViewController)! = Nil) // 1 . Mostrar inicio de sesión si el jugador no ha iniciado sesión en self.present (ViewController !, animated: true, complete: nil) else if (localPlayer.isAuthenticated) // 2. El jugador ya está autenticado y conectado, carga el centro del juego. gcEnabled = true // Obtenga el ID de la tabla de clasificación predeterminada localPlayer.loadDefaultLeaderboardIdentifier (completedHandler: (leaderboardIdentifer, error) en if error! = nil print (error) else self.gcDefaultLeaderBoard = leaderboardIdentifer!) else // 3. Game center no está habilitado en el dispositivo del usuario self.gcEnabled = impresión falsa ("El jugador local no se pudo autenticar!") Impresión (error)

En caso de que un usuario no haya iniciado sesión en Game Center desde Configuración en su dispositivo, el método anterior mostrará la pantalla de inicio de sesión de Game Center tan pronto como se conecte al servidor GC. Una vez que el jugador ha iniciado sesión, la aplicación obtiene la ID de la tabla de clasificación predeterminada. 

En el siguiente método haremos que la aplicación tome el LEADERBOARD_ID cadena que creó anteriormente y pásela como el ID de la tabla de clasificación predeterminada del servidor de Game Center.

// MARCAR: - AÑADIR 10 PUNTOS AL PUNTUACIÓN Y ENTREGAR EL PUNTUACIÓN ACTUALIZADO AL CENTRO DE JUEGOS @IBAction func addScoreAndSubmitToGC (_ sender: AnyObject) // Agregar 10 puntos al puntaje actual puntaje + = 10 puntajeLabel.text = "\ (puntaje ) "// Enviar puntuación a la tabla de clasificación de GC deje bestScoreInt = GKScore (leaderboardIdentifier: LEADERBOARD_ID) bestScoreInt.value = Int64 (puntuación) GKScore.report ([bestScoreInt]) (error) en if error! = Nil print (error! localizedDescription) else print ("¡Mejor puntaje enviado a tu tabla de clasificación!")

El código anterior también agrega 10 puntos a la puntuación actual, por lo que cada vez que haga clic en el Añadir puntuación y enviar a GC botón, verá cómo cambia la etiqueta de puntuación roja, y la aplicación enviará esa puntuación actualizada a su tabla de clasificación de GC.

Necesitas ahora para agregar un GameKit Método de delegado que desestimará el Controlador GC..

// Delegado para descartar la función del controlador GC gameCenterViewControllerDidFinish (_ gameCenterViewController: GKGameCenterViewController) gameCenterViewController.dismiss (animated: true, completed: nil)

Solo queda un método para codificar antes de crear su tabla de clasificación en iTunes Connect, que es la acción del botón que abrirá Game Center.ViewController.

// MARCAR: - OPEN GAME CENTER LEADERBOARD @IBAction func checkGCleaderboard (juego de correo electrónico) (_ remitente: AnyObject) dejar gcVC = GKGameCenterViewController () gcV terminación: nil)

Como puede ver arriba, este código crea una instancia del controlador del GC, asigna su delegado a ese controlador, establece el estado de vista del controlador para mostrar tablas de clasificación y pasa a lo largo de su LEADERBOARD_ID antes de presentar el controlador. 

Ahora hemos terminado de codificar, pero aún no puedes ejecutar la aplicación. Si lo haces, obtendrás un error de Xcode ya que no has creado tu propia tabla de clasificación en la página iTunes Connect de tu aplicación..

Configurar Game Center en iTunes Connect

Ya deberías haber creado una aplicación iOS en iTunes Connect con tu propio Identificador de paquete. Ahora ingrese su aplicación desde el panel de control de iTunes Connect y haga clic en Caracteristicas y entonces Centro de juegos.

Luego haga clic en el + icono al lado de Tablas de clasificación.

Escoger Tabla de clasificación individual en la siguiente pantalla.

Aquí tienes que escribir el nombre que quieres darle a tu tabla de clasificación. En la captura de pantalla de abajo, he usado Nombre de mi tabla de líderes Sólo como un ejemplo. Puedes llamar al tuyo Tabla de clasificación de mejores puntuaciones o cualquier cosa que desees.

En el ID de la tabla de posiciones campo, pegar la cadena de la LEADERBOARD_ID hemos creado previamente en el proyecto Xcode.

Dado que la puntuación es un número, seleccione Entero en el Tipo de formato de puntuación campo. Puede elegir la opción que desee para Tipo de sumisión y Orden de clasificación. Salir Rango de puntuación (opcional) blanco.

Por último, haga clic en el Agregar idioma botón.

En la ventana emergente, debe seleccionar el idioma de su tabla de clasificación. El valor predeterminado es siempre inglés. Escribe de nuevo el nombre en inglés de tu tabla de clasificación y selecciona un Formato de puntuación (Elegí comas para separar grupos de dígitos). 

los Sufijo de formato de puntaje los campos son opcionales; Puede dejar ambos campos en blanco o escribir el sufijo deseado. Por ejemplo, si su juego tiene puntos de puntuación, puede escribir "punto" y "puntos" en plural, por lo que el controlador de Game Center agregará ese sufijo al final de las puntuaciones mostradas en su tabla de clasificación, como "1 punto" o "100". puntos".

También puede agregar un icono. La imagen debe ser un archivo .jpeg, .jpg o .png de 512x512 o 1024x1024 píxeles, al menos 72 DPI, y en el espacio de color RGB sin fondo transparente. Hacer clic Elija el archivo para subir tu imagen.

Por último haga clic Salvar, y tu estas listo. Puede repetir los pasos anteriores para agregar más idiomas; solo asegúrese de escribir los nombres de la tabla de clasificación de acuerdo con el idioma seleccionado.

Una vez que haya agregado una ventana, puede revisar los detalles de su tabla de clasificación. Si todo está bien, haga clic en Salvar, y serás redirigido a la página de Características, con tu nueva tabla de clasificación. 

Ahora es el momento de habilitar Game Center en la sección App Store de tu aplicación. Hacer clic Tienda de aplicaciones y Prepararse para la sumisión

Desplácese hacia abajo hasta que encuentre Centro de juegos con un interruptor al lado. Habilita esto, y se volverá verde. Luego haga clic en el + firmar junto a Tablas de clasificación, seleccione su tabla de clasificación de la lista y haga clic en Hecho.

Hacer clic Salvar en la esquina superior derecha de la ventana, y todo estará listo para configurar Game Center en iTunes Connect.

Ahora puede volver a su proyecto Xcode y ejecutar la aplicación en un dispositivo real o incluso en el simulador de iOS. Si aún no has iniciado sesión en Game Center, aparecerá el controlador de inicio de sesión. Se parece a esto:

Inicie sesión con sus credenciales y podrá comenzar a probar la aplicación.!

En nuestro addScoreAndSubmitToGC () Método, agregamos lo siguiente impresión() llamada:

Imprimir ("¡Mejor puntuación enviada a tu tabla de clasificación!")

Así que si tocas el botón rojo, puntuaciónLabel mostrará "10", y la consola Xcode imprimirá Mejor puntuación enviada a tu tabla de clasificación!

Toque el botón rojo tres veces más, y luego toque el botón azul para abrir su tabla de clasificación, y verifique que la puntuación enviada sea 40. Debería ver algo como esto:

Conclusión

Si quieres ver Game Center en acción con una aplicación de juego totalmente funcional, te gustaría ver mi plantilla de juego de CodeCanyon Four Dots. Es una plantilla para un juego sin fin mínimo que guarda las mejores puntuaciones y las envía al Game Center..

Las plantillas de juego como esta son una excelente manera de obtener ventaja en tu próximo juego. CodeCanyon tiene cientos de plantillas de juegos iOS que puedes usar para impulsar el desarrollo, lo que te permite construir el próximo juego asesino mucho más rápido!

Gracias por leer, y nos vemos la próxima vez! Por favor, echa un vistazo a algunos de nuestros otros tutoriales sobre el desarrollo de aplicaciones Swift y iOS.

  • Qué plataforma elegir para tu próximo juego móvil?

    En este artículo, exploramos varias plataformas de desarrollo de juegos móviles. Después de leer este artículo, debe tener una buena idea de qué marco o motor es mejor ...
    James Tyner
    Desarrollo móvil
  • Una introducción a GameplayKit: Parte 1

    En esta serie, conocerá el marco de GameplayKit introducido en iOS 9 y OS X El Capitan. En este primer tutorial, aprenderás acerca de la entidad ...
    Davis allie
    Xcode
  • Desarrollo de juegos con Swift y SpriteKit

    Si eres como yo, probablemente estabas interesado en los juegos de computadora cuando eras más joven. Todavía puedo recordar pasar mucho tiempo preguntándome cómo ...
    Derek Jensen
    Desarrollo de juegos
  • Encienda su juego móvil con diseño, sonido y música

    Un juego exitoso debe ser bellamente diseñado e inmersivo. Sin embargo, la mayoría de los desarrolladores de juegos no son buenos diseñadores. Y no se detiene con el diseño. Sonar…
    Bart Jacobs
    iOS