GameDev Brasil https://www.gamedev.com.br/forum/ |
|
Banco mysql para jogo offline https://www.gamedev.com.br/forum/viewtopic.php?f=60&t=13067 |
Página 1 de 1 |
Autor: | onorax [ Ter Nov 24, 2015 9:19 pm ] |
Título: | Banco mysql para jogo offline |
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 ![]() |
Autor: | renalol [ Qua Nov 25, 2015 12:24 am ] |
Título: | Re: Banco mysql para jogo offline |
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. |
Autor: | onorax [ Qua Nov 25, 2015 1:41 pm ] |
Título: | Re: Banco mysql para jogo offline |
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? |
Autor: | renalol [ Qui Nov 26, 2015 12:26 am ] |
Título: | Re: Banco mysql para jogo offline |
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. |
Página 1 de 1 | Todos os horários são GMT - 3 horas |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |