Bora falar sobre IA?

Saudações aos dóceis.

Bora falar sobre IA de jogos? Opa, por que não? Como esse semestre estou pesquisando sobre IA aplicada a video games, resolvi compartilhar uma análise inicial que fiz essa semana. Sobre isso, apenas não estranhem a escrita, bem mais formal que a corrente aqui no Loading Time.

Antes de postar a análise propriamente dita, convém explicar rapidamente alguns conceitos. Primeiro, há certa polêmica com a semântica do termo “inteligência artificial” quando se refere a video games. Há inclusive um excelente artigo a esse respeito, escrito pelo André Kishimoto do blog Tupinihon. Procurem pelo PDF na internet, que vocës acham. Sigamos. Nos meios acadêmicos há quem diga que o temo “IA” é incorreto quando aplicado a games, pois neles inteligência não há (o que é verdade). Segundo esse raciocínio, a verdadeira IA é aquela aplicada ao campo das ciências, enquanto que nos video games o que há de verdade é apenas simulações de comportamento, rudimentares na maioria dos casos.

Minha opinião sobre isso é o mesmo que discutir sexo dos anjos. Ok, não há mesmo inteligência dentro dos video games. Mas não há simplesmente porque não é necessária, pois o sentido de existência dos jogos é o entretenimento, é o lúdico. Ao contrário do que muitos rardecores podem achar, video games não são simulações (Gran Turismo também não é, viu queridos?). Assim sendo, a IA dos video games têm uma natureza diferente daquela do campo científico, embora tenha princípios parecidos.

Outra coisa é que é preciso entender três termos para o texto abaixo fazer mais sentido: padrões de movimento, waypoint/pathfinding e máquinas de estados. Sobre padrões de movimento, vale citar Kishimoto:

“são compostos por movimentos aleatórios, algoritmos de perseguição e evasão. Movimentos aleatórios podem ser implementados simplesmente obtendo um valor aleatório e incrementando a posição de um personagem com tal valor.”

Sobre máquinas de estados:

Uma máquina de estado finita é uma máquina abstrata que define os estados em que um personagem pode se encontrar e quando o mesmo muda de estado. O estado atual da máquina determina como o personagem deve atuar no jogo.No jogo Pac-man, por exemplo, uma máquina de estado é implementada para cada fantasma do jogo. Um fantasma pode estar nos seguintes estados: “procurando jogador”, “perseguindo jogador” e “fugindo do jogador”. Quando o fantasma está
procurando o jogador, ele apenas se movimenta pelo labirinto até encontrar o jogador. Quando ele se depara com o jogador, verifica se ele pode perseguir o jogador ou se precisa fugir (isso acontece quando o jogador obtém poder de “engolir” o fantasma), e troca de estado conforme a situação. Se o fantasma pode seguir o jogador, ele muda seu estado para “perseguindo jogador” e tenta alcançar o jogador. Se durante esse tempo o jogador ganha a habilidade de engolir o fantasma, o fantasma muda seu estado para “fugindo do jogador”

Em relação a waypointing, sugiro a leitura do artigo escrito por Adan Saltsman para o site Gama Sutra. Agora sim podemos ir para os jogos.

—————————————————————————————————–

Galaga (1981)

Lançado para Arcades em 1981, Galaga goi um game de tiro espacial feito pela produtora japonesa Namco. O objetivo do jogo consiste em controlar uma nave espacial e atirar em hordas de inimigos cujas formas lembram insetos. Por ter sido feito em uma época cujos equipamentos eletrônicos eram modestos, Galaga não podia contar com recursos complexos de inteligência artificial para ditar os comportamentos dos NPCs.

O comportamento dos inimigos baseava-se em padrões de movimento pré-definidos. As naves voavam (movimentavam-se) pela tela em formações pré-definidas, e após todas terem feito seu movimento, passavam a adotar padrões de ataque. Após eliminar todos os inimigos da tela, o jogador passava para o estágio seguinte, o que também aumentava a dificuldade do jogo. Dessa forma, o padrão de movimento das formações mudava, com aumento de velocidade das naves inimigas e a inclusão de ataque em alguns desses movimentos (e não apenas após todas as naves terem feito o movimento inicial). Esse padrão não se altera no restante no jogo, apenas se intensifica, requerindo do jogador maior grau de reflexo nas ações. Contudo, decorando os padrões de movimento das formações de naves, o jogo se torna previsível.

Só existem duas alterações dentro dos padrões de movimentos já descritos. Durante os estágios de bônus (os “Challenging Stages”), as formações adotam padrões de “vôo” diferentes daquelas dos estágios regulares. Outra variação dentro dos padrões de movimento ocorre quando uma espécie de nave especial aparece na tela e ativa um raio magnético que atrai a nave do jogador. Caso essa ação seja bem sucedida, a nave “especial” recua para o alto da tela. Assim, o jogador é obrigado a resgatar sua nave ao custo de uma vida. Caso consiga, passa-se a jogar com duas naves ao mesmo tempo, dobrando o poder de ataque, porém tornando-se mais vulnerável em contrapartida.

Super Mario Bros (1985)

Clássico da Nintendo de 1985, Super Mario Bros foi o definidor do gênero que ficou conhecido posteriormente como “game de ação e plataforma”. Aclamado pelo público e pela crítica, muito o brilho do jogo se deveu ao seu game design, incluindo o modo como suas fases foram construídas. Parte integrante delas, os inimigos, era por outro lado simplórios. Isso aconteceu devido não só as limitações técnicas do NES, como por opção de design, uma vez que a ação central do jogo era pular obstáculos, e não destruir inimigos (como era em games como MegaMan e Ninja Gaiden, por exemplo).

Sendo assim, inimigos como os Goombas, Koopas e Hammer Bros possuiam padrões de movimento bastante simples que se mantinham idênticos independentemente das ações do jogador. Os dois primeiros apenas andavam de um lado para o outro, sendo comum caírem em buracos do cenário. Já no caso dos Hammer Bros, eles apenas pulavam e atiravam martelos de maneira aleatória, em um padrão de ataque bastante previsível. Isso acontecia porque para o game design, mesmo os inimigos eram meros obstáculos cujo sentido era atrasar o jogador, não ser um adversário de fato do jogador. Mesmo Bowser, seguia esse padrão. O único cálculo extra que havia nesse sentido era a colisão dos inimigos com os tiles do cenário, cujo exemplo mais óbvio era o Koopa vermelho, que ao colidir com um tile localizado próximo ao que seria o chão, tinha seu padrão de movimento invertido (se estava andando da esquerda pra a direita, então passava a andar no sentido inverso).

Durante o jogo havia apenas uma exceção, Lakitu, que possuía seu próprio padrão de movimento, um pouco mais sofisticado que os demais. A IA do jogo nesse momento (estágio 4-1) passava a funcionar quase como se fosse uma rudimentar máquina de estados. Lakitu ficava sempre no alto da tela, movimentando-se da direita para a esquerda e vice-versa. Durante esse movimento ele jogava inimigos na tela de maneira aleatória. Porém, seu padrão de movimento mudava caso o jogador se movimentasse a ponto de acionar o rolamento da tela, de forma que parecesse que Lakitu seguia o jogador. Se o jogador parasse de rolar a tela, Lakitu permanecia nela, criando uma dificuldade adicional ao jogador. Havia mais um aspecto especial sobre esse inimigo, que é o fato de que ele era o único que era reposto pelo jogo, caso o jogador o destruísse. Quando esse evento ocorria, o jogo acionava um contador, e o inimigo retornava alguns segundos depois, exatamente na tela onde estava o jogador, não importando em que ponto da fase fosse (exceto no final). Por fim, o último aspecto especial desse inimigo ocorria quando o jogo detectava que o jogador havia alcançado a porção final (o trecho com o poste e bandeira) do estágio. Nesse momento o jogo recuava Lakitu, impedindo-o de continuar “perseguindo” o jogador.

F-Zero (1990)

F-Zero foi em 1990 um dos games de lançamento do SNES, impressionando na época pelos seus efeitos gráficos (como o Mode 7, por exemplo) e sua alta velocidade. Todavia, no que concerne a IA, F-Zero, tal qual Super Mario Bros, é simplório. Durante os circuitos, os três carros controlados pela IA (eram quatro carros no total, contando com o do jogador) seguiam rotas pré-determinadas, sem alteração de suas rotinas qualquer que fosse a situação das corridas. Uma vez definidas as posições dos carros na largada, não havia ultrapassagens entre esses agentes, como também não havia reação às ações do jogador, como uma fechada ou uma trombada. Esse tipo de contato somente ocorria se o jogador entrasse na rota seguida pelos carros controlados pela IA.

Provavelmente a IA limitada a esses waypoints simples foi uma opção de design, pois o foco do desafio do jogo estava atrelado ao traçado das pistas em conjunto com a velocidade imprimida pelos carros do jogo. Agentes de jogo com estados mais avançados talvez tornassem o desafio alto demais, ou mesmo injusto.

Street Fighter 2 (1991)

Lançado pela Capcom para arcades em 1991, Street Fighter 2 ainda é o maior clássico dos games de luta. Esse mérito deveu-se em parte pelo design de seus personagens e quesitos técnicos avançados para sua época, mas também pela sua máquina de estados que nenhum outro game similar conseguia realizar até então. Como a mecânica de jogo era baseada em combates mano a mano, uma IA bem realizada era necessária para criar a ilusão que uma luta de fato estava ocorrendo no jogo.

Cada personagem do jogo possuía sua própria máquina de estados, dando dessa forma a impressão de que cada um realizava um estilo de arte marcial distinto, como o caratê de Ryu e Ken ou kung-fu de Chun-Li. Ao começar a luta, a IA do agente passava a avaliar as situações de acordo com as ações do jogador. Caso o jogador tomasse uma atitude defensiva, buscando recuar e atacando mais de longe, o agente perseguia o jogador, buscando a aproximação ideal para desferir os golpes. Entretanto, uma série de variáveis alterava esse expediente, incluindo o nível de dificuldade e o personagem do agente em questão. Todavia, se a situação fosse inversa – com o jogador partindo para o ataque – a IA do agente avaliava dentro dos parâmetros mencionados o melhor método de defesa e contra-ataque.

Nesse sentido, talvez um dos “charmes” de Street Fighter 2 fosse o grau de trapaça realizado pela IA do agente que lutava contra o jogador. Embora muitas vezes visíveis, essas trapaças eram moderadas e jamais estragavam a experiência de jogo. Dentro dessas situações, era possível perceber a realização de movimentos que necessitariam de um tempo maior caso fosse realizado pelo jogador, ou padrões de ataque considerados incomuns.

Sendo assim, dificilmente havia repetição de padrões, o que poderia tornar as lutas previsíveis e monótonas. Ao contrário, a IA do jogo dava ao jogador a sensação de imprevisibilidade, tornando cada partida única.

Super Smash Bros (1999)

Lançado pela Nintendo em 1999, Super Smash Bros é um game de luta atípico. Saindo do esquema tradicional estabelecido por Street Fighter 2, em Super Smash Bros trata-se de um game de luta em que quatro personagens se digladiam em uma arena tridimensional. Ao invés de nocautear os oponentes, o objetivo aqui é jogá-los para fora da arena. Para tal evento aconteça, é necessário fazer o oponente acumular dano, tornando-o assim mais suscetível a ser atirado para fora da arena de luta.

É esse o principio que rege todas as regras dentro de Smash Bros, e isso inclui os estados avaliados pela IA do jogo. A partir das características de cada personagem, a IA avalia os estados básicos e vai avançando nesse sentido. Ainda sim, Super Smash Bros é um jogo bem óbvio nesse sentido. Por exemplo, quando o jogador está sua taxa de dano baixa (portanto com pouca chance de ser arremessado da arena), o agente controlado pela IA se mantém em um padrão próximo do neutro, variando pouco entre ataque e evasão. Conforme a luta se desenrola, caso em algum momento a IA avalie que o jogador esteja em desvantagem (com taxa de dano alta ou próximo de um precipício), o estado do agente é alterado para o ataque, tornando-o ofensivo. Por outro lado, se o jogador estiver em posição de vantagem, a IA do agente faz uma leitura das condições da arena para buscar a melhor rota de evasão (evitando armadilhas, por exemplo).

Embora conte com os recursos usuais de outros games de luta, como golpes comuns, especiais e arremessos; um dos diferenciais de Smash Bros é a presença de itens durante as lutas. E eles também mostram a obviedade da IA do jogo. Durante as lutas, há um contador que joga itens de maneira aleatória na arena. Quando esse evento ocorre, a IA do agente detecta isso, mudando sua prioridade. Ou seja, caso esteja em uma luta corpo a corpo com o jogador e um item cai na arena, o agente passa a ignorar o jogador e muda seu estado para ir atrás do item, independente de qual seja. Caso esse item seja um que dê invencibilidade, o agente muda seu estado para perseguir o jogador indefinidamente, enquanto o efeito do item dura. Entretanto, se o jogador for quem adquirir esse mesmo item, o agente muda seu estado para a evasão total, evitando o jogador de todas as formas enquanto o efeito de invencibilidade estiver funcionando.

Por outro lado, embora simples, as rotinas de luta funcionam bem. A IA de Smash Bros é capaz de mudar estados dependendo do alcance e tipo de ataque desferido pelo jogador. Como o jogo se preza por lutas muito dinâmicas e rápidas, os jogadores normalmente não têm tempo para notar essas limitações dos estados do jogo.

Perfect Dark (2000)

Lançado em 2000 pela Rare para o Nintendo 64, Perfect Dark foi a atualização produzida a partir da engine originalmente desenvolvida para o game 007 Goldeneye (1997). Perfect Dark possuía uma IA considerada avançada para sua época, cuja engine suportava diversos estados para os NPCs, o que dava certo ar de “inteligência” para os inimigos. Esse aspecto fica bastante claro nas opções de ajuste do modo multiplayer. Além dos acertos de dificuldade (tempo de reação, precisão da mira, etc.), o jogador também podia ajustar “personalidades” para os NPCs (no jogo são chamados de “Sims”) que enfrentam os jogadores nas arenas do modo multiplayer. Dois exemplos claros nesse sentido eram os chamados “Revenge Sim” e o “Coward Sim”; No caso do primeiro citado, ele possuía padrões de ataque, evasão e perseguição “comuns”, ou seja, agia como um agente bastante mecânico. Porém, ao ser morto por um jogador, o estado do Revenge Sim mudava para uma constante perseguição a seu algoz, ignorando os demais jogadores e qualquer forma de defesa ou evasão. O Revenge Sim também se torna capaz de trapacear, lendo a posição do alvo constantemente, não importando onde ele esteja. Assim, fica impossível fugir do Sim, restando ao jogador ou eliminá-lo (e manter assim esse ciclo), ser morto (retornando o Sim a seu estado normal), ou esperar por outro jogador matar o Sim. O Coward Sim por sua vez, mantinha-se em constante estado de evasão, permanentemente lendo a posição dos jogadores e traçando rotas de modo a evitar confrontos diretos. A única ação complementar desse Sim era passar constantemente por pontos com munição e armadura, como forma de simular um sentido de auto-preservação.

Já o modo single player, por sua vez segue regras de IA mais tradicionais dos jogos de tiro em foco interno, em que os NPCs lêem a posição e a atuação do jogador (a depender da missão que ele realiza, o jogo reage de uma determinada maneira), agindo de acordo com esse contexto. Em Perfect Dark, os estágios do modo single player possuem algumas missões especificas (indo além do esquema de pegar chaves para prosseguir) que ao ser cumpridas ou não pelo jogador, dispara eventos que muda o estado dos agentes do jogo. Por exemplo, se o jogador está em uma missão que exige a destruição de câmeras de vigilância e acaba sendo visto por uma delas, o alarme é disparado. Dessa forma, todos os inimigos da área mudam seu estado, passando a caçar o jogador, lendo sua posição e perseguindo-o não importa onde esteja. Assim que o jogador é encontrado, os inimigos entram em modo de combate. Sobre esse ponto específico, o game suporta algumas variações de estado consideradas sofisticadas para a época. Por exemplo, caso o jogador desarme o soldado a curta distância, este muda seu estado para o combate corpo a corpo (melee mode). Caso esse evento ocorra a longa distância (o jogador atira sobre a arma na mão do inimigo), o inimigo “percebe” sua clara desvantagem, mudando seu estado para o evasivo, fugindo do jogador até reencontrar uma arma de fogo (caso houvesse uma).

NHL 2006 (2005)

Evolução da franquia de jogos de hóquei no gelo, lançado em 2006 pela EA em diversas plataformas. NHL 2006 usa uma bem implementada máquina de estados para realizar a sua simulação dos comportamentos dos jogadores durante as partidas. Por ter menos jogadores do que modalidades como Futebol (12 jogadores de hóquei no total contra 22 de futebol), NHL 2006 possui um ajuste mais fino dentro de sua máquina de estados. Antes de falar desse aspecto, convém apenas salientar que os jogadores de hóquei não possuem funções tão específicas quanto os de futebol, no que tange, por exemplo, funções táticas (como a marcação ou apoio ao ataque/defesa) e posicionamento. Isso significa que os estados dos jogadores levam esses aspectos em conta.

A máquina de estados também leva em conta as características dos times em suas versões reais, o que significa, por exemplo, que se uma determinada equipe da NHL possui um estilo de jogo mais defensivo, seus jogadores “in game” não sairão desabalados para o ataque ao roubar o puck do adversário. Isso influência também na forma de jogar das linhas de jogadores. Sobre esse pormenor convém mais uma contextualização: os times de hóquei possuem por padrão quatro linhas de 5 jogadores (todos menos o goleiro) que podem ser substituídas a qualquer momento. Quando essa função é responsabilidade da IA (tanto por parte do time “do computador” quanto do jogador que seleciona a opção de trocas automáticas) a IA analisa três estados possíveis: estado físico dos jogadores, situação de jogo e eventos especiais. No primeiro caso, a IA avalia se os jogadores da linha que está em quadra estão cansados, e caso essa condição seja verdadeira, a linha é trocada por jogadores com as melhores condições físicas (a linha reserva mais inteira). No segundo caso a avaliação condiciona as trocas ao estado da partida. Por exemplo, se o jogador está na frente no placar, a IA pode colocar uma linha que possua jogadores de caráter mais ofensivo e atributos superiores (aqueles com maior overall). Em caso contrário, a Ia pode optar por linhas com maior poderio defensivo, com o objetivo de segurar o placar favorável. No terceiro, a IA reage a um evento especial da partida, como um power play (quando um jogador faz falta e é retirado momentaneamente do jogo). Se esse evento é favorável ao jogador (ou seja, fica com um jogador a mais em linha), a IA seleciona uma linha de penalty killing que possua os jogadores mais defensivos e de melhor condição física naquele momento. Caso contrário, a IA seleciona uma linha de power play com os jogadores mais ofensivos.

Como o jogador não controla todos os jogadores de sua linha ao mesmo tempo, a IA também é responsável pelo comportamento deles. A máquina avalia os estados de acordo com as coordenadas dadas pelo jogador antes da partida, levando esses parâmetros sempre em consideração. Por exemplo, se o jogador opta por formações que priorizem o ataque, a IA determinará o posicionamento dos jogadores sob esse parâmetro. Somado a isso, a IA avalia os estados dos jogadores conforme a movimentação do atleta selecionado pelo jogador, para que assim ele tenha opções de passe para realizar as jogadas. Nesse sentido, a IA também avalia as regras do jogo, impedindo, por exemplo, que os atletas do time do jogador fiquem sempre em impedimento. Também é considerada pela IA as já mencionadas orientações ofensivo-defensivas das linhas em quadra, assim como a função do jogador. Ou seja, um zagueiro dificilmente ficará posicionado próximo ao gol adversário

Dentro de todos esses parâmetros, o goleiro é considerado um agente especial do jogo, pois possui estados próprios e distintos de todos os demais jogadores. Enquanto o puck estiver longe de sua área de atuação, a IA o mantém inativo, pois o goleiro fica momentaneamente sem função. Porém, quando o time adversário aproxima-se do campo defensivo oposto, a IA passa a avaliar uma série de estados que determinam a atuação do goleiro. A depender do lado pelo qual o ataque adversário avança, o goleiro posiciona-se de modo a dificultar o ângulo de chute do jogador de posse do puck. Caso o chute seja disparado, a IA avalia dentro dos parâmetros do goleiro (seus níveis de velocidade, reflexo, etc.) qual o melhor método de defesa. Caso seja, por exemplo, um chute rasteiro, o goleiro realizará um butterfly (coloca-se os dois joelhos sobre o gelo, e em seguida cada perna é movida para seu lado correspondente).

Em conjunto, todos os aspectos citados acima formam aquilo que se convenciona chamar entre os video games de “simulação esportiva”. O sucesso desse gênero de game ocorre em parte devido a bem realizada ilusão de realidade que a IA e seu conjunto de estados proporciona.

—————————————————————————————————

Lembrando que, como mencionei(mencionei, né?) no inicio do post, era uma análise rápida e tal. Até mesmo porque esse é um assunto que pode (e deve) ser aprofundado. Qualquer dúvida o campo para comentários está aí para isso.

Até mais, amguinhos.

André V.C Franco/AvcF – Loading Time.

9 thoughts on “Bora falar sobre IA?

  1. Bem legal, e o unico game me acordou pra IA nos games foi Perfect Dark. A partir de então, eu sempre procuro entender como funciona em cada game. Valeu pelo Post

  2. Perfect Dark possui uma ”inteligência” artificial incrível!Finalizar esse game no modo perfect é para poucos! As fases que são desbloqueadas são mais difíceis que o normal. Considero esse game imperdível!

    Comentário do AvcF: O jogo era incrível mesmo, para época. Já a IA delenão, ele era bem feita, mas safada também…

  3. cacete,curti demais esse post!
    vai fazendo um post gigante pro mes q vem ou pedaços em pedaços pra gnt ver,pq realmente achei muito interessante a ideia de q “NÃO EXISTE IA NOS GAMES” mas uma simulação de parametros pré-estabelecidos para reagir a determinadas instancias!

  4. cheguei a estudar IA na facul… gostei e aprendi um pouco de prolog, que achei ridículo, já que vc programava o que queria de resposta… bom, deixa pra lá… heauhahuaehuae

    mas a IA MAIS apelona em jogos de luta é a do mortal kombat 2, 3 e ultimate, a partir do 3 char.

    Ou ainda, o sub zero era o personagem mais ridículo para jogar, pq SEMPRE, independente de como o computador estava, ele ou abaixava ou bloqueava o gelo…… no mk3 ainda dá pra direcionar o gelo do alto, o que ajudava, mas ainda assim era ridículo!!! huaehueauhea

    Comentário do AvcF: O que tornava a IA de Mortal Kombat ridícula era seu exagerado grau de desonestidade. Antes, lado convém deixar claro que quando se trata de IA, TODOS os jogos “roubam” o jogador de alguma forma. Sim, aqueles momentos que ocorre alguma coisa e o jogador berra “QUE COMPUTADOR LADRÃO!!!” (conheço muita gente que chama a IA de “CPU” ou “computador”) não eram meras desculpinhas. Acontecia mesmo. Essa desonestidade servia (e ainda serve) como um facilitador para a programação, uma vez que quanto mais complexa for a IA, mais processamento toma do equipamento. Sem contar que IA mais complexa não significa ser mais divertida, que é o objetivo final de todo jogo.

    Voltando a Mortal Kombat, o problema decorreu provavelmente da preguiça dos responsáveis por essa área no projeto. A partir de MK3, passou-se a usar o expediente de ler as entradas do jogador. Assim a “máquina” podia calcular os estados a partir desses comandos, o que terminava em reações absolutamente mecânicas e artificiais, de tão rápidas e precisas. Qual era a graça de você dar um golpe e a “máquina” instantaneamente já saber 85765897645 soluções para te detonar no instante seguinte? Some isso com aquelas mentiras típicas de MK (como os combos impossíveis, as corridinhas ridículas e manhas idiotas dos personagens) e temos um jogo, limitado, previsível e acima de tudo frustrante.

  5. mk3 era tenso!
    nunca passava da 3° ou 4° luta,e se passava era apelar com o rain(“ninja roxo” nas suas palavras avcf kkkkkk)
    pq com um chute dele manda o cara de um lado da tela pro outro
    e era posivel dar uns 10 hits facil facil

  6. Interessante sua análise. Como você classificaria a IA de PacMan (arcade clássico)? Só por curiosidade… =)

    Comentário do AvcF: os fantasmas de Pac Man funcionam por máquina de estados, de uma forma até óbvia. Quando o jogador está se movimentando pela tela em seu estado normal, os fantasmas “lêem” sua posição constantemente, dando a impressão de que perseguem o jogador. Conforme se avança pelos estágios e a dificuldade aumenta, essa leitura de posição fica mais refinada, fazendo com que os fantasmas fiquem mais próximos ao jogador. Quando a pílula de invencibilidade é pega, os fantasmas mudam de estado, passando a fugir constantemente do jogador, usando a lógica descrita acima de maneira invertida. Se o jogador dentro do estado de invencibilidade “come” o fantasma, ele muda para o estado “morto”, que é quando ele vai para o centro da tela, ficando lá um tempo para depois voltar.

    Considerando que se trata de um jogo de 1980, é uma “IA” muito bem feita. Não foi por acaso que o jogo fez o sucesso que fez.

  7. Você falou a palavra mágica: “Considerando que se trata de um jogo de 1980”.

    Mesmo você já tendo citado ele no início do post, preferi cutucar mais um pouco pois não me lembro de nenhum outro jogo dessa época que tenha uma IA melhor/mais rebuscada que isso (tipo, IA em vários elementos na tela de forma independente, mesmo que com o mesmo objetivo).

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *