Estou trabalhando em um jogo online que terá um processamento de detecção de colisão muito pesado. Os modelos de jogadores colidem com outros jogadores, mobs, estruturas, terreno e objetos sólidos que existem apenas no lado do servidor (não armazenados nos arquivos de dados do cliente).
Por motivos de segurança, devo fazer toda a detecção de colisões no lado do servidor? Ou devo fazer com que o cliente faça a detecção e faça com que o servidor faça o acompanhamento de alguma forma? Eu sinto que será demais para o servidor fazer sozinho (estou projetando o mecanismo para centenas de jogadores em um servidor).
Alguém sabe como os MMOs tradicionais fazem isso? Eu sei que quase todos os MMOs no momento são suscetíveis a hacks físicos e geralmente lidam com eles detectando hackers e banindo pessoas. Prefiro que os hacks não funcionem, pelo menos para o componente de física.
fonte
Se você está preocupado com os hacks e isso tem um grande impacto no jogo, a resposta é SIM.
No meu jogo baseado em navegador, que é do tipo "construção de cidade", não me incomodo com os hacks porque o mecanismo do cliente não falhará quando criar o estado do jogo salvo.
No entanto, isso pode potencialmente abusar da jogabilidade, pois o jogador precisa gastar moedas do jogo (ou dinheiro premium) para expandir a área jogável, a fim de construir mais casas / edifícios. Então, implementarei uma verificação simples do número de peças ocupadas pelo edifício recém-adicionado novamente, quantas peças gratuitas estão disponíveis.
fonte