Impedir os jogadores de baterem em um FPS online?

14

Por que ainda nos queixamos de wallhackers em atiradores multijogador em primeira pessoa?

Não é possível realizar a seleção de oclusão para todos os jogadores do lado do servidor? Por exemplo, envie as informações xyz do jogador para o cliente apenas quando o jogador estiver visível no perfil do cliente e não estiver ocluído por nenhum objeto? Mesmo que a geometria da colisão seja muito, muito simplificada, na maioria das vezes o trapaceiro não recebe informações táticas.

Por que não fazer isso?

Patryk Czachurski
fonte

Respostas:

19

Pense que você está atrasado agora? Apenas espere até obter informações de oclusão em tempo real do servidor. Agora você pode andar por trás de uma parede e os bandidos aparecerão repentinamente à medida que o servidor o alcança e envia os dados de oclusão atualizados.

Então, meu comentário sarcástico diz tudo. Provavelmente, o principal motivo para não fazer isso é o atraso e a carga do servidor. Se você deseja que o servidor saiba quando outro jogador está visível para você, isso significa que o servidor precisa saber exatamente para que geometria cada jogador está olhando e calcular essa oclusão.

Concordo que explorações como a invasão de paredes podem tornar o jogo não divertido. E vejo que os desenvolvedores se preocupam com isso, porque querem tornar o jogo o mais divertido possível. No entanto, quando os desenvolvedores chegam ao ponto em que suas contramedidas anti-fraude / hack diminuem o jogo e / ou a satisfação do cliente, elas perdem muito mais clientes do que se tivessem deixado isso sozinho . Veja DRM .

MichaelHouse
fonte
3
+1 por insistir que as contramedidas anti-fraude / hack nunca devem diminuir a experiência de um cliente inocente.
Doppelgreener
17

É factível e já foi experimentado em pesquisas; para uma comparação dos esquemas de gerenciamento de juros, consulte http://dl.acm.org/citation.cfm?id=1230069

Como o Byte56 disse, pode exigir mais CPU, mas pode reduzir sua largura de banda e reduzir a probabilidade de invasões na parede.

E, como disse Byte56, uma área de interesse estritamente limitada à área de oclusão do jogador pode reduzir a capacidade de resposta do lado do cliente: as emboscadas levarão pelo menos meia ida e volta para serem exibidas. No entanto, você pode tornar a área de interesse do jogador um pouco maior que a área de oclusão, para que o cliente receba a emboscada do oponente alguns segundos antes que ela aconteça. Dessa forma, ataques de parede ainda são possíveis, mas apenas no último momento.

gentimouton
fonte
Bom, obrigado por trazer algumas pesquisas reais para as respostas. Bem-vindo ao GDSE.
MichaelHouse
4

A resposta curta é que sim, a seleção por oclusão no servidor é possível, mas geralmente não é feita devido à complexidade e aos benefícios limitados.

Lembre-se de que para uma grande parte dos jogos modernos de FPS, a oclusão completa é rara. Os personagens hoje em dia usam cobertura ou se escondem na grama, e os uniformes e camuflagem reais têm um impacto na visibilidade. Paredes e corredores ainda desempenham uma grande parte da batalha online, mas não tanto quanto nos anos anteriores.

Jogos com muitos corredores apertados e superfícies opacas podem (às vezes) usar seleção de oclusão no servidor para filtragem de eventos. Isso simplesmente não funciona tão bem para grandes ambientes abertos e jogos de capa / camo realistas.

O hacking na parede também é apenas uma pequena parte da trapaça nos jogos online, e a correção de cada invasão individual não funcionou bem até agora. As melhores abordagens foram simplesmente a criação de partidas de alta qualidade e os sistemas de classificação de jogadores que filtram os trapaceiros e diminuem a probabilidade de uma partida frustrante.

Sean Middleditch
fonte
-4

Os desenvolvedores de jogos que não podem escrever apenas um programa paralelo que basicamente assume o controle total do PC e não permite que nenhum software de terceiros seja carregado enquanto o jogo está em execução? Eles não precisam carregar os injetores depois que o jogo é iniciado e mapeado para a memória? Então, lista negra tudo o que não está relacionado à execução. Eles precisam criar um tipo de UAC para interromper o carregamento dos serviços após o carregamento do jogo.

Minha outra idéia para impedir completamente a invasão é um pouco mais complexa e envolve a execução de jogos como um sistema operacional Linux. Basicamente, o jogo não usava janelas, mas usava um sistema operacional despojado, projetado para ter apenas jogos carregados. Portanto, os jogadores podem querer transmitir ou tocar música enquanto jogam, mas essa nova maneira de executar um jogo não o permite .. Grande coisa, os desenvolvedores poderiam colocar programas na lista de permissões e outras coisas, mas eu não me incomodaria .. você está tentando reproduzir um jogo, se você quer tarefas múltiplas, tem um laptop por perto, etc. Essencialmente, você quer executar o jogo no modo sandboxie com criptografia. Acho que é assim que se chama. É como rodar um jogo em um ambiente de temperatura virtual que é 100% controlado pelo criador do jogo.

E esse modo sandboxie seria muito parecido com o funcionamento dos jogos e sistemas operacionais do console. Não vemos muitos hacks no console. Porque eles não podem carregá-los no console e, se pudessem, os consoles não conseguiriam lê-lo e reconheceriam.

TJ L
fonte
1
Não, um desenvolvedor de jogos não pode escrever um programa paralelo que assume o controle total do PC. Isso é o que é um sistema operacional. Um sistema operacional precisa se registrar no kernel quando o computador é iniciado para obter seus privilégios, e invocá-los de outra forma é caro. Além disso, chamamos os programas secundários de controle total de um PC "inseguros" e "vírus", porque eles são. O programa com controle total também significa que a segurança no jogo é ainda mais importante, pois qualquer invasão que possa causar comunicação entre os programas clientes pode literalmente roubar todo e qualquer dado de todos os dispositivos clientes . Isso é ruim.
Delioth
1
Como outro ponto, você está me dizendo que eu teria que reiniciar meu PC neste sistema operacional barebones apenas para jogar seu jogo? Estou pedindo um reembolso, pois não deve haver um período de inicialização e desligamento de 5 a 10 minutos para o seu jogo, em que não posso fazer nada com minhas duas telas porque o computador está desligado . E nem todo mundo pode comprar um laptop extra apenas para realizar várias tarefas ao mesmo tempo em que joga um jogo específico (é melhor que seja um jogo muito bom se levar 20 minutos apenas para iniciar e parar e me forçar a gastar US $ 400 para ter música / reddit em segundo plano )
Delioth
Bem, então lide com as pessoas que arruinam os jogos no PC. Hoje em dia, os atiradores estão perdidos porque estão repletos de esp etc. Bf1 no PC é um bom exemplo. Eu nem sei por que eles se preocupam em liberá-los no PC, foi hackeado antes mesmo de sair.
TJ L