Alguns jogos incríveis foram criados usando o Unidade plataforma. Alguns podem ser vistos no Unity Apresentação do aplicativo seção. Por mais impressionantes que sejam essas criações, há um componente central ausente em todos os jogos criados com o Unity: um banco de dados local.

No Unity, um banco de dados hospedado localmente pode manter os dados do jogo e melhorar a jogabilidade - o jogo não termina nem fica lento quando um a conexão de rede for interrompida. A pontuação máxima de um jogador no jogo também pode ser salva e sincronizada com um banco de dados remoto quando a conexão de rede for restaurada.

Nesta postagem do blog, exploraremos como o Unity e o banco de dados NoSQL, Couchbase, podem trabalhar em conjunto para fornecer excepcional experiências para jogadores de jogos móveis.

Couchbase com jogos Unity

Para começar com o Couchbase Mobile para Unity, há um ótimo tutorial que referenciaremos, que pega um jogo Unity existente e adiciona um banco de dados local. A primeira parte é trazer as estruturas do Couchbase Lite. No aplicativo de exemplo, inclua o Couchbase na parte superior do arquivo GameController.cs com:

Crie seu banco de dados de jogos Unity

No jogo que estamos criando, os dados do jogador são armazenados em um documento e obteremos o documento que contém a pontuação máxima do jogador. Para recuperar o banco de dados ou criar o banco de dados se ele não existir, faremos referência ao Couchbase Gerente classe.

Recuperar o documento do jogador

Faremos referência aos dados do jogador no jogo por meio de um documento chamado "player_data". Ao fazer referência à variável do banco de dados, db, quando solicitarmos o documento, o documento será associado ao banco de dados "spaceshooter". Chamamos a variável ObterDocumento e passe o nome do documento. Se o documento não existir, ele será criado.

Os dados são descritos como propriedades de um documento e, para definirmos a pontuação máxima de um usuário em um jogo, modificaremos as propriedades do documento e salvaremos uma nova revisão. Para fazer isso, chamaremos a função Atualização do Couchbase.

O valor agregado de ter um banco de dados local para o seu jogo é que as propriedades do jogo podem ser salvas no dispositivo sem depender da sua rede.

Replicar dados locais

Ao criar pontos de extremidade de replicação, podemos enviar dados locais para o servidor remoto. Para fazer isso, faremos referência ao CreatePushReplication da API do Couchbase e passar o URL do ponto de extremidade com o qual sincronizar. Para iniciar a replicação, executamos "Start()" na variável.

Os dados são mantidos localmente e também no ponto de extremidade remoto fornecido, se a conexão estiver disponível.

Sincronizar dados remotos

Obter os dados mais recentes de um ponto de extremidade remoto é tão simples quanto salvá-los localmente e sincronizá-los. Para criar uma replicação pull única, primeiro obteremos um banco de dados chamando o método "GetDatabase" e passando o nome do banco de dados - neste caso, "spaceshooter". Mas agora, em vez de atualizar nosso servidor remoto com dados locais do nosso dispositivo com uma "PushReplication", executaremos uma "PullReplication" a partir do endpoint remoto

E, como anteriormente, a chamada do método Start() na variável iniciará o processo de replicação de sincronização de dados do endpoint remoto para o dispositivo.

Recuperar dados do jogador

Para examinar o que temos em nosso banco de dados "spaceshooter", podemos fazer referência à variável que representa o banco de dados e verificar se o documento "player_data" está disponível:

Para recuperar a pontuação máxima do jogador, agora preencheríamos a variável highScore com o valor da chave 'high_score'.

Conclusão

Há vários motivos excelentes para empregar um banco de dados local em um design de jogo Unity. Com o Couchbase Mobile, os jogos Unity podem executar atividades locais, como salvar seu estado local, e configurar serviços de sincronização para coordenar a consistência das informações entre as instâncias do aplicativo.

Conclusão: quanto mais rico for seu ambiente de jogo local, e quanto menos dependente da rede a experiência de jogo do Unity é para a jogabilidade - quanto mais confiante você estará adicionando e serviços cada vez mais sofisticados que podem sincronizar o estado em uma rede de aplicativos.

No próximo blog, exploraremos formas adicionais Couchbase Mobile pode aprimorar o design do jogodesenvolvimento e diversão.

Autor

Postado por William Hoang, defensor do desenvolvedor móvel, Couchbase

William foi um defensor do desenvolvedor na equipe de engenharia móvel/experiência do desenvolvedor na Couchbase. Seu amor por café e código o levou ao mundo dos dispositivos móveis, ao mesmo tempo em que apreciava as experiências presenciais off-line. Antes disso, William trabalhou na equipe de relações com desenvolvedores do Twitter, BlackBerry e Microsoft, além de ter sido engenheiro de GPS incorporado a software na Research In Motion. William se formou na McGill University em Engenharia Elétrica de Software

Deixar uma resposta