Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Como criar um sistema seguro para jogo online?

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
GabrielXavier
Membro
Membro
Reações: 0
Mensagens: 39
Localização: Goiás

Contato:

Como criar um sistema seguro para jogo online?

Mensagem por GabrielXavier » Ter Fev 21, 2017 11:42 am

Boa tarde, estou com um projeto a bastante tempo em minha cabeça, de criar um game de fazenda online para celulares android, e estou adquirindo conhecimento ao longo dos dias para ver oque é possível fazer quanto ao projeto.

Estou pensando em criar o servidor em PHP, e fazer as requisições ao servidor via POST enviando dados texto ou arquivos de texto, porém não estou sabendo muito como fazer um sistema seguro na parte de enviar e receber os dados para o servidor, preciso de um sistema que seja capaz de evitar cheaters e pelo menos dificultar MUITO a ação de hackers.

Creio que vou usar o formato JSON para enviar e receber dados, mas devo criptografar esses dados ou arquivos para que não sejam legíveis por qualquer um, os dados precisam ser criptografados usando o Game Maker e descriptografados usando o PHP, e preciso de uma forma de autenticar os usuários para que só consiga acessar os dados caso a requisição venha de um usuário logado (creio que isso deve ser feito com tokens de acesso únicos para cada vez que o usuário abrir o jogo).

E gostaria de saber também se é possível logar no jogo usando o Game Maker pelo android usando o Google Play Games (como é feito nos jogos da Supercell, Clash of Clans, Clash Royale e etc).

Eu não sei se estou no caminho certo, não sei exatamente se devo criar o servidor em PHP, queria saber se estou no caminho correto para este projeto?  Projeto um tanto ambicioso haha
Desde já agradeço a quem puder me ajudar!
Editado pela última vez por gabrielsch em Ter Fev 21, 2017 1:50 pm, em um total de 1 vez.
Razão: Ícone do tópico adicionado, mais atenção da próxima vez!
[ ] Publicar um App no Google Play.
[ ]GANHAR DINHEIRO.
[ ]Viver com o lucro dos meu jogos/apps (Sonho).

Avatar do usuário
Superbomber
Programador
Programador
Reações: 0
Mensagens: 283
Localização: Natal-RN

Re: Como criar um sistema seguro para jogo online?

Mensagem por Superbomber » Ter Fev 21, 2017 7:31 pm

É muitas dúvidas, vou tentar pelo menos dar uma base de pesquisa.

1) Não tem como fazer um sistema seguro, até a NASA falhou neste quesito.

2) Eu recomendo não usar PHP. Perceba que a linguagem PHP não é para o desenvolvimento de um servidor, é apenas para ser um pré-processamento de uma página HTML.
Enfim, o desempenho não é muito bom para este fim.
Se souber JavaScript, dá uma olhada no Node.JS

Usar requisições POST não é uma forma nem próxima de boa. O ideal é abrir um soquete para se comunicar com o servidor.
Se você usar uma conexão HTTPS já é uma segurança extra. Não vejo necessidade de criptografar dados de um jogo.
(Precisa pagar certificado SSL para usar conexão HTTPS com o seu servidor, não é muito caro)

3) Para dificultar uma invasão por uma pessoa mal intencionada, já abrange um assunto MUITO extenso.
O mais básico que você pode fazer, é aprender a configurar adequadamente o servidor. E ter cuidado com falhas bobas como injeção SQL.
Mantenha sempre atualizado os serviços rodando no seu servidor, e não mantenha nenhum ativo que não esteja em uso.

Enquanto aos cheaters, é possível de várias maneiras alterar valores na memória.
Logo, proteja as variáveis as criptografando (De forma básica, mesmo) na memória. E descriptografando antes de tratar o valor. (Como desenhar os pontos na tela)
Veja esse tópico > http://gmbr.forumeiros.com/t32520-engine-sistema-anti-cheat
Para maior segurança, trate o servidor como o "núcleo" do seu jogo.
Isto é, o .exe apenas envia valores pro server como: Personagem se moveu, colidiu com moeda, etc.
O servidor que vai tratar de aumentar a pontuação do player, diminuir life, etc. E enviar a informação de volta pro .exe
(Ou seja, se usarem ferramenta de cheat para aumentar o life não vai adiantar de nada. Porque o que importa é o valor que está registrado no servidor)

4) Para melhor desempenho do jogo, quando o jogador fizer login abra uma sessão e carregue valores no DB. (Database / Banco de Dados)
Trate todos os valores como os salvos na sessão e não no DB, e só salve no DB quando o jogador parar de jogar ou periodicamente. (Por exemplo, a cada 30 segundos)

5) Sobre o Google play eu não faço ideia, talvez isso lhe ajude: http://www.fm-studio.net/blog/gmstudio-add-google-play-games-1/

6) Não acho que seja uma boa ideia usar PHP, mas é possível manter uma conexão aberta com uma página PHP sem a necessidade de ficar usando requisições POST. (Embora o desempenho, não seja muito bom)

Até mais. :flw:
Entrem neste link com o JavaScript desabilitado e vejam a mágica: https://tgmbrasil.com.br/?PageSpeed=n0script

Avatar do usuário
GabrielXavier
Membro
Membro
Reações: 0
Mensagens: 39
Localização: Goiás

Contato:

Re: Como criar um sistema seguro para jogo online?

Mensagem por GabrielXavier » Sex Mar 24, 2017 9:10 pm

Olá Superbomber muito obrigado pela atenção, li sua resposta assim que você a publicou e desde então venho pesquisando a respeito e cheguei a algumas conclusões com base nas suas dicas.

Sei que um sistema 100% seguro é impossível de ser feito, mas partindo do principio onde jogadores possam gastar dinheiro real dentro do jogo é necessário uma atenção especial no quesito segurança para que jogadores possam se interessar em comprar itens dentro do jogo, estou estudando sobre isso.
Sobre essas engines anti-cheat que você me indicou elas podem prejudicar o desempenho do jogo?

Sobre a linguagem que de programação usada no servidor eu vi que o PHP realmente não é interessante para este fim, e já que não sei programar em outras linguagens e preciso aprender "do zero" decidi estudar Java para já desenvolver meu servidor em uma linguagem apropriada.

Vou estudar mais sobre essa integração do Google Play Games aos jogos.

Com essas dicas creio que estou começando a caminhar pelo caminho correto porém ainda estou com duvidas sobre coisas relacionadas aos servidores, criei outro topico com outras duvidas se você puder me ajudar la também ficarei muito agradecido!

Tópico: Como funcionam os servidores de MMO's?
[ ] Publicar um App no Google Play.
[ ]GANHAR DINHEIRO.
[ ]Viver com o lucro dos meu jogos/apps (Sonho).

Avatar do usuário
Superbomber
Programador
Programador
Reações: 0
Mensagens: 283
Localização: Natal-RN

Re: Como criar um sistema seguro para jogo online?

Mensagem por Superbomber » Dom Mar 26, 2017 12:34 am

Qualquer tipo de sistema anti-cheat semelhante ao que citei não irá afetar a performance de forma significativa. (não precisa se preocupar com isso)
Ao invés de pegar uma engine, pode estudar como fazer do zero do seu modo. Assim irá se "encaixar" de forma mais adequada ao seu projeto.

Sobre suas dúvidas no outro tópico, irei responder lá.
Entrem neste link com o JavaScript desabilitado e vejam a mágica: https://tgmbrasil.com.br/?PageSpeed=n0script

Responder

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 2 visitantes