A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Ter Ago 11, 2020 10:38 pm

Todos os horários são GMT - 3 horas




Criar novo tópico Responder  [ 4 mensagens ] 
Autor Mensagem
 Título: Banco mysql para jogo offline
MensagemEnviado: Ter Nov 24, 2015 9:19 pm 
Offline
Membro novo

Registrado em: Seg Out 26, 2015 4:31 pm
Mensagens: 4
Olá, estou desenvolvendo com alguns amigos, um jogo que inicialmente era pra ser apenas um projeto para a faculdade, mas como gostamos de desenvolver e achamos que tem futuro o projeto pretendemos dar continuidade.

Enfim, para o projeto utilizamos banco de dados mysql, porem para o banco funcionar, temos que instala-lo em nossa máquina e configurar ip, usuário, senha etc.... existe alguma forma de migrar esse banco para dentro do unity, , sem tem que fazer tudo denovo? Porque o jogo não faz sentido cobrar conexão com a internet.
Se não, qual solução vocês me sugerem?

Obrigado :!:


Voltar ao topo
 Perfil  
 
 Título: Re: Banco mysql para jogo offline
MensagemEnviado: Qua Nov 25, 2015 12:24 am 
Offline
Membro intermediário

Registrado em: Sex Abr 04, 2014 11:10 pm
Mensagens: 144
Ao meu ver se o jogo não precisa de internet, seu projeto de jogo deve salvar dados simples como pontuação, posição, entre outros...

Como você utiliza a Unity, a própria biblioteca monobehaviour já conta com um banco de dados simples chamado PlayerPrefs (salvando dados float, int, string e bool).
Se é um projeto que não necessita de multiplayer em tempo real, PlayerPrefs é o ideal.


Como funciona o método?

Crie um script C# chamado 'Dados':

Código:
using UnityEngine;
using System.Collections;

public class Dados : MonoBehaviour {

   public static void salvarPontuacao(int melhorPontuacao){  //Aqui você cria o tipo de variavel que queira manipular.
      int melhorScore = melhorPontuacao;
      
      //Usando PlayerPrefs, adicionamos o valor em uma string...
      PlayerPrefs.SetInt("meuScore", melhorScore);
   }
   
   //Criamos um método para carregar a pontuação
   public static int[] carregarPontuacao(){
      //Carrega o valor salvo em um Array...
      int valorScore = PlayerPrefs.GetInt("meuScore");
      return new int[]{valorScore};
   }
}



Agora você tem um mini banco de dados que salva variáveis tipo INT, para salvar a variável é só utilizar este método:

Código:
Dados.salvarPontuacao(suaVariavel);



Você acaba de salvar seu dado int, agora é preciso carrega-lo no método Start:

Código:
    void Start(){
        int[] carregarPontos = Dados.carregarPontuacao();
      suaVariavel = carregarPontos[0];
    }



Outros banco de dados embarcado é o SQLite e o Db4o, porém necessita toda uma configuração (ainda mais na parte de mobile) e ao meu ponto de vista não compensa (depende do projeto).

SQLite: https://pt.wikipedia.org/wiki/SQLite
Db4o: https://pt.wikipedia.org/wiki/Db4o

É possível utilizar o banco de dados MySQL no Unity de boa, porém a necessidade da internet é meio que uma simbiose(lado a lado), para não ficar refazendo as configurações do PC, você pode utilizar o https://www.000webhost.com/ , é um domínio grátis tanto de site e dados (se não me engano uns 2gb de espaço), ótimo para criar protótipos para jogos com Cadastro/Registro.

Bom, é isto ai, espero ter ajudado, tudo de bom.


Voltar ao topo
 Perfil  
 
 Título: Re: Banco mysql para jogo offline
MensagemEnviado: Qua Nov 25, 2015 1:41 pm 
Offline
Membro novo

Registrado em: Seg Out 26, 2015 4:31 pm
Mensagens: 4
renalol escreveu:
Ao meu ver se o jogo não precisa de internet, seu projeto de jogo deve salvar dados simples como pontuação, posição, entre outros...

Como você utiliza a Unity, a própria biblioteca monobehaviour já conta com um banco de dados simples chamado PlayerPrefs (salvando dados float, int, string e bool).
Se é um projeto que não necessita de multiplayer em tempo real, PlayerPrefs é o ideal.


Como funciona o método?

Crie um script C# chamado 'Dados':

Código:
using UnityEngine;
using System.Collections;

public class Dados : MonoBehaviour {

   public static void salvarPontuacao(int melhorPontuacao){  //Aqui você cria o tipo de variavel que queira manipular.
      int melhorScore = melhorPontuacao;
      
      //Usando PlayerPrefs, adicionamos o valor em uma string...
      PlayerPrefs.SetInt("meuScore", melhorScore);
   }
   
   //Criamos um método para carregar a pontuação
   public static int[] carregarPontuacao(){
      //Carrega o valor salvo em um Array...
      int valorScore = PlayerPrefs.GetInt("meuScore");
      return new int[]{valorScore};
   }
}



Agora você tem um mini banco de dados que salva variáveis tipo INT, para salvar a variável é só utilizar este método:

Código:
Dados.salvarPontuacao(suaVariavel);



Você acaba de salvar seu dado int, agora é preciso carrega-lo no método Start:

Código:
    void Start(){
        int[] carregarPontos = Dados.carregarPontuacao();
      suaVariavel = carregarPontos[0];
    }



Outros banco de dados embarcado é o SQLite e o Db4o, porém necessita toda uma configuração (ainda mais na parte de mobile) e ao meu ponto de vista não compensa (depende do projeto).

SQLite: https://pt.wikipedia.org/wiki/SQLite
Db4o: https://pt.wikipedia.org/wiki/Db4o

É possível utilizar o banco de dados MySQL no Unity de boa, porém a necessidade da internet é meio que uma simbiose(lado a lado), para não ficar refazendo as configurações do PC, você pode utilizar o https://www.000webhost.com/ , é um domínio grátis tanto de site e dados (se não me engano uns 2gb de espaço), ótimo para criar protótipos para jogos com Cadastro/Registro.

Bom, é isto ai, espero ter ajudado, tudo de bom.


Entendi, então é mais fácil eu migrar o banco Mysql para PlayerPrefs do que configurar SQLite? E esse SQLite é local?


Voltar ao topo
 Perfil  
 
 Título: Re: Banco mysql para jogo offline
MensagemEnviado: Qui Nov 26, 2015 12:26 am 
Offline
Membro intermediário

Registrado em: Sex Abr 04, 2014 11:10 pm
Mensagens: 144
Com certeza, se seu projeto não tem uma gota de network, a melhor utilidade é o PlayerPrefs.
Pra ser sincero nunca usei SQLite, dei uma mexida no Db4o e já descartei, pois fiz um projeto pra android e a configuração dele é meio chata. Desta forma já que a Unity fornece normalmente, é mais viável o PlayerPrefs, mas para jogos que exigem Network só MySQL (entre outros) pra dar conta.

Exemplo com algo de Db4o: https://diogosapessoa.wordpress.com/201 ... embarcado/
Espero ter ajudado, tudo de bom.


Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Responder  [ 4 mensagens ] 

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB