Estou desenvolvendo um jogo que está sendo executado como um aplicativo da web. O fato é que o jogo perde o sentido se um jogador cria várias contas. Imagine que é um jogo de estratégia baseado em turnos e, se você jogar contra si mesmo (com outra conta), poderá ganhar toneladas de pontos facilmente.
No começo, pensei em registrar todas as ações de um usuário e depois comparar o IP dos usuários para detectar se há alguma pista de trapaça. Mas notei que usuários diferentes poderiam estar executando sob o mesmo IP, por exemplo, se eles estiverem na escola e todos compartilharem o mesmo IP usando um proxy. Usar dessa maneira pessoas inocentes pode resultar banido.
Existe alguma abordagem melhor que eu estou perdendo?
web
anti-cheat
Matias
fonte
fonte
Respostas:
Existem algumas maneiras diferentes de lidar com isso, e muitas soluções têm seus próprios méritos. Vou dar a minha opinião sobre a maneira ideal de lidar com isso.
Primeiro, é importante entender que, por mais complicado que seja o seu sistema, alguém que seja suficientemente investido no jogo do sistema (com conhecimento apropriado) descobrirá uma maneira de jogá-lo.
Para lidar seriamente com esse problema, se é realmente um problema para você, você precisa lidar com isso no design e na implementação técnica do seu jogo.
No final técnico, você precisa basicamente jogar um jogo de comparações.
Usando seus logs, você pode configurar um sistema para comparar dados entre contas de qualquer número de semelhanças.
Usando esses dados, você pode julgar apropriadamente caso a caso ou automaticamente. Dependendo da extensão do problema, eu recomendaria uma opção automática e o tratamento de qualquer problema por meio de um moderador ativo. É importante que você não exclua a conta, apenas a suspenda com uma mensagem como "Esta conta foi suspeita de violar o contrato de TOS deste jogo. Se você não concordar, por favor, vá aqui" com um link para um painel de arbitragem ou algo assim .
É importante que isso ocorra, porque as pessoas podem compartilhar endereços IP em casa ou na escola. Além disso, para crianças mais novas, eles podem estar usando os endereços de e-mail, cartões de crédito ou mesmo nomes dos pais, nas informações de inscrição, dependendo da proteção deles.
A segunda fase é do lado do design. Embora se espere algum benefício, você precisa desincentivar suficientemente esta forma de trapaça com a sua jogabilidade. Existem várias maneiras pelas quais você pode fazer isso, há as totalmente irritantes de intervalos muito curtos (o que pode ser necessário). Mas sinto que a melhor maneira é ajustar adequadamente os benefícios entre duas contas.
Você pode segmentar especificamente contas que compartilham dados e diminui diretamente o benefício que eles obtêm ao interagirem entre si. Isso incentivaria a interação com outros jogadores, mas pode ser contornado com servidores proxy e seria desaconselhável, dependendo do seu público-alvo.
A outra maneira de pensar que isso funcionaria é ter uma jogabilidade tão envolvente que as pessoas não conseguem jogar duas contas separadas e ainda assim acompanhar todo mundo.
Obviamente, com esse sistema, você precisaria gastar bastante esforço para ajustar os falsos positivos e o que não.
tl; dr?
Você deseja coletar dados apropriados que permitem detectar e lidar automaticamente com ameaças potenciais e lidar com falsos positivos, usuário a usuário. Seria necessária uma boa dose de babá para garantir que você não tenha falsos positivos.
Além disso, você deseja reduzir o benefício de trapacear com várias contas no final da jogabilidade.
fonte
A maneira mais simples e eficaz de combater o 'cultivo' de pontuações é ajustar a pontuação recebida com base na disparidade entre os jogadores. Lembre-se de que não é apenas um jogador que cria várias contas com as quais você precisa se preocupar: imagine dois amigos, um perdendo deliberadamente, para que o ranking dos outros seja artificialmente aumentado.
O xadrez e outros jogos evitam isso através das formas do sistema de classificação Elo . Basicamente, a recompensa por vencer alguém com uma classificação mais alta do que você é alta, mas a recompensa por vencer alguém com uma classificação muito mais baixa é muito baixa. Isso rapidamente torna deliberadamente a perda de vantagem para outro jogador ineficaz. Você pode ajustar a taxa na qual ganhar contra um jogador ruim resulta rapidamente em pouco ganho líquido. Um jogador jogando 'corretamente', ou seja, vencendo contra uma ampla variedade de oponentes com ranking semelhante, avançará muito rapidamente.
NB: não basta penalizar os jogadores que perdem para que ganhar contra eles não traga nada, porque os jogadores podem criar uma conta, perdê-la deliberadamente e criar outra conta. Isso não é tão problemático se houver uma barreira à entrada (por exemplo, inserir detalhes do cartão de crédito para criar uma nova conta), mas para jogos gratuitos que funcionem.
Também vale a pena notar que existe um perigo se as classificações forem usadas como uma medida da capacidade real, e não apenas como uma maneira de modificar as recompensas que o jogador recebe. Se a classificação em si é a medida, jogadores espertos usarão o sistema para sabotar os outros. Ou seja, o jogador 1 ganha muita habilidade / habilidade através da prática e cria uma nova conta. O jogador 2, que é tão bom quanto o jogador 1, aceita um desafio do recém-chegado. Perder para o recém-chegado prejudicará enormemente sua classificação, mesmo que o novo jogador seja de classificação equivalente. No entanto, se a classificação não for realmente usada para medir o jogador, isso é realmente do interesse do Jogador 2 (ter sua classificação reduzida permitirá que eles avancem mais rapidamente, considerando seu nível de habilidade real).
fonte
Você pode atribuir pontos com base na diferença entre os totais de pontos dos oponentes. Jogadores muito bons ganhariam poucos pontos por derrotar novatos, e novatos ganhariam muitos pontos por derrotar jogadores experientes. Da mesma forma, os perdedores perderiam pontos proporcionais à mesma escala.
Isso não resolveria completamente o seu problema, mas eliminaria o simples caso de alguém criar e derrotar um monte de novatos, além de dificultar o nível de duas contas diferentes de igual poder.
Realmente, porém, não há uma maneira infalível de parar isso; um trapaceiro suficientemente dedicado terá sucesso. Mas se você sinalizar contas com atividade suspeita para revisão, onde "atividade suspeita" inclui várias contas com o mesmo email ou endereço IP, poderá identificar os criminosos mais flagrantes.
fonte
Descobri que isso é muito mais fácil de corrigir através do design de jogos do que através da aplicação / proibição. Mesmo se você banir permanentemente todas as contas de um jogador, jogadores suficientemente determinados podem encontrar uma maneira de contornar sua proibição (por exemplo, se você rastrear IP, eles poderão usar IP dinâmico ou máscara de IP).
Por exemplo, se você atribuir pontos aos jogadores por vencerem concursos de PvP, incentive os jogadores a criar várias contas para que possam perder para si mesmos. Se, em vez disso, você der recompensas maiores por jogar em grupos com os mesmos jogadores ao longo do tempo (ou seja, participação da guilda), incentive a amizade e a comunidade em detrimento da competição, o que muda os comportamentos preferidos. O fato de ter características adicionais de metagame vinculadas à conta do jogador (como pontuação de Reputação e lista de Amigos) torna a manutenção de várias contas menos atraente - pelo menos, as pessoas desejam uma conta "principal" com um bom representante.
Se seu jogo é PvP por natureza, uma grande maneira de contornar o problema "Vou fazer várias contas e me perder de propósito" é oferecer apenas matchmaking automatizado. Portanto, o jogador solicita o jogo e o servidor os compara automaticamente com alguém que esteja online no momento. Se os jogadores não puderem escolher seus oponentes, não há como garantir que eles mesmos lutarão (a menos que sejam os únicos online no momento, mas você tenha problemas maiores). Veja Microsoft Hearts / Spades, ou a maioria dos jogos do Facebook que permitem PvP, para exemplos disso. Observe que, nesse caso, você definitivamente desejará algum tipo de combinação inteligente (usando algum tipo de sistema de classificação / classificação como parte da conta do jogador ou permitindo que os jogadores selecionem seu nível de competitividade preferido).
Se você está preocupado com o fato de os jogadores quererem jogar com seus amigos, você também pode oferecer essa opção, mas somente permita jogos sem classificação / sem classificação / treino quando escolher seus oponentes.
fonte
As pessoas em https://panopticlick.eff.org/ testaram como alguém pode ser identificado de maneira única por vários valores que podem ser coletados em praticamente qualquer navegador. Os resultados são impressionantes e você pode usar uma abordagem semelhante (talvez combinada com outras medidas) para identificar e rastrear seus usuários.
fonte
Existe uma solução de design muito simples que a Blizzard adotou no Warcraft 3 e Starcraft 2: apenas permita que os jogadores ganhem pontos / pontuação / experiência ao jogar em jogos usando o serviço de matchmaking automático. Os jogadores ainda podem jogar contra seus amigos, mas não ganham pontos com isso.
Se o jogador não tem como decidir contra quem está jogando, não há maneira confiável de jogar jogando com contas falsas.
fonte
eu jogo em um sistema de jogo chamado travian, e eu realmente acho que a tecnologia não é boa o suficiente para pegar truques. A maioria das fraudes possui de 2 a 4 sistemas vinculados via comutador KVM, cada sistema executa versões diferentes do sistema operacional (windows xp, vista, win7, linux mint, Slitaz e assim por diante) e é executado através de servidores proxy (embora a conta principal não esteja usando proxy, mas padrão)
É claro que isso cria uma vantagem tão injusta que a maioria das pessoas que pagam para jogar estão saindo, com membros pagando mais de mil em apenas alguns meses e com menos jogadores, fica cada vez mais óbvio que as contas são suspeitas, mas sem evidência de trapaça, os jogadores que trapaceiam escapam do castigo e aqueles que pagam com justiça (gritos, supostamente jogam com justiça) podem ver a atividade suspeita, ficam desanimados e deixam o jogo - ou aprendem a trapacear e, portanto, inicia os problemas.
Atualmente, para travian, não há nenhum jogador no topo do jogo que possa dizer honestamente que não trapaceia ou admitir que não contratou pessoas de países como phils e china para ajudá-los a jogar enquanto dormem ou estão de férias .
certamente deve haver maneiras melhores de se enganar em várias contas, ou este é o futuro dos jogos, onde apenas algumas pessoas reais compõem toda a base do jogo e o vencedor se baseia em quem pode contratar o máximo de pessoas nos países do terceiro mundo para jogar os jogos para eles.
a associação de US $ 0,01 via cartão de crédito (e veja quem tem números de cartão de crédito idênticos) seria uma maneira viável de detectar trapaças em várias contas no momento do registro?
fonte
Uma opção se você tiver vários servidores é exigir que qualquer conta do mesmo IP seja criada em servidores alternativos. Portanto, se você deseja criar 10 contas, ótimo, mas precisará criá-las em servidores que não interagem entre si. Isso impede que as pessoas no mesmo local possam jogar juntas, então existe essa desvantagem. No lado positivo, também interfere na eficácia dos proxies na trapaça.
Você vai acabar com prós e contras de qualquer solução que encontrar e não eliminará completamente a trapaça. Portanto, decida até onde você quer ir e fique de olho em como essas mudanças afetam a base de usuários.
fonte
A maioria das pessoas tenta perseguir várias contas com ferramentas externas. O que é estúpido. Se você tiver registros e métricas adequados para as atividades dos usuários, poderá aplicar a maioria dos contadores múltiplos com algumas varreduras de critérios dentro de um jogo.
E não, eu não vou lhe entregar o colapso - a verdade é - e muito poucas pessoas na indústria vão explicar isso - quanto mais estúpidos designers e codificadores de jogos estiverem por aí, melhor segurança no emprego para as pessoas que sabem que diabos eles estão fazendo?
A contabilidade múltipla só é viável para as pessoas se a cadeia de benefícios for mal projetada e puder ser manipulada facilmente por várias contas.
Se a contabilidade múltipla for difícil e demorada em termos de recompensa (não esquiva de detecção - apenas esforço e tempo de jogo)
Então, as únicas pessoas que realmente fazem isso são os jogadores hardcore. E você nem precisa se preocupar em levantar uma sobrancelha para eles, pois eles são condutores da comunidade. Eles se esforçam para conhecer todas as suas brechas e estudar a eficiência em um ambiente. Por todos os direitos, o esforço que eles investem deve ser o melhor recompensado. Você ainda consegue monetizar a maioria dos preguiçosos.
Bons designers nunca realmente atendem a todas as brechas - basta conectar as principais e garantir que você tenha uma maneira de eliminar o excesso da economia. Ou, obviamente, injete valor, se necessário.
Eu tenho uma lista em mãos de 83 contadores múltiplos. Eles acham que estão nos enganando - e desfrutam da felicidade da ideia de que são mais espertos que nós. A maioria também investe dinheiro real no jogo - não queremos bani-los. Nossos codificadores realmente não tinham tempo para um sistema - então, montei o CM com uma conta secreta para falsificar ocasionalmente suas cabeças no jogo e "legitimamente" roubar suas "riquezas".
Eles acham que estão nos jogando como empresa e estão ficando cada vez mais motivados ao pensar que alguém no jogo tem um machado para moer. O resultado final é - qualquer excesso crítico é descartado por um CM - considerando que ele sabe o que o usuário está aprontando e faz uma "emboscada" a qualquer momento. Tudo isso - pode ser automatizado por código, mas quem tem tempo ou orçamento para isso?
Qualquer pessoa que esteja criando sistemas complexos de detecção de várias contas para criar perfis de IDS de usuário, para evitar contas múltiplas em jogos, está mijando contra o vento.
fonte
Você realmente precisa identificar os comportamentos específicos que deseja impedir.
Por exemplo, se o problema real que você deseja evitar não é "pessoas criando várias contas", mas "indivíduos sendo segmentados por várias contas controladas pela mesma pessoa", é uma área em que você pode usar características semelhantes entre contas potencialmente clonadas para permitir que os próprios jogadores policiem o multiplaying . Em outras palavras, se eles detectarem traços de multiplaying, eles podem agir (por meio de alguma interface) para verificar semelhanças entre as contas e, se as contas tiverem muitas semelhanças, causar uma punição. Policiamento do jogador. O benefício disso é que a contabilidade múltipla é a mais importante para outros indivíduos que não participam de vários jogadores; portanto, se eles se sentem prejudicados, podem recorrereles podem tentar pegar o multiplayer no local. Ele também permite que coisas que, em um sistema de contas visualizado de forma plana, sejam falsos positivos (como ip), sejam evidências muito mais reais da contagem múltipla.
Da mesma forma, como outros já mencionaram, se é a conquista de classificação ao derrotar suas próprias contas falsas, um sistema como o sistema de repetições aqui no stackexchange ajuda a transformar pontos de ranking de si mesmo em um ganho de soma zero.
fonte
Verifique se a criação de várias contas não vale a pena .
Exemplos de como você faria isso:
Permita que os jogadores criem várias contas porque você não pode impedi-los de fazê-lo:
De todas essas respostas, esse método é o único que realmente funciona. Se as pessoas não quiserem criar várias contas, não o farão. Você pode decidir o que eles querem através de um design de jogo bom e atencioso.
fonte
Eu acho que há outra abordagem. Porque há outro dano em potencial: criar imagens para dois amigos que criam duas contas: uma mais frouxa e uma conta vencedora cada. Um dia, o amigo A usa sua conta mais flexível para perder todos os jogos contra a conta vencedora do amigo B. No dia seguinte eles mudam. Verificar os IPs não ajudará aqui.
Você deve verificar o comportamento dos jogadores (uma estratégia conhecida nos sistemas de detecção de intrusões). Se dois jogadores jogam um com o outro com frequência e um perde o tempo todo, isso é uma pista. Se os jogos terminam muito cedo, é outra pista.
Você pode pontuar essas dicas, adicionar a pontuação a uma reputação (não mostrar a reputação aos usuários) e banir contas se elas atingirem um valor definido por você. Talvez também deva haver anti-pistas que reparem a reputação.
Outras pistas dependem muito do seu jogo. Mas acho que você entendeu.
fonte
Você pode usar o armazenamento de dados local do Flash, nem todo mundo sabe como excluir dados do Flash.
fonte
Not everyone
infelizmente não é suficiente.Não é realmente uma solução, mas pelo menos um impedimento: diga que, se as pessoas forem descobertas com várias contas, todas as contas serão banidas. Isso deve impedir que muitas pessoas tentem. Mesmo se você realmente não banir todas as contas, ou não tiver uma maneira de detectá-las, a maioria ficará com muito medo.
fonte