En lugar de hablarles sobre la teoría de agregar características sociales a su juego, lo que quiero hacer es darles una demostración práctica de cómo pueden agregar múltiples características sociales a su juego utilizando Nakama. Vamos a recorrer rápidamente cómo agregar autenticación, agregar y listar amigos, ver una clasificación global y una clasificación específica de amigos, enviar puntajes a esa clasificación, y luego recompensar la participación del jugador dándole al jugador algunas monedas por participar en esa clasificación.
Así que pasemos al código. Bien, pueden ver que tenemos nuestra aplicación de demostración ejecutándose aquí. Es una aplicación React simple con una pantalla de inicio de sesión que si intento iniciar sesión ahora mismo, no sucederá nada porque no hemos implementado ninguna de estas funciones aquí que la aplicación React espera llamar para realizar varias tareas como autenticar, obtener los detalles de la cuenta, agregar y listar amigos, y más. Así que lo que me gustaría hacer es recorrer rápidamente lo fácil que es implementar estas funciones utilizando Nakama.
Antes de comenzar, lo que he hecho aquí es ejecutar npm install e instalar el paquete nakama.js que puedes encontrar en heroic.labs.nakama-js. Una vez que hayas hecho eso, podemos importar el objeto cliente y sesión del paquete nakama.js. Luego vamos a crear un objeto cliente. Ahora, este objeto cliente espera recibir una clave de servidor, la predeterminada es default-key, la dirección del host de la instancia de Nakama, en este caso estoy ejecutándolo utilizando Docker en mi máquina local, y el número de puerto donde se ejecuta la instancia de Nakama. Luego vamos a implementar la función de autenticación. Ahora, Nakama admite varios mecanismos diferentes para la autenticación, que incluyen la autenticación de dispositivo, correo electrónico y contraseña, Apple, Google, Facebook, y autenticación personalizada, entre otros. Vamos a usar la autenticación personalizada aquí porque nos permite pasar un identificador personalizado así como un nombre de usuario, y este indicador verdadero aquí también nos permite especificar si la cuenta de usuario no existe, entonces la crearemos. Ahora, esta función de autenticación personalizada al igual que todas las demás funciones de autenticación devolverá un objeto de sesión, que puedes ver que tenemos aquí arriba. Este objeto de sesión nos permite luego llamar a varias otras funciones dentro de Nakama para obtener diferentes piezas de información de esa cuenta de usuario. Si guardamos este archivo ahora y vamos a nuestra pantalla de inicio de sesión e intentamos iniciar sesión nuevamente, verás que ahora estamos conectados. Dice, hola, CodewithTom. No podemos acceder a nada como amigos o clasificación en este momento porque no hemos implementado esas funciones, pero hagámoslo ahora. Solo voy a cerrar sesión rápidamente.
Y antes de continuar para obtener una cuenta o cualquier otra cosa, lo que me gustaría hacer es implementar un flujo de restauración de sesión para que la próxima vez que el usuario regrese a la aplicación, no tenga que volver a iniciar sesión en su cuenta. Para hacer eso, vamos a establecer, vamos a obtener en realidad dos elementos del almacenamiento local. Estos serán el token de sesión y el token de actualización. Ahora, también vamos a tener que establecer estos elementos. Entonces, lo que haremos es justo después de autenticarnos, iremos al almacenamiento local y estableceremos el token de sesión como el valor de nuestra sesión.token y el token de actualización como el session.refresh token. También implementaremos una función aquí llamada restaurar sesión. Y lo que haremos aquí es obtener los dos valores del token de sesión y el token de actualización solo para asegurarnos de tener la versión más actualizada. Y si tienen un valor, entonces vamos a usar session.restore. Ahora, esta es una función que se encuentra en la propia clase de sesión pasando el token de sesión y el token de actualización y asignando ese valor de vuelta a nuestra variable de sesión. Guardaremos eso y vamos a iniciar sesión aquí code with Tom y ahora puedes ver que si actualizo la página estoy automáticamente conectado de nuevo, lo cual es genial. Ahora, lo último que necesitamos hacer es implementar una función de cierre de sesión y eso completa nuestro flujo de autenticación.
Comments