O que é mais divertido do que estourar balões? Na semana passada, na CouchConf SF, fizemos uma demonstração de um aplicativo experimental de jogo social (Pop-it) com base no Couchbase Server 2.0 (Beta). É um aplicativo de navegador HTML5 com um servidor de jogos C#.Net.

Confira o jogo em ação - http://www.youtube.com/watch?v=13nCv_AMCi0

Agora que você já viu como esse jogo pode ser viciante, deixe-me explicar como ele realmente funciona! O servidor do jogo detecta os locais das articulações das mãos usando o Sensor Microsoft Kinect e transmite as coordenadas das articulações das mãos para o cliente usando websockets. O cliente renderiza os balões usando javascript e executa a detecção de colisão entre os objetos do balão e os pontos de articulação da mão. Basicamente, você toca nos balões para estourá-los e ganhar pontos. No final do jogo, o Couchbase Server é usado para armazenar os pontos do jogador. O cliente envia a pontuação e o nome do jogador para o servidor e o aplicativo C# grava esses dados no Couchbase. Para armazenar a pontuação, criamos um objeto GameResult, conforme mostrado abaixo:

 

Kinect1

Em seguida, usando o cliente C#.Net para o Couchbase Server 2.0, gravamos esses dados no Couchbase Server usando:

var gameResult = novo Resultado do jogo { Nome = nome, Pontuação = pontuação };

/Criar uma chave de registro de data e hora
Tempo t = (DateTime.UtcNow novo DateTime(1970, 1, 1));
int carimbo de data/hora = (int) t.TotalSeconds;

/Chamar o método do cliente StoreJSON para armazenar a pontuação no Couchbase
m_ccliente.StoreJson(StoreMode.Conjunto, carimbo de data/hora.ToString(), gameResult);

Agora que a pontuação está armazenada no Couchbase Server, usando os recursos de indexação e consulta da versão 2.0, é possível gerar uma tabela de classificação em tempo real para que os jogadores possam acompanhar seu progresso. A função de mapa para criar uma tabela de classificação no Couchbase Server tem a aparência abaixo: 

 LeaderboardPopIt

 

A função de mapa emite a pontuação do jogador e o nome do jogador. O aplicativo C# pode consultar a exibição, classificá-la usando o modificador descendente e limitar o número de resultados (nesse caso, os 10 melhores jogadores).

public ActionResult Index () {

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

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

}

Tem vontade de jogar? Faça o download do código aquicompile-o e divirta-se! (Se você não tiver um Kinect, não há problema, os cliques do mouse nos balões também funcionam). Aqui estão os melhores jogadores da CouchConf SF. 

 

WinnersPopIt

Parabéns, campeões do Pop-It!

 

Autor

Postado por Don Pinto, gerente principal de produtos da Couchbase

Don Pinto é gerente de produto principal da Couchbase e atualmente está concentrado no avanço dos recursos do Couchbase Server. Ele é extremamente apaixonado por tecnologia de dados e, no passado, foi autor de vários artigos sobre o Couchbase Server, incluindo blogs técnicos e white papers. Antes de ingressar no Couchbase, Don passou vários anos na IBM, onde ocupou a função de desenvolvedor de software no grupo de gerenciamento de informações DB2 e, mais recentemente, como gerente de programa na equipe do SQL Server na Microsoft. Don tem mestrado em ciência da computação e é bacharel em engenharia da computação pela Universidade de Toronto, no Canadá.

Deixar uma resposta