Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
3 participantes
Página 1 de 1
Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
Ola tudo bem? Planejo fazer um game online tipo um mmorpg, e tenho duvida sobre a sincronização de dados...
Gostaria de saber se eu puxo os dados do player quando ele loga e salvo no PlayerPrefags para ficar facil consultar e regravar, ou se eu tenho que ficar sincronizando os dados dele toda hora com o banco de dados mysql. tenho receio que possa dar lag, pois terei muita coisa pra atualizar o tempo todo.
EX: o player perde vida, dai nesse momento eu já sincronizo com o banco de dados..
ou:
EX: o player perde vida, dai sincronizo com o PlayerPrefs ou com uma variavel static e só sincronizo com o DB quando ele deslogar... mas pensando assim, não é o ideal pq os playes nao teram meus dados atualizados certo?
Qual a forma correta de se fazer isso? seria mesmo usando a primeira opção?
OBS: o Game será um Multiplayer Online
Obrigado.
Gostaria de saber se eu puxo os dados do player quando ele loga e salvo no PlayerPrefags para ficar facil consultar e regravar, ou se eu tenho que ficar sincronizando os dados dele toda hora com o banco de dados mysql. tenho receio que possa dar lag, pois terei muita coisa pra atualizar o tempo todo.
EX: o player perde vida, dai nesse momento eu já sincronizo com o banco de dados..
ou:
EX: o player perde vida, dai sincronizo com o PlayerPrefs ou com uma variavel static e só sincronizo com o DB quando ele deslogar... mas pensando assim, não é o ideal pq os playes nao teram meus dados atualizados certo?
Qual a forma correta de se fazer isso? seria mesmo usando a primeira opção?
OBS: o Game será um Multiplayer Online
Obrigado.
dbzronaldo- Membro
- PONTOS : 3048
REPUTAÇÃO : 1
Respeito as regras :
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
Em um multiplayer online, praticamente o jogo todo tem que estar a todo momento no banco de dados, na verdade, nem se chega perto de PlayerPrefs em um jogo online... talvez será usado para guardar preferências como a resolução da tela, essas coisas, mas TODO o resto vai no banco de dados.
Você tem que ficar mandando e recebendo informações o tempo todo.
Você tem que ficar mandando e recebendo informações o tempo todo.
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
Ah, entendi... muito obrigado pela dica.. vai me ajudar a pensar melhor!
- A fim de testes criei um recurso para que assim que o usuário faz login, grava a ID dele na PlayerPrefs, e assim eu consigo fazer as requisições, esta certo essa forma?
- Outra duvida minha é a respeito de usar o php em arquivos separados, ou usar dentro do script CS mesmo... andei vendo uns videos que usam ele dentro do CS... qual a melhor forma?
- a terceira duvida é a respeito desse meu codigo de atualizar o banco de dados.. sinto que da pra melhorar ele...
pois usei 4 funcões para atualizar o DB. a primeira e a segunda não conta, mas foram duas funcoes que funcionam, mas achei estranha.. sinto que da pra simplificar...
Tem alguma forma de resumir isso que eu quero fazer?
Consultar um valor do mysql e atualizar ele?
Nesse meu exemplo, quando eu clico J, eu pego a Vida do player e atualizo ela acrecentando um valor do random...
Acho que da pra melhorar, mas não sei por onde comecar..
Se puderem me dar uma luz, ou pelo menos tentar indicar o melhor caminho... tudo sera bem vindo....
OBS: Tirei várias verificações do código pra ficar mais facil de vocÊs compreende-lo e entender oque estou querendo dizer..
- A fim de testes criei um recurso para que assim que o usuário faz login, grava a ID dele na PlayerPrefs, e assim eu consigo fazer as requisições, esta certo essa forma?
- Outra duvida minha é a respeito de usar o php em arquivos separados, ou usar dentro do script CS mesmo... andei vendo uns videos que usam ele dentro do CS... qual a melhor forma?
- a terceira duvida é a respeito desse meu codigo de atualizar o banco de dados.. sinto que da pra melhorar ele...
pois usei 4 funcões para atualizar o DB. a primeira e a segunda não conta, mas foram duas funcoes que funcionam, mas achei estranha.. sinto que da pra simplificar...
Tem alguma forma de resumir isso que eu quero fazer?
Consultar um valor do mysql e atualizar ele?
Nesse meu exemplo, quando eu clico J, eu pego a Vida do player e atualizo ela acrecentando um valor do random...
- Código:
void Start () {
idUserLogado = PlayerPrefs.GetString ("id_usuario_logadooooo");
}
void Update () {
if (Input.GetKeyDown ("j")) {
StartCoroutine (ConsultaDB (idUserLogado));
}
}
//CONSULTA SCORE DO PLAYER
IEnumerator ConsultaDB(string idUserLogado) {
WWW verscore = new WWW ("http://localhost/unity2/main.php?service=consultaBlood&uss=" + idUserLogado + "&blood="); //consulta usuário pra pegar blood atual
yield return(verscore);
string[] stringDados = verscore.text.Split ('|'); //split pq recebo varios dados de uma vez do php
if (stringDados != null) {
bloodUsuario = int.Parse (stringDados [3]);
//AUMENTA BLOOD
bloodUsuario = bloodUsuario + Random.Range(0,20);
//CHAMA ATUALIZA DB
StartCoroutine (UpdateDB(bloodUsuario, nombreUsuario));
}
}
//ATUALIZA BLOOD DO PLAYER
IEnumerator UpdateDB(int blood, string nombreUsuario) {
WWW verscore = new WWW ("http://localhost/unity2/main.php?service=updateBlood&uss=" + idUserLogado + "&blood=" + blood.ToString()); //envia novo blood para o php
yield return(verscore);
if (verscore.text == "sucessUpdated") {
print ("Blood aumentado com sucesso!");
}
}
Acho que da pra melhorar, mas não sei por onde comecar..
Se puderem me dar uma luz, ou pelo menos tentar indicar o melhor caminho... tudo sera bem vindo....
OBS: Tirei várias verificações do código pra ficar mais facil de vocÊs compreende-lo e entender oque estou querendo dizer..
dbzronaldo- Membro
- PONTOS : 3048
REPUTAÇÃO : 1
Respeito as regras :
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
Esta correto, porém um usuario mais esperto pode alterar o ID no PlayerPrefs e ai controlar a conta de alguem
RenanMSV- Instrutor
- PONTOS : 4486
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
Ah sim.. entendi....
qual a melhor forma de pegar o id do player logado entao?
usando a variavel static ? se tiver outra forma e puder me ajudar ficarei grato.. desde ja obrigado!
qual a melhor forma de pegar o id do player logado entao?
usando a variavel static ? se tiver outra forma e puder me ajudar ficarei grato.. desde ja obrigado!
dbzronaldo- Membro
- PONTOS : 3048
REPUTAÇÃO : 1
Respeito as regras :
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
É bem dificil impedir, mas creio que colocar o nome de usuario em uma variavel e ai controlar a conta dele seja mais viavel. Pode ser estatica sim. Tente criar um sistema de "cadeado" "token" permitindo que alguma alteração em uma conta especifica só seja permitida caso o proprio servidor deixar. É algo complicadinho mas vc pega o jeito.
RenanMSV- Instrutor
- PONTOS : 4486
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
ah sim.. obrigado pela dica.
E a respeito de usar o php em arquivos separados, ou usar dentro do script CS mesmo... andei vendo uns videos que usam ele dentro do CS... qual a melhor forma?
E a respeito de usar o php em arquivos separados, ou usar dentro do script CS mesmo... andei vendo uns videos que usam ele dentro do CS... qual a melhor forma?
dbzronaldo- Membro
- PONTOS : 3048
REPUTAÇÃO : 1
Respeito as regras :
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
Ai é escolha propria.
RenanMSV- Instrutor
- PONTOS : 4486
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: Sincronização de Dados do player no PlayerPrefs ou no Banco de dados?
qual recomenda para ter melhor organização e desempenho?
dbzronaldo- Membro
- PONTOS : 3048
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» Apagar dados do PlayerPrefs
» [TUTORIAL] Salvar dados com playerprefs facilmente.
» Duvidas sobre Programação, Banco de Dados, PHP/XML em Unity, Json ou PlayerPrefs?
» Como faço para inserir oa dados de pontuação em um banco de dados
» Receber dados de um banco de dados e escrever em unity
» [TUTORIAL] Salvar dados com playerprefs facilmente.
» Duvidas sobre Programação, Banco de Dados, PHP/XML em Unity, Json ou PlayerPrefs?
» Como faço para inserir oa dados de pontuação em um banco de dados
» Receber dados de um banco de dados e escrever em unity
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos