¿Qué hay más divertido que reventar globos? La semana pasada en la CouchConf SF, hicimos una demo de una aplicación de juego social experimental (Pop-it) impulsada por Couchbase Server 2.0 (Beta). Es una aplicación de navegador HTML5 con un servidor de juegos C#.Net.

Echa un vistazo al juego en acción - http://www.youtube.com/watch?v=13nCv_AMCi0

Ahora que ya has visto lo adictivo que puede llegar a ser este juego, ¡déjame explicarte cómo funciona! El servidor del juego detecta la posición de las articulaciones de las manos utilizando el Sensor Microsoft Kinect y transmite las coordenadas de las articulaciones de la mano al cliente mediante websockets. El cliente renderiza los globos utilizando javascript y realiza la detección de colisiones entre los objetos globo y los puntos de articulación de la mano. Básicamente, se tocan los globos para reventarlos y ganar puntos. Al final del juego, se utiliza Couchbase Server para almacenar los puntos del jugador. El cliente envía la puntuación y el nombre del jugador al servidor y la aplicación C# escribe estos datos en Couchbase. Para almacenar la puntuación, creamos un objeto GameResult como se muestra a continuación:

 

Kinect1

A continuación, utilizando el cliente C#.Net para Couchbase Server 2.0, escribimos estos datos en Couchbase Server utilizando:

var gameResult = nuevo GameResult { Nombre = nombre, Puntuación = puntuación };

//Crear una clave de fecha y hora
TimeSpan t = (FechaHora.UtcNow nuevo FechaHora(1970, 1, 1));
int marca de tiempo = (int) t.TotalSeconds;

//Llamar al método cliente StoreJSON para almacenar la puntuación en Couchbase
m_cliente.StoreJson(StoreMode.Establecerfecha y hora.ToString()gameResultado);

Ahora que la puntuación se almacena en Couchbase Server, utilizando las funciones de indexación y consulta de la versión 2.0, se puede generar una tabla de clasificación en tiempo real para que los jugadores puedan seguir su progreso. La función de mapa para crear una tabla de clasificación en Couchbase Server tiene el siguiente aspecto: 

 LeaderboardPopIt

 

La función map emite la puntuación del jugador y el nombre del jugador. La aplicación C# puede consultar la vista, ordenarla mediante el modificador descendente y limitar el número de resultados (los 10 primeros jugadores en este caso).

public ActionResult Index () {

var view = _client.GetView("marcador", "by_score", true).Descending(true).Limit(10);

return Json(view.ToArray(), JsonRequestBehavior.AllowGet);

}

¿Te apetece jugar? Descargar el código aquíCompílalo y disfruta. (Si no tienes un Kinect, no hay problema, los clics del ratón en los globos también funcionan). Aquí están los mejores jugadores de la CouchConf SF. 

 

WinnersPopIt

¡Enhorabuena a los campeones de Pop-It!

 

Autor

Publicado por Don Pinto, Director Principal de Producto, Couchbase

Don Pinto es Gerente Principal de Producto en Couchbase y actualmente está enfocado en avanzar las capacidades de Couchbase Server. Es un apasionado de la tecnología de datos, y en el pasado ha escrito varios artículos sobre Couchbase Server, incluyendo blogs técnicos y libros blancos. Antes de unirse a Couchbase, Don pasó varios años en IBM, donde desempeñó el papel de desarrollador de software en el grupo de gestión de la información DB2 y, más recientemente, como director de programa en el equipo de SQL Server en Microsoft. Don tiene un máster en informática y una licenciatura en ingeniería informática por la Universidad de Toronto, Canadá.

Dejar una respuesta