Crear juegos con Unity y una base de datos local

Se han creado juegos increíbles con el Unidad plataforma. Algunos pueden verse sobre la plataforma Unity Escaparate de aplicaciones sección. Por impresionantes que sean estas creaciones, hay un componente básico que falta en todos los juegos creados con Unity: una base de datos local.

En Unity, una base de datos alojada localmente puede persistir los datos del juego y mejorar la jugabilidad: el juego no se acaba ni se ralentiza cuando un conexión a la red. La puntuación más alta de un jugador en el juego también puede guardarse y sincronizarse con una base de datos remota cuando se restablece la conexión de red.

En esta entrada de blog, exploraremos cómo Unity y la base de datos NoSQL, Couchbase, pueden trabajar conjuntamente para ofrecer destacado experiencias para jugadores de móviles.

Couchbase con Unity Games

Para empezar con Couchbase Mobile para Unity, hay un gran tutorial al que haremos referencia, que toma un juego Unity existente y le añade una base de datos local. La primera parte es traer el framework Couchbase Lite. En la aplicación de ejemplo, incluye Couchbase en la parte superior del archivo GameController.cs teniendo:

Crea tu base de datos de juegos Unity

Para el juego que estamos construyendo, los datos del jugador se almacenan en un documento y obtendremos el documento que contiene la puntuación más alta del jugador. Para recuperar la base de datos o crearla si no existe, haremos referencia a la base de datos Couchbase Director clase.

Recuperar el documento del jugador

Haremos referencia a los datos del juego del jugador teniendo un documento llamado 'player_data'. Al hacer referencia a la variable de base de datos, db, cuando solicitemos el documento, éste se asociará a la base de datos "spaceshooter". Llamamos a la variable ObtenerDocumento e introduzca el nombre del documento. Si el documento no existe, se creará el documento.

Los datos se describen como propiedades de un documento y para que podamos establecer la puntuación más alta de un usuario dentro de un juego, modificaremos las propiedades del documento y guardaremos una nueva revisión. Para ello llamaremos a la función Actualización de Couchbase.

El valor añadido de tener una base de datos local para tu juego es que las propiedades del juego aquí se pueden guardar en el dispositivo sin depender de tu red.

Replicar datos locales

Creando puntos finales de replicación, podemos enviar datos locales al servidor remoto. Para ello, haremos referencia al CreatePushReplication de la API de Couchbase y le pasamos la URL del endpoint con el que queremos sincronizar. Para iniciar la replicación ejecutamos 'Start()' en la variable.

Los datos se conservan localmente y también en el punto final remoto si la conexión está disponible.

Sincronizar datos remotos

Obtener los últimos datos de un endpoint remoto es tan sencillo como guardarlos localmente y sincronizarlos. Para crear una replicación pull simple primero obtendremos una base de datos llamando al método 'GetDatabase' y pasando el nombre de la base de datos - 'spaceshooter' en este caso. Pero ahora en lugar de actualizar nuestro servidor remoto con los datos locales de nuestro dispositivo con un 'PushReplication' ejecutaremos un 'PullReplication' desde el endpoint remoto

Y como anteriormente, llamando al método Start() en la variable comenzará el proceso de replicación de sincronización de datos desde el endpoint remoto al dispositivo.

Recuperar los datos de los jugadores

Para examinar lo que tenemos en nuestra base de datos 'spaceshooter' podemos hacer referencia a la variable que representa la base de datos y ver si el documento "player_data" está disponible:

Para recuperar la puntuación más alta del jugador, rellenaremos la variable highScore con el valor de la clave 'high_score'.

Conclusión

Hay una serie de grandes razones para emplear una base de datos local en el diseño de un juego Unity. Con Couchbase Mobile, los juegos Unity pueden ejecutar actividades locales, como guardar su estado local, y configurar servicios de sincronización para coordinar la coherencia de la información entre las instancias de la aplicación.

En resumen: cuanto más rico sea su entorno de juego local, y cuanto menos dependiente de la red la experiencia de juego de Unity es la jugabilidad: cuanto más confía en añadirás y servicios cada vez más sofisticados que pueden sincronizar el estado de una red de aplicaciones.

En el próximo blog exploraremos formas adicionales Couchbase Móvil puede mejorar el diseño del juegodesarrollo y juego.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por William Hoang, Defensor del Desarrollador Móvil, Couchbase

William fue Developer Advocate en el equipo de Mobile Engineering/Developer Experience de Couchbase. Su amor por el café y el código le ha trascendido al mundo de los móviles, al tiempo que aprecia las experiencias presenciales fuera de línea. Anteriormente, William trabajó en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, además de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenció en Ingeniería Eléctrica de Software por la Universidad McGill.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.