Não é ético criar uma IA de jogo secretamente não competitiva?

121

Em vários jogos, a IA é projetada para facilitar o jogador sem o seu conhecimento. Isso pode ter uma chance de 0% de acertar na primeira vez que você aparecer, um inimigo permitindo que você se esgueire por eles ao não se virar, ou a diminuição da dificuldade quando o jogador estiver machucado ou reiniciado várias vezes.

Eu ficaria ofendido se ao final de um jogo de tabuleiro ou esporte soubessem que um humano não se esforçara ao máximo.

A mesma ética existe para uma IA?

edit Como no título, minha principal preocupação era manter o handicap escondido do jogador, por exemplo, ao jogar um shooter, é razoável esperar que o jogador saiba que a IA tem um tempo de reação artificial e mira ruim, mas minha pergunta era sobre jogos que esconda coisas como inimigos que não usam a melhor arma ou diminuam a dificuldade quando o jogador está ferido.

PStag
fonte
14
Eu acho que 1989 Why Adventure Games Suck de Ron Gilbert é uma leitura interessante, mesmo se você estiver trabalhando em outro gênero. Princípios como "the object of these games is to have fun", "the player needs to know that she is achieving"e "as a rule, adventure games should be able to be played from beginning to end without "dying" or saving the game if the player is very careful and very observant"deve ser muito aplicável a projetar AIs - incluindo aqueles que "permitem" a vitória jogador.
Tobia Tesan
35
"Eu ficaria ofendido se ao final de um jogo de tabuleiro ou esporte soubessem que um humano não se esforçara ao máximo". Mas isso só é verdade para oponentes com força aproximadamente igual. AI e humanos são tão diferentes, é difícil comparar. Vamos jogar xadrez. Se eu me ofendesse, toda vez que um algoritmo de xadrez do computador não se esforçasse mais, eu perderia todas as vezes.
Trilarion
17
Você deveria reconsiderar qual resposta é o bom ...
Olivier Dulac
5
A maioria das IAs é irrealisticamente fácil de vencer. Por exemplo, por que os inimigos em Mario têm um padrão de movimento predefinido? Isso os torna muito mais fáceis de vencer! Como jogador, a chave para mim não é se eu ganho a IA mais difícil possível; é se eu fui desafiado o suficiente e se ainda posso ganhar. Se o desafio é muito pequeno ou muito grande, não é mais divertido.
jpaugh
3
Não é exatamente AI, mas no Minesweeper original (e na maioria das versões), as minas não são geradas até depois de você clicar no primeiro quadrado. Isso torna literalmente impossível clicar em uma mina desde o início. Penso que esta é uma demonstração perfeita de uma boa filosofia de design de jogos. Após o primeiro clique, se você clicar em uma mina, perderá o jogo. Mas simplesmente não é divertido perder no primeiro clique antes que você possa fazer qualquer coisa. Se a diversão vem de um desafio extremo ou de outra fonte (ou seja, história), sua primeira prioridade deve ser sempre a diversão do jogador.
CGriffin

Respostas:

42

O que você deseja realizar com sua IA?

Se o seu jogo está tentando contar uma história , é razoável que a IA seja ajustada para que você obtenha a história que deseja contar.

Se você deseja que o jogador tenha uma sensação de realização ao superar um obstáculo ou derrotar um oponente, fazer com que a IA controladora jogue o jogo tira isso - você precisa que a AI seja realmente a ameaça que é apresentada.


fonte
24
Embora para muitos jogos de tabuleiro você precise vislumbrar a IA, se você não inserisse alguns erros artificiais de vez em quando, eles seriam literalmente imbatíveis.
cúbico
19
A boa IA do xadrez está além do nível de mestre principal há mais de 20 anos. Os bots vão além do profissional 'normal' desde há 2 anos, e acredito que também melhoraram desde então, para não falar de jogos comparativamente simples como o Reversi, nos quais jogadores humanos não são competitivos há quase 40 anos. Mais recentemente, até jogos de ação como Counter Strike ou Starcraft II tinham bots que eram executados em níveis profissionais. Então, sim, é um problema que você deve considerar.
cúbico
5
@ Cubic: E jogos como xadrez e go são raras exceções. Se você quiser lançar um imitador de um jogo de estratégia popular como Porto Rico ou publicar seu próprio TBS novinho em folha, não haverá uma IA de nível especialista pronta para incluir em seu jogo, e você é improvável que você escreva um. Caramba, mesmo com o xadrez, você provavelmente não derrotará os especialistas se escrever sua própria IA.
9
Escrevendo sua própria IA? Isso está faltando. O xadrez pode ser o último jogo em que os humanos escreveram a IA que derrotou os humanos. O AlphaGo é baseado no Aprendizado por Reforço , e não há razão para supor que a RL seja inadequada para outros jogos de tabuleiro.
MSalters
3
@MSalters: Seria ótimo se os últimos avanços na IA levassem a um mundo em que existem resultados que facilitem a produção de uma excelente IA de jogo. Mas não é essa a palavra em que estamos vivendo. Além disso, no IIRC, as pessoas disseram a mesma coisa nas últimas meia dúzia de avanços na IA.
240

As AIs de jogos quase sempre não são competitivas, porque se a IA realmente se esforçasse para vencer, muitas vezes seria imbatível. Uma IA não está vinculada a limitações humanas como reflexos, precisão, percepção, fadiga ou capacidade computacional. Então, quando está jogando seriamente para vencer, nenhum humano jamais teria uma chance.

Vamos dar como exemplo o gênero de tiro em primeira pessoa. A maior parte dessa resposta deve ser aplicável à maioria dos outros gêneros. Há exceções. AIs têm dificuldades em derrotar humanos em jogos de estratégia muito complexos, por exemplo. Muitos jogos de estratégia 4x em tempo real e baseados em turnos trapaceiam muito para tornar os jogadores de IA desafiadores. Mas cobrir todos os gêneros de jogos tornaria o escopo dessa resposta muito grande. Então, vamos nos concentrar no gênero FPS.

Uma IA de jogo perfeito atiraria em você com perfeita precisão no primeiro quadro, onde um único pixel do seu personagem é visível para eles. Às vezes, você encontra isso no modo multiplayer quando joga contra trapaceiros. Eles são chamados de aimbots, e ninguém gosta de jogar contra eles, porque é extremamente frustrante.

Mas uma IA de mira tão perfeita é, de fato, a mais fácil de programar:

if (lineIsUnobstructed (this.position, player.position)) {
     rotateTowards (player.position);
     shoot();
}

Portanto, o jogo perfeito é o comportamento padrão. Fraquezas humanas como falta de atenção, percepção limitada, reação atrasada e pontaria imprecisa são coisas que você como desenvolvedor de jogos precisa programar intencionalmente. E você normalmente leva um longo tempo para ajustar esses aspectos até que o comportamento do inimigo seja plausível e ofereça a quantidade certa de desafio ao jogador. Quanto desafio é "a quantidade certa de desafio"? Pergunta muito interessante, mas não dentro do escopo desta questão.

Lembre-se também de que a maioria dos jogos para um jogador é inerentemente assimétrica por razões narrativas. Os jogadores e os adversários da IA ​​geralmente não têm os mesmos objetivos, têm ferramentas diferentes disponíveis e nem sempre estão sujeitos à mesma mecânica de jogo. Não é incomum que o único personagem-jogador enfrente dezenas ou centenas de oponentes em um único nível. Quando todo oponente seria tão bom quanto o jogador, isso seria impossível. Mas a maioria dos jogos está vendendo fantasias de poder. O jogador deve ser um herói de ação durão que pode derrotar sozinho um pequeno exército. Essa é geralmente a experiência que o jogador espera quando compra um jogo de tiro em primeira pessoa. Isso significa que, para dar ao jogador um desafio "justo", você precisa tornar o único inimigo relativamente fraco e estúpido.

Agora, com relação à pergunta "Devo facilitar o jogo quando o jogador está perdendo?" . Talvez talvez não. Muitos jogadores realmente se sentem condescendentes quando fracassam repetidamente em um desafio e, de repente, o desafio é retirado, tornando-se muito mais fácil. Portanto, você pode evitar isso, pelo menos sem perguntar ao jogador se ele quer ajuda.

Mas o que muitos jogos fazem com muito sucesso é uma técnica chamada bandas de borracha . Ajuste a dificuldade de encontros futuros, dependendo do sucesso do jogador em encontros anteriores. Às vezes você pode fazer isso naturalmente dentro da ficção do jogo.

Philipp
fonte
5
A IA certamente "tenta o mais difícil de vencer", mas apenas no nível em que foi programada. Um jogador de 6 anos jogando "socker" pode "tentar o máximo para vencer", mas não vence um jogador mais avançado. Posso programar a IA para simular um esquilo, e ele pode ser brilhantemente perfeito (como um esquilo), mas não ser capaz de vencê-lo no xadrez. Isso não faz com que a IA falhe.
Tim Holt
2
Você pode ter uma caixa de seleção "dificuldade adaptativa" no menu de configuração das configurações de dificuldade. Você pode deixar o jogador configurar uma série de dificuldades para que não seja totalmente adaptável e o jogador nem sempre começará a perder se estiver jogando bem o suficiente.
Peter Cordes
3
@ TimHolt Eu acho que há uma distinção sendo feita entre programar a melhor IA - ou seja, uma IA que está realmente se esforçando tanto quanto possível computacionalmente para vencer - contra uma IA estúpida, que ainda está se esforçando tanto (é um computador) , mas não necessariamente para vencer.
Nic Hartley
8
Eu acho que o argumento semântico sobre o que significa para a IA "tentar" não tem sentido e é improdutivo. Está claro qual é a interpretação correta no contexto, e o ponto permanece nessa interpretação. Reatribuir significado às palavras que o OP já usou resultará apenas em argumentos sobre o significado de uma palavra (neste caso, um coloquialismo), em vez de algo verdadeiramente perspicaz.
AlexanderJ93
9
@ AlexanderJ93 eu não. O capítulo 2 do livro clássico de Norvig menciona explicitamente que definir uma medida de desempenho para um agente inteligente não é opcional - isto é, o que o agente precisa maximizar. Claramente, nos jogos, o que você está tentando maximizar é: divertido .
Tobia Tesan
46

A IA de um jogo faz parte do design geral de um jogo. No final do dia, a IA que você cria precisa complementar o design do jogo.

Se o seu jogo é projetado para criar um ambiente desafiador e competitivo, uma IA "perfeita" pode ser uma coisa boa. Ao mesmo tempo, você deve considerar algo muito importante:

Humanos não são computadores .

Mesmo sem trapacear, em muitos jogos competitivos não é difícil criar uma IA capaz de derrotar qualquer humano sem esforço. As IAs não precisam ler as entradas do player para ter tempos de reação mais rápidos do que qualquer humano. Se o jogador executar uma ação que tenha alguma dica visual, a IA tem o direito, sob a sua regra de "jogar da melhor maneira possível", de usar até pequenas diferenças visuais para reagir perfeitamente ao que está acontecendo.

Para fazer isso funcionar, você precisa mudar a natureza do jogo em si. No jogo de humano para humano, você pode ter todas as animações de corda para ataques rápidos parecerem muito diferentes, já que o tempo de reação humano está sendo levado em consideração. Mas para computadores, esse jogo é trivialmente fácil; eles podem reagir instantaneamente e perfeitamente.

Portanto, em jogos de luta, se um computador perfeito tiver uma jogada rápida e você atacar com qualquer coisa que precise de mais quadros do que a jogada, o computador o atingirá . O que era um intrincado jogo de adivinhação, em que os jogadores precisam prever os movimentos um do outro se transforma na perda humana para o computador.

Se você deseja ter uma IA perfeita, precisa criar um jogo em que a IA possa jogar perfeitamente e ainda perder . Isso não é fácil, e não funcionaria em muitos gêneros. Isso só poderia acontecer se houver coisas às quais a IA precise reagir, mas sem tempo suficiente para fazê-lo. Isso seria como jogos RTS, onde há informações ocultas. Um jogo verdadeiramente perfeito exigiria conhecimento perfeito, mas isso é inatingível. Portanto, o computador terá que se contentar com "jogar perfeito, tanto quanto eu sei". E assim, pode ser enganado.

Mas, mesmo nesses jogos, a velocidade dos computadores lhes dá uma vantagem em qualquer situação em que haja informações bem compreendidas. Eles podem micro perfeitamente, posicionando cada unidade para o efeito máximo. E assim por diante.

Basicamente, a maioria dos jogos feitos para humanos são feitos para humanos , não para computadores.

Esta não é uma questão de "ética". É uma questão de para quem o jogo é feito e qual é o objetivo do oponente da IA.

Nicol Bolas
fonte
4
Se a IA pode jogar perfeitamente e ainda assim perder, um humano que joga perfeitamente também pode perder. Também não é o ideal. Em vez disso, você quer um jogo com complexidade suficiente e / ou informações ocultas que determinem uma estratégia perfeita seja impossível ou impraticável. É por isso que os humanos ainda vencem computadores no Chess and Go até recentemente; o computador não pode analisar completamente todos os movimentos possíveis e deve confiar em heurísticas, assim como o humano depende da intuição.
Raio
3
@ Ray: " Se a IA pode jogar perfeitamente e ainda perder, então um humano que joga perfeitamente também pode perder. Isso também não é o ideal. " "Perfeito" aqui está "dentro dos limites do jogo em questão". Dei o RTS como exemplo, porque o gênero geralmente usa Fog of War, o que impede que você saiba tudo. E sem o conhecimento perfeito, você não pode ter um jogo genuinamente perfeito. Você só pode ter um jogo "perfeito" dentro dos limites do que você conhece.
Nicol Bolas
2
@ Ray Isso pode ter sido verdade há dez anos, mas agora é menos: temos tabelas de soluções pré-calculadas para todos os jogos de 7 peças e menos finais. Uma vez que existem menos de 8 peças, há uma melhor jogada distinta em algum lugar nessas tabelas de 170 TB.
TemporalWolf
3
Os AIs de jogos de estratégia são muito piores do que "perfeitos, tanto quanto eu sei". Sim, eles têm um micro perfeito, o que os transforma em um desafio significativo para a maioria dos jogadores, mas também são muito confiáveis ​​em seu roteiro e não respondem bem a estratégias não-ortodoxas. Por exemplo, no Warcraft 3, você pode derrotar a IA mais difícil com um único trabalhador, pois a IA não aguenta a torre. Ele ignora o trabalhador que está construindo a torre até que seja tarde demais, depois passa a desperdiçar suas unidades contra aquelas torres, em vez de tomar a base inimiga.
Dulkan
6
Muito isso. Como uma anedota, meus amigos e eu estávamos jogando um RTS (Rise of Nations) contra alguns computadores sem problemas. Então, meu amigo modificou para que o limite de população passasse de 200 para 2000, e o mesmo computador nos matou, mesmo quando éramos três de nós contra um computador. Nós, humanos, tivemos retornos decrescentes ao controlar mais unidades de cada vez, enquanto o computador não.
Lord Farquaad
26

Como prefácio, vou correlacionar ética com trapaça. Se você se sente enganado, sente que algo antiético aconteceu com você.

Em poucas palavras, para tornar aceitável o comportamento da sua IA, torne crível o comportamento que ela imita. As pessoas não se sentem enganadas por um comportamento crível, elas se sentem enganadas por um comportamento inacreditável / irrealista. Portanto, seja crível e você não terá a questão da ética.

Além disso, observe o que a IA representa ao considerar sua pergunta: é o IntelliGENCE Artificial , não o IntelliGENT Artificial . Inteligência é a capacidade de adquirir e aplicar conhecimentos e habilidades. Inteligente é algo que normalmente possui alta inteligência. Em outras palavras, apenas porque algo tem inteligência não significa que seja inteligente. Um esquilo tem inteligência, mas não é (pelos padrões humanos) inteligente.

Por fim, decisões separadas que a IA toma das mecânicas de jogo reais e não deixe a AI violar as regras. Esse último ponto é talvez um pouco mais difícil de explicar, então aqui está um exemplo ...

Um exemplo com armas e IA

Sua IA não está simulando uma arma e como ela dispara, simula um ser pensante (ou talvez uma máquina) por trás dessa arma.

A arma em si é gerenciada por código que calcula se um tiro é acertado, levando em consideração o alcance, a precisão da arma, o padrão espalhado pela distância, a posição do atirador, se o atirador está se movendo, a habilidade do atirador etc. Você nunca deve mexer com esse código, pois está simulando a realidade mecânica e física. Se você fizer isso, você quebra a credibilidade.

Mas a coisa segurando a arma? Isso é gerenciado pela IA. Ela deve ter nenhuma influência sobre como a arma realmente funciona. Apenas como a arma é usada.

Portanto, dado o comportamento conhecido da arma, pergunte-se por que a IA pode falhar no primeiro tiro. Em seguida, faça com que seu comportamento de IA reflita o que faria o primeiro tiro falhar. É porque está simulando um oponente de baixa habilidade que dispara do quadril e não mira? É porque a IA dispara o primeiro tiro de pânico enquanto se move? É porque o oponente tem uma arma de baixa qualidade? É porque o oponente está muito longe?

Se sua IA simula esses tipos de coisas "por que", você criou uma AI que se comporta de maneira crível quando dispara e erra. E ninguém vai se sentir enganado por esse tipo de IA.

Um cenário para armas e exemplo de IA

Considere um cenário em que você se esconde e surpreende um oponente da IA. Eles pulam e disparam contra você descontroladamente enquanto correm para trás - e seu código de tiro basicamente oferece a eles uma chance muito baixa de acertar no primeiro tiro por causa disso. E supondo que o jogador saiba o que torna os chutes imprecisos, eles acharão essa falta altamente acreditável e aceitável.

Mas, se você quiser, a IA poderia dizer: "OK, preciso aumentar minhas chances de acertar. O que posso fazer ... OK, posso parar de me mover. Posso me agachar. Posso apontar minha arma usando miras ao invés de disparar de o quadril ". E a IA começa a mudar a forma como dispara, e o oponente começa a melhorar. Essa é a inteligência se movendo em direção à inteligência.

É claro que uma versão muito inteligente desse oponente não entrará em pânico e irá imediatamente para a ação mais eficaz. Eles podem rapidamente cair de joelhos e mirar em você com mira, e aumentam muito suas chances de acertar.

Resumo de armas e exemplo de IA / Conclusão

Basicamente, o que isso diz é para a IA que envolve atirar em alguma coisa, o "nível de habilidade" da IA ​​gira em torno da velocidade com que ela se move para fazer o possível para otimizar sua precisão. A AI super burra nunca descobre, sempre disparando a partir do quadril enquanto corre e se move. A inteligência artificial faz cada vez mais para otimizar a precisão. A AI REALMENTE inteligente apenas faz tudo o que pode para otimizar a precisão.

Tim Holt
fonte
19

Sim. Uma IA deve permanecer no nível em que foi definida.

Uma IA de xadrez sempre vence todos nós, e cabe a nós ajustá-la a algo que acharmos agradável. Eu nunca iria querer que a IA se embaçasse quando vir que vai ganhar ou aparecer um pop-up dizendo "companheiro em 25, você quer que eu seja pior no xadrez?". Apenas me bata até me cansar de jogar em um nível que está além de mim.

Não vamos pensar que dar ao oponente todas as rainhas tenha alguma coisa a ver com a IA.

Carl
fonte
10
@ mr23ceec O xadrez é infinitamente menos complexo que um jogo de estratégia baseado em turnos como Civilization. Quanto mais variáveis ​​você apresentar, mais difícil será para uma IA competir. Quando você traz edifícios, tecnologias, misturas de unidades, posição do mapa etc., é demais para ter uma idéia, que só pode seguir um script pré-programado. O que oyu tem no xadrez? 64 espaços, 6 peças diferentes com padrões de movimento definidos. Em Civ, há mais coisas acontecendo após 10 turnos. Eu nunca ouvi falar desse jogo geral que você mencionou, nem o Google encontra nada sobre isso. Se importa de compartilhar um link?
Dulkan
1
Lembra-me de contos de Mark Rosewater do poço: i.imgur.com/AvQrRTO.jpg
corsiKa
3
Eu realmente não entendo essa resposta. Parece que você está dizendo que uma dificuldade dinâmica da IA ​​é antiética e que a dificuldade da IA ​​deve ser corrigida. Entretanto, essa dificuldade fixa não precisa ser ideal e ainda deve haver predefinições de dificuldade diferentes. Isso acaba se transformando em um processo de calibração manual para descobrir quão alto eu devo definir minha IA do ChessBot para me desafiar, mas ainda ter uma chance de ganhar. Por que o ajuste automático da dificuldade é menos desejável do que o ajuste manual? Seria mais preciso e muito menos entediante.
Wang Nuclear
2
Concordo muito com esta resposta. Mudar secretamente a dificuldade da IA ​​é enganar, o que é antiético. Se um jogador escolhe a dificuldade 7, ele deve sempre ter dificuldade 7 . Além disso, essa resposta não é incompatível com a dificuldade dinâmica. Se um jogador escolher dificuldade dinâmica conforme o método X, ele deve sempre obter isso e somente isso. O que eu compro um produto, quero controlar o que meus bens comprados fazem.
Jose Antonio Dura Olmos
1
Uma coisa que provavelmente vale a pena notar é que o xadrez é basicamente um jogo "simétrico"; mecanicamente, a IA do xadrez está desempenhando o mesmo papel que o jogador humano. Isso tem algum efeito sobre o que devemos esperar de uma IA.
12

Eu diria que não. Você vê para mim jogos são, antes de tudo, produtos de entretenimento. Eles querem oferecer uma experiência a um público específico. Portanto, tudo depende de qual experiência e para qual público você deseja fazer uma experiência. Tome um novo jogo, por exemplo, como Cuphead. Este jogo é feito para pessoas que querem que o jogo seja difícil, implacável e assim por diante. Esse tipo de jogador se sentiria mal se o jogo diminuísse depois de morrerem X vezes (até agora eu morri 255). Então, novamente, diminuir automaticamente a dificuldade para um público mais casual pode ajudá-los a progredir no jogo e, geralmente, a se divertir. Então, em conclusão: "Conheça o seu público".

Uri Popov
fonte
7
Alguns jogos que eu jogo para um desafio. Alguns jogos que eu jogo para uma história imersiva e estragam o desafio. Alguns jogos eu quero os dois.
Wayne Werner
Mesmo em Cuphead, os inimigos não estão focados em rastrear você e matá-lo especificamente. Em vez disso, eles atacam em padrões previsíveis que você pode memorizar.
Casey
11

Tente ser competitivo em um esporte com sua data ou com seus filhos. Nos dois casos, você pode acabar praticando esse esporte sozinho, porque não foi divertido para eles.

O termo Inteligência Artificial é um pouco enganador. Por padrão, a IA é executada pelo computador que possui um conhecimento completo das regras e do estado do jogo; portanto, a AI saberia exatamente o que fazer e quando fazê-lo para vencer o jogador.

Isso não é divertido.

A parte de Inteligência da IA ​​deve ser transformada em idiotice, apenas o suficiente para desafiar os jogadores e mantê-los jogando.

Esse é um desafio e é por isso que os designers de jogos existem.

Alexandre Vaillancourt
fonte
Você pode ser competitivo com as crianças, elas não recebem voto nos jogos que você joga.
PSTag 19/10
3
@PStag Concordo, existe uma maneira correta de fazê-lo e uma maneira errada. Eu não iria tentar o meu melhor com os meus filhos :)
Alexandre Vaillancourt
9

Por fim, o papel da IA ​​é ajudar a produzir uma experiência recompensadora e digna de nota. O Dr. Ian Lane Davis fala sobre isso em algumas de suas entrevistas, que o papel de uma IA é perder de forma convincente. Entrevista com a PCAuthority (A mecânica que você mencionou são exemplos do jogo que não é convincente, ao invés disso, opta por uma maneira barata e fácil de proporcionar vitória ao jogador.)

Da mesma entrevista:

Seus oponentes de IA são ferramentas para drama e tensão, tanto quanto são agentes inteligentes.

Nos filmes, livros, programas de TV, o que queremos como telespectadores é que as chances aumentem contra o protagonista, mas apenas até certo ponto. Então queremos que os mocinhos ganhem. Quanto mais perto o inimigo chegava da vitória, maior a recompensa.

O objetivo é sempre entretenimento.

Xtros
fonte
1
Essa pergunta toda me faz pensar na meia-vida original. Eles continuam se comunicando em voz alta e revelam seus "planos" (flanqueando o jogador etc), o que na época deixou o jogador impressionado com a IA avançada, enquanto, na verdade, é bastante estúpido. :)
JanErikGunnar
9

O objetivo da sua IA não deve ser vencer, deve proporcionar um jogo agradável. Parte desse prazer está em ser desafiada. Minha abordagem a isso no Scrabble foi dupla: primeiro, aponte para peças que correspondam ao nível de vocabulário do ser humano. A correspondência de níveis melhorará ao longo de vários jogos, mas você também pode fazer uma estimativa bastante boa nos primeiros jogos. No Scrabble, você precisaria de um léxico classificado pela idade da leitura, embora como um substituto, o uso de um corpus grande para determinar a frequência de palavras em uso seja uma aproximação razoável. Em segundo lugar, use construções de reprodução que imitam inicialmente as humanas - por exemplo, um computador geralmente faria muito mais paralelas do que um jogador humano ocasional (suponho que não estamos jogando com especialistas de classe mundial). No entanto, à medida que a experiência contra um oponente específico aumenta,então você começa a usar alguns truques contra eles que eles não usam a si mesmos - mas esporadicamente, com a intenção de fornecer um exemplo para o ser humano imitar e melhorar seu próprio jogo.

O sucesso da sua IA será medido pela frequência com que o humano voltará para uma partida de retorno. Sua satisfação com o código deve vir de quão bem ele consegue tocar como um humano e não como uma máquina. Isso é algo que pode ser testado através da criação de competições online em que os humanos não sabem se estão jogando com outros seres humanos ou máquinas. (Um teste de Turing limitado)

Eu sempre me referi a esse estilo de codificação como "estupidez artificial" em vez de IA :)

Eu não considero isso antiético. Por outro lado, acho que usar todos os recursos de um algoritmo de computador para derrotar um humano é antiético - tanto quanto alguém jogando Scrabble online usando um computador para encontrar as peças com maior pontuação.

Outra maneira de 'emburrecer' um algoritmo é colocar limitações genuínas no nível humano das capacidades do seu jogador de IA - novamente, usando o Scrabble como exemplo, em vez de fornecer um vocabulário fixo, você pode fazer com que o seu jogador de IA aprenda seu vocabulário lendo a Internet artigos e você pode limitar sua capacidade de memória para que tenha que fazer escolhas deliberadas de quais palavras vale a pena lembrar. Não há absolutamente nada antiético nisso e ele alcança o objetivo de tornar o jogo mais humano - por exemplo, remover a vantagem do computador de ter um conhecimento perfeito de quais palavras são válidas no dicionário e quais devem ser desafiadas quando jogadas pelo oponente humano. .

Graham Toal
fonte
5

Existem várias razões pelas quais os oponentes do computador precisam ser emburrecidos.

Philipp já mencionou a parte de se divertir, mas outro que vale a pena mencionar é o de equilibrar as vantagens injustas dos oponentes dos computadores.

Não somos capazes de criar uma IA verdadeira que funcione como um jogador. Os oponentes de computador que enfrentamos hoje (mesmo quando chamados de IA) não estão analisando a imagem renderizada do jogo para encontrar o que atirar, como um humano. Nem precisam mover um objeto físico sobre a superfície da mesa para indicar que precisam virar.

De fato, a maioria dos oponentes de computadores tem o baralho empilhado a seu favor. Eles sabem a localização exata de cada jogador, qual a sua altura, onde o ponto ideal de tiro na cabeça é para esse tipo de inimigo / modelo de personagem, tem uma arma que eles podem dizer "atirar nessa coordenada" e é um golpe exato, etc. para tornar o jogo justo, agora você precisa se aproximar das limitações de um humano.

Portanto, grande parte desse "emburrecimento" é necessária simplesmente para criar um jogo justo para os oponentes que jogam de acordo com regras diferentes.

Se você já está fazendo isso, é um pequeno passo para aplicar mais algumas modificações no efeito de contar histórias e tornar as coisas mais divertidas.

Outro aspecto é a linha do tempo acelerada na qual a maioria dos jogos é executada. Existem jogos de quatro horas em que você é um atirador de elite. Leva muito mais tempo para aprender a disparar com precisão uma arma. Leva mais tempo do que isso para rastrear um animal através de uma floresta. Um bom jogo encontra o equilíbrio certo entre tornar o jogo trivial para vencer e ter que frequentar anos de academia de polícia.

Portanto, depende de quem e para que serve um jogo, se essas escolhas são boas. Por exemplo, muitos jogos grandes realmente não são um jogo único. São vários jogos mesclados em um, para atrair o público mais amplo possível e ganhar dinheiro suficiente para recuperar os enormes custos iniciais de um jogo com ação / captura de voz, voz, pontuação e textura.

Então você terá jogadores que querem competir com outros jogadores, que se preocupam apenas com a mecânica da batalha. Você tem outros que querem apenas experimentar uma história interativa e consideram as batalhas entre eles uma tarefa árdua, e outros que procuram principalmente um jogo de criação ou uma simulação de gerenciamento ou negociação de recursos.

Para encontrar o ponto ideal aqui, você deve oferecer um desafio para cada tipo de jogador, mas também deve mantê-lo simples o suficiente para que os outros tipos de jogadores possam ignorar aquelas mecânicas indesejáveis ​​(para eles) ou concluir o jogo enquanto estão jogando. mal neles.

Em jogos para um jogador, isso geralmente é conseguido permitindo sustentar déficits em um mecânico com habilidade excepcional em outro (por exemplo, criar uma armadura incrível e a luta se tornar mais fácil) ou ter configurações de dificuldade que permitem ativar / desativar o partes que o irritam.

No multiplayer, isso não é realmente possível, então você combina jogadores com rank / equipamento semelhante e ajusta a dificuldade durante todo o jogo.

No entanto, esses são truques bastante "acima da tabela". Todo jogador recebe a "última bala de dano duplo secreto" e pode tirar vantagem disso. A compreensão intuitiva da maioria das pessoas sobre a probabilidade de uma "chance de acerto de 50%" realmente está errada, e eles serão ajudados informando as porcentagens "traduzidas" para o "idioma". O que, como você diz, sobre truques "secretos"?

Bem, se um jogo fosse como xadrez, e lhe dissessem um conjunto de regras, mas na verdade essas eram uma mentira, isso seria trapaça.

Mas nenhum dos jogos de artigos recentes que li sobre os truques dos desenvolvedores de jogos para fazer você se sentir melhor era assim. A maioria eram jogos repletos de histórias, famosos por invocar um certo humor ou sentimento. E nesse contexto, exibir barras de saúde 100% matematicamente corretas torna o jogo muito menos emocionante.

É como um truque de mágica: os jogadores esperam receber uma ilusão, então acho que é justo dar a eles. Também é como um truque de mágica, pois algumas pessoas ainda querem acreditar que há mágica real e ficarão desapontadas quando descobrirem o truque.

uliwitness
fonte
4

Quando um oponente humano não se esforça ao máximo, você fica ofendido porque é condescendente. A IA não pode ser condescendente, mas você pode pensar que o desenvolvedor da IA ​​pode. Existem duas diferenças aqui:

  1. O desenvolvedor e o jogador nunca podem ser iguais, a menos que seja um jogo difícil para o NP que o desenvolvedor precise de aprendizado profundo para que uma IA corresponda a um humano e, nesse caso, a IA está sempre se esforçando ao máximo.
  2. A menos que o desenvolvedor tenha feito o jogo apenas para você, eles atendem a muitos jogadores (geralmente certos tipos de jogadores) e, portanto, não podem fazer suposições sobre seu nível de habilidade individual.

Isso também se aplica ao design de níveis. Você pode pensar que é condescendente se o desenvolvedor o receber com avisos óbvios, mas isso apenas torna o jogo chato. Da mesma forma, se é tão difícil que você precisa de reflexos de milissegundos, pode ser tão frustrante que é chato.

Reduz ao mesmo problema que está sempre entre os seres humanos. Se você praticou um esporte chamado "futebol de bebê", não se ofende com o inventor do jogo, porque eles não estão sendo condescendentes com você em particular. Igualmente "futebol de artilharia" é o mesmo na direção oposta.

Teria de haver um ser humano envolvido, por exemplo, um oponente multijogador que permita vencer, para que o ataque seja equivalente à OMI.

Yousef Amar
fonte
4

Ao criar um jogo, você deseja criar uma experiência , não uma IA que seja tecnicamente / mecanicamente "justa".

Em alguns jogos, os jogadores podem sofrer mais alguns golpes do que o normal quando estão com pouca saúde. Esse mecânico é implementado propositadamente para criar a experiência de sobreviver por pouco a uma luta. Os designers de jogos querem que você tenha essa adrenalina, mesmo que você tenha sofrido um ou dois golpes a mais do que deveria. Não há absolutamente nada antiético em implementar algo semelhante no seu jogo.

O mesmo conceito se aplica à IA em geral. Você pode criar as regras do seu jogo, mas o mais importante é que você está no controle total da experiência. Se tornar a IA inconsciente do seu movimento próximo ou fazer com que eles percam suas primeiras tacadas melhora a experiência do jogo, então implemente-os sem culpa.

Se a premissa / design do seu jogo girar em torno da IA ​​implacável, convém garantir que seja uma experiência divertida e positiva para o jogador. Caso contrário, você pode ajustar outras mecânicas para torná-la mais envolvente. Alguns exemplos em que posso pensar seriam dar ao jogador outras vantagens sobre a IA, como mais vida, velocidade, dano ou melhor armamento. Isso compensaria a diferença de habilidades entre uma IA implacável e o jogador.

Gigazelle
fonte
4

Você precisa dar um passo atrás e pedir um propósito

Em uma competição, o objetivo é descobrir quem é melhor. É por isso que não dar o melhor de si é o mesmo tipo de trapaça que os medicamentos para melhorar o desempenho: estraga o objetivo.

O objetivo da IA ​​em jogos de computador é entreter e desafiar o jogador. Uma IA perfeita fará com que o jogador sinta que realmente realizou algo, por isso deve parecer difícil. Isso pode ser feito ajustando o nível de dificuldade para que fique correto - não muito fácil, nem muito difícil. Ou trapaceando, adaptando a IA ou através de muitos truques que sabemos que os jogadores não percebem.

Não há questão moral aqui. O jogador não é mais enganado do que quando assiste a um filme com CGI ou um mágico de palco. Ele espera que o jogo o divirta e, desde que entregue, ninguém foi enganado, mesmo que alguns detalhes não sejam totalmente honestos. Mas também não é o mágico, nem o filme.

Tom
fonte
4

Não, não é antiético nem necessário

De fato, não há "ética" envolvida aqui, apenas diversão.

Dito isto, não deve ser necessário torná-lo não competitivo, no mundo ideal. Dê à AI exatamente as mesmas ferramentas que você, como o jogador possui. Isso significa uma clara separação no código do jogo. Por exemplo, ele não deve saber nada sobre seus itens / atores que você, como humano, não pode conhecer.

Em seguida, codifique sua IA para que ela possa deduzir tudo o que precisa saber sobre a situação atual, testemunhando-a como você, como faria um jogador humano. A IA deve fazer sua própria representação interna do mundo sobre o que vê. Obviamente, em algum momento você precisa fazer as pazes, ou seja, seria absurdo que a IA fizesse OCR em alguma representação textual em uma UI simulada. Mas deve ser simples permitir "ver" apenas os fatos sobre entidades no jogo que você, como humano, também pode ver através da interface do usuário.

Obviamente, a IA só pode dar os mesmos comandos para suas entidades como você pode e, em qualquer outro aspecto, também está vinculada às mesmas regras. Idealmente, você deve executá-lo através do mesmo código de rede que o seu cliente de jogo também usa (com a restrição adicional de garantir que ele não "saiba" sobre as coisas que seu cliente (segmentado por humanos) entregou pela rede, mas ainda não exibido pela interface do usuário.

Garanto-lhe que isso tornará a IA complicada o suficiente para implementar que emburrecer é o seu menor problema. E se você conseguir programá-lo para que ele seja reproduzido de maneira significativa, provavelmente será incrível.

Isso também lhe dará todas as ferramentas para ajustar a IA a um nível divertido para o jogador. Dê um tempo de reação artificial, faça com que ele se esqueça de coisas ou se esqueça de se lembrar de informações (por exemplo, uma leve ofuscação ou agitação aleatória de seus valores de entidade "lembrados"). Jogar contra uma IA que comete erros realistas resolveria o seu problema, pois a AI pode ser muito competitiva e, através de seus erros, ainda pode ser superada.

Vi essa abordagem uma vez, no jogo Angband (descendente de Moria, no gênero Nethack), muitos anos atrás. Desde que o jogo é single-player, que não era um AI jogando contra um ser humano, mas que simulou jogo humano. O mantenedor da época ("Ben" e, se bem me lembro) realmente fez o que eu descrevi; ele simulou todas as estruturas de dados do jogo real em um segundo conjunto de dados para a IA. A IA apenas "sabia" coisas que realmente havia testemunhado (incluindo atributos de monstros e coisas assim). Muito impressionante.

E escusado será dizer que nunca mais vi essa abordagem, pelo menos para que eu pudesse reconhecê-la - toda "IA" em qualquer jogo de computador era sempre estupendamente estúpida e pouco inteligente, previsível, as regras muito óbvias, com aplicação forçada. trapaça para dar uma chance contra jogadores, e pior.

TL; DR: no mundo ideal, a questão não deve ocorrer; no mundo real, conseguir uma IA divertida para trabalhar já é um desafio (para o programador).

AnoE
fonte
2

Em essência, a qualidade absoluta da IA ​​como oponente realmente depende do tipo de jogo, da quantidade de tempo gasto no desenvolvimento da IA ​​no jogo e da energia da CPU / ciclos alocados por trás da IA.

Em um jogo de tabuleiro simples, como o Chess, a IA alimentada por computador doméstico sempre venceria porque pode triturar os movimentos melhor do que um humano e os algoritmos para isso são muito bem conhecidos.

Respectivamente, nos atiradores de arcade (na maioria dos jogos de FPS), uma IA pode ter uma mira perfeita (assumindo coisas como velocidade do projétil >>> velocidade do jogador) e uma "visão" perfeita. Nesse caso, você também pode acabar com uma situação em que a AI apenas apagará o jogador fora do jogo, supondo que os recursos do jogo sejam iguais entre a IA e o jogador. Por outro lado, por exemplo, conecte o reconhecimento de visão em uma IA do FPS e em breve você terá problemas reais de processamento e o player de repente é o favorito (por enquanto!).

No RTS, a IA executada em um PC normal pode ser superior ou inferior, independentemente de seguir ou não as regras. As complexidades do jogo decidem se o equilíbrio da IA ​​exige desvantagens ou se é necessário "trapacear" para oferecer um desafio decente. O mesmo vale para 'jogos de tabuleiro complexos' (jogos de estratégia baseados em turnos, como Civilizations, mas também Go [por um tempo no PC doméstico]) e alguns outros gêneros, como simuladores de voo e corrida, onde as superioridades da IA ​​- quase instantânea reação Às vezes, o processamento de números superior, a memória perfeita e o conhecimento completo do ambiente circundante - podem ser ofuscados pelas complexidades da mecânica do jogo.

O fato é que a IA do jogo padrão que é executada em um computador doméstico com limitações semelhantes às humanas (por exemplo, a IA vê / ouve o que você vê / ouve) quase sempre perde para o jogador além dos simples jogos de tabuleiro (por enquanto !). Por outro lado, simplifique as regras, adicione conhecimento extra no jogo (por exemplo, a IA conhece o ambiente, incluindo onde você está, o tempo todo), poder de processamento e tempo de desenvolvimento da IA ​​e o ser humano pode acabar perdendo o jogo.

No geral, a questão da ética é, na minha opinião, bastante irrelevante e enganosa. O objetivo de jogar um jogo de computador vs AI não é ganhar ou perder, mas aproveitar a experiência. E para esse fim, em termos de balanceamento, adicionar AI / handicaps / bônus de jogador é geralmente muito mais fácil do que criar AIs de níveis diferentes.

Geenimetsuri
fonte
2

do Wikcionário:

errar é humano

Para mim, uma das características mais desejáveis ​​(e mais difíceis de alcançar) de uma IA de jogo adequada é a capacidade de cometer erros, como nós (humanos) fazemos.

Porque erramos, por padrão. AIs não, por padrão. A integração de AIs de jogos com essa "qualidade" inerentemente humana ajudaria bastante a evitar esse sentimento de "trapaça" (de qualquer forma, ganhando ou perdendo).

Isso também seria uma característica que uma IA apropriada precisaria dominar para passar no teste de Turing: não se acreditaria que uma inteligência fosse de origem humana se não fosse capaz de mostrar a “capacidade” de tornar “humano” (ou erros humanos).

lógico
fonte
2

Existem várias maneiras pelas quais uma IA inimiga facilita para você.

Provocando a animação depois de obter um sucesso. Isso permite que o jogador termine a animação de atordoamento e se prepare para um ataque próprio. Seria muito fácil desativar a provocação e depois bloquear o player.

Repetidamente usando ataques que podem ser combatidos (ou evitados e deixando o inimigo aberto por danos). Nos atiradores de capa de baixa qualidade, esse é o inimigo que sai da capa para permitir que você os atinja. Um ai competitivo não seleciona esse tipo de ataque. Concedido isso pode ser corrigido com plot .

A telegrafagem se move (a conclusão) para que o jogador tenha a chance de reagir. Essa animação de corda é uma parte muito importante da dificuldade de escalar, especialmente em combate baseado em reação.

É muito fácil tornar um inimigo difícil de enfrentar. Mas é muito difícil torná-lo um inimigo desafiador e divertido. Parte disso é fazer o inimigo fazer coisas idiotas e permitir que o jogador tenha uma jogada vencedora.

catraca arrepiante
fonte
2

Não, em geral não é - como desenvolvedor de jogos, você está criando uma experiência interativa e o comportamento da sua IA é determinado pelo tipo de experiência que você está tentando criar. Como um contra-exemplo, considere uma situação em que você é capaz de implementar uma IA que seria imbatível para qualquer humano no planeta. Você deveria fazer isso? Seria antiético "emburrecer" a IA para que o jogo seja realmente jogável? Uma coisa antiética seria tirar proveito de seus jogadores; mas isso - esse é apenas o design de jogabilidade usual.
Deixe-me abrir uma lata de minhocas para você: visite este tópico do twitter .

PS Note, no entanto, que alguns jogadores não verão as coisas dessa maneira. Eles podem até ficar com raiva. Mas isso decorre do mal-entendido de como o desenvolvimento de jogos e a IA funcionam. Isso não torna a prática antiética.

Filip Milovanović
fonte
1

Eu diria que depende bastante do jogador.

Pessoalmente, estou acostumado a os robôs serem significativamente mais estúpidos ou injustamente hábeis (às vezes até os dois). É difícil para mim lembrar de um jogo em que os robôs estavam em dificuldade "justa" e não espero que sejam assim, porque sei o quão limitados eles são.

Também muitos desses "ajustes" seriam notados no final se o jogo se popularizar o suficiente.

Eu diria que ainda é melhor informar os jogadores sobre "mudanças na dificuldade" e eu sei dos jogos que fazem isso.

ZeroUnderscoreOu
fonte
0

Resposta alternativa que é mais sobre design, motivada pela edição da sua pergunta.

Você declarou em sua edição ...

... minha principal preocupação era manter o handicap escondido do jogador, por exemplo, ao jogar um shooter, é razoável esperar que o jogador saiba que a IA tem um tempo de reação artificial e mira ruim, mas minha pergunta era sobre jogos que escondem coisas como como inimigos que não usam a melhor arma ou diminuem sua dificuldade quando o jogador está em jogo.

Qual é o verdadeiro problema aqui

A verdadeira questão aqui é sobre design, não ética. O mau design é o que faz com que algo pareça "antiético". Você está tentando resolver aqui: equilibrar a habilidade do jogador contra o desafio adversário do jogo.

Um jogo que propositadamente "impediu" o desafio de equilibrar com a habilidade do jogador, adotando uma abordagem de design simplista demais para tentar equilibrar a habilidade do jogador e o desafio do oponente. Portanto, não é antiético fazer isso, é apenas um design ruim.

Digamos que o jogador se depare com um grande oponente forte e difícil demais para ele. Isso significa que ou o jogador se aprofundou no jogo para uma área que é demais para eles (pense em Casadores se você for para o norte da Goodsprings em Fallout: NV), ou o designer colocou o jogador contra adversários desafiadores quando eles sabem o jogador não está pronto.

Como você resolve isso da perspectiva do design? Simples. Você não coloca o jogador contra um oponente que é muito difícil para ele. E você projeta uma diferenciação clara entre oponentes, e parte dessa diferenciação é a habilidade do oponente. E você progride no jogo de tal maneira que é mais difícil (mas não impossível) para um jogador entrar na cabeça deles muito rápido.

Isso é basicamente o que a idéia do Flow tem a ver com o design de jogos.

Um exemplo com três ogros

Imagine que você tem 3 tipos de ogros em seu jogo: um ogro fraco que balança em você com um graveto, um ogro de nível médio com um galho maior e um ogro enorme com um grande tronco.

Se você é um novo jogador que não ganhou nova vida, armadura, etc., o pequeno ogro teria que acertá-lo 4-5 vezes para matá-lo. Mas uma vez que você está no nível superior, ele dificilmente pode fazer algo com você.

O ogro de nível médio pode matá-lo como iniciante em 1-2 hits, mas se você for de nível superior, são necessários 4-5.

O ogro enorme pode matá-lo como iniciante em 1 golpe, ou 4-5, se você estiver em um nível superior.

Todos os ogros sempre determinam se atingem da mesma maneira. Como eles determinam se atingem nunca muda. Não há tempo de reação artificialmente baixo (ou alto), nem dano artificialmente baixo (ou alto). Eles apenas são o que são.

A solução

Se o jogador estiver com um nível baixo, coloque-o contra apenas pequenos ogros. Talvez lhes dê um ogro de nível médio de vez em quando como um desafio. Ou vários ogros pequenos juntos. Nunca os coloque contra um monte enorme de ogros pequenos, múltiplos médiuns ou um gigante, pois eles morrerão.

Se eles são de nível médio, coloque-os contra ogros de nível médio com alguns ogros de nível baixo apenas por "diversão". Talvez tenha um enxame de pequenos para torná-lo mais interessante. Nunca os coloque contra um monte de ogros de nível médio ou um ogro gigante, pois eles morrerão.

Apenas alto nível sobe contra o ogro gigante. Talvez dê a eles alguns ogros de nível médio de vez em quando, ou um ogro gigante com um enxame de pequenos, ou qualquer outra coisa para impulsionar o desafio. Nunca os coloque contra um monte de ogros gigantes, pois eles morrerão.

Com essa abordagem, você nunca precisa "prejudicar" nada, porque o jogador nunca verá coisas que talvez precisem ser enfraquecidas.

E se um jogador de baixo nível estiver realmente disposto a se aprofundar no jogo em que se depara com ogros gigantes, deixe-os morrer - eles merecem.

Tim Holt
fonte
Obrigado pela sua resposta, mas dentro do seu exemplo do orge que parece não abordar a edição a que você está se referindo, mostrar ao jogador um grande ogro que ele não pode superar e deixá-lo falhar é transparente. O jogador só derrotará os ogros grandes quando eles estiverem no nível correto. Seria secreto, por exemplo, se em vez de o jogador subir de nível, eles se tornassem mais fortes sem que o jogador saísse do jogo e assumisse que se tornou um jogador mais habilidoso.
PStag 31/10/19