Unity Multiplayer Sync date e Save date
2 participantes
Página 1 de 1
Unity Multiplayer Sync date e Save date
Olá gente, então estou começando agora no Multiplayer com Unity, ja dei umas lidas em algumas coisas como uNet e o Photon 2, mas me fico umas duvidas:
1-Como proteger os dados ?
Por exemplo , suponhamos que estou criando um MMORPG nesse jogo o player possui uma variavel "Gold", que é seu dinheiro, essa variavel está sincronizada com servidor, sempre que player vende algum item e consegue mais gold, tbm atualiza no servidor, porem se o player Usar programas como Cheat Engine ou WPE e alterar o valores na memoria dessa variavel, não seria alterado no servidor tambem ?
como proteger essa variavel ?
2-Relaçao aos dados do player.
Posso apenas salvar as informações do player em uma pasta? afinal vai estar dentro do servidor, sempre que player logar, o cliente requisita as informações daquele player para o servidor e carrega o player com estas informações ,Por exemplo , um player faz login com seu nome e senha , o cliente enviar para o servidor essas informações e o servidor responde com os dados da conta: Level do personagem , suas armaduras essas coisas , seria maneira correta de fazer ? ou poderia ocasionar problemas futuros ?
1-Como proteger os dados ?
Por exemplo , suponhamos que estou criando um MMORPG nesse jogo o player possui uma variavel "Gold", que é seu dinheiro, essa variavel está sincronizada com servidor, sempre que player vende algum item e consegue mais gold, tbm atualiza no servidor, porem se o player Usar programas como Cheat Engine ou WPE e alterar o valores na memoria dessa variavel, não seria alterado no servidor tambem ?
como proteger essa variavel ?
2-Relaçao aos dados do player.
Posso apenas salvar as informações do player em uma pasta? afinal vai estar dentro do servidor, sempre que player logar, o cliente requisita as informações daquele player para o servidor e carrega o player com estas informações ,Por exemplo , um player faz login com seu nome e senha , o cliente enviar para o servidor essas informações e o servidor responde com os dados da conta: Level do personagem , suas armaduras essas coisas , seria maneira correta de fazer ? ou poderia ocasionar problemas futuros ?
leleo- Iniciante
- PONTOS : 2358
REPUTAÇÃO : 4
Respeito as regras :
Re: Unity Multiplayer Sync date e Save date
Acho que você respondeu a esta pergunta na segunda questão.leleo escreveu:1-Como proteger os dados ?
Por exemplo , suponhamos que estou criando um MMORPG nesse jogo o player possui uma variavel "Gold", que é seu dinheiro, essa variavel está sincronizada com servidor, sempre que player vende algum item e consegue mais gold, tbm atualiza no servidor, porem se o player Usar programas como Cheat Engine ou WPE e alterar o valores na memoria dessa variavel, não seria alterado no servidor tambem ?
como proteger essa variavel ?
Os dados pertencem ao servidor e são manipulados somente por ele. Por exemplo:
1- O player solicita ao servidor que o item com ID x seja vendido;
2- O servidor verifica se o item de ID x pertence ao player com id y:
3- Caso positivo, o servidor realiza a venda, contabiliza as moedas, grava o saldo do jogador no banco e devolve as informações pra ele;
4- Caso negativo, você chuta o jogador ou realiza outra ação.
Os dados que o jogador tem na memória, são só visuais, ainda que ele altere, não é "real".
Servidores totalmente autoritários geralmente fazem isso com tudo, inclusive com a movimentação dos jogadores:
O jogador movimenta o player localmente e envia sua posição/rotação, os inputs pressionados e o frame em que a movimentação ocorreu;
O servidor movimenta o jogador com os inputs passados pelo jogador e verifica se naquele frame o jogador realmente estaria na posição recebida. Caso hajam discrepâncias, o servidor corrige a posição do jogador. Isso também envolve outras lógicas de previsão do lado do servidor e interpolação do lado do cliente para que as coisas pareçam mais suaves. Hoje em dia, isso também é possível de se fazer com a física de forma determinística e suave graças as cenas físicas da Unity.
leleo escreveu:2-Relaçao aos dados do player.
Posso apenas salvar as informações do player em uma pasta? afinal vai estar dentro do servidor, sempre que player logar, o cliente requisita as informações daquele player para o servidor e carrega o player com estas informações ,Por exemplo , um player faz login com seu nome e senha , o cliente enviar para o servidor essas informações e o servidor responde com os dados da conta: Level do personagem , suas armaduras essas coisas , seria maneira correta de fazer ? ou poderia ocasionar problemas futuros ?
Dependendo do volume de jogadores que seu jogo tem, a quantidade de dados pode se tornar enorme. Do ponto de vista de desempenho e até mesmo gerenciamento desses dados, um banco de dados faz muito mais sentido. Não que não seja possível manipular através de arquivos, mas eu não faria.
Uma nota sobre Unet e Photon:
Photn (PUN) não é nem de longe recomendado para jogos que precisem de segurança/desempenho. Ele é mais voltado pra jogos p2p mais casuais. Dá pra fazer, mas não vai ficar tão bom e você vai demorar bem mais.
Unet: Está depreciado, definitivamente, não comece por aí.
O mais parecido ( friendly user ) de com algo seguro e que já implementa interpolação/correção/previsão e etc é o Photon Bolt.
Mas sendo bem honesto, em tempos de DOTS e do Novo Network-Transport, eu esperaria até o primeiro trimestre de 2020
- Spoiler:
- (ou não, pois muita coisa já está funcional )
Tópicos semelhantes
» Sistema de batalha e save Unity 2D
» Como fazer um Save Game na Unity 3D
» como faço um multiplayer na unity 5?
» Multiplayer Unity
» Multiplayer com Unity + NOde
» Como fazer um Save Game na Unity 3D
» como faço um multiplayer na unity 5?
» Multiplayer Unity
» Multiplayer com Unity + NOde
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos