Inteligência Artificial Goldeneye 007

imagem

Goldeneye 007 é um dos jogos mais importantes da história. Ela determinou o desenvolvimento de toda uma geração de jogos de console e abriu o caminho para os atiradores em primeira pessoa no mercado de consoles. Avance para mais de 20 anos atrás para descobrir como um dos 64 jogos mais populares da Nintendo conseguiu implementar inimigos e amigos de IA, com os quais você pode aprender algo ainda hoje.

Sobre o jogo


Após seu lançamento em 1997, o GoldenEye 007 não apenas determinou o destino da geração, mas também superou todas as expectativas. Rara, a própria Nintendo e até a dona dos direitos da franquia Bond, a MGM, não acreditavam muito nesse jogo. Lançado dois anos após o lançamento do filme e um ano após o lançamento do console, parecia fadado ao fracasso, mas se tornou o terceiro em vendas (oito milhões de cópias) por toda a vida da plataforma, perdendo apenas para Super Mario 64 e Mario Kart 64 . Sem mencionar o fato de que em 1998 ela ganhou o Prêmio BAFTA Rare e o título de Desenvolvedor do Ano.


Este jogo nos deixou um enorme legado: estabeleceu os padrões para o que esperar da próxima geração de atiradores em primeira pessoa, especialmente no comportamento de IA: personagens com padrões de patrulha, inimigos pedindo reforços, civis fugindo com medo, civis fugindo com medo, navegação suave e encontrando o caminho, um rico conjunto de animações, propriedades dinâmicas que ocorrem durante o jogo e muito mais. Ela não apenas estabeleceu os padrões de geração, mas também influenciou os jogos que a superaram - Half Life , Crysis , Far Cry e muitos outros.

Não estou interessado apenas em como a inteligência artificial funcionou, mas em como diabos os desenvolvedores conseguiram fazê-la funcionar. Eu falei sobre muitas técnicas de criação de IA, incluindo máquinas de estado, malhas de navegação, árvores de comportamento, tecnologias de planejamento e aprendizado de máquina, mas na época do lançamento do GoldenEye , elas não eram práticas estabelecidas na indústria de jogos. Além disso, o Nintendo 64 tem quase 25 anos e, comparado às máquinas modernas, possui recursos mínimos de processador e memória. Como você pode criar sistemas de IA e jogabilidade que funcionarão efetivamente no hardware com limitações tão sérias?

imagem

Para descobrir a verdade, entrei em contato com o melhor informante secreto: Dr. David Dawke . David desempenhou um papel importante na equipe de desenvolvimento e no GoldenEye 007 e seu seguidor espiritual Perfect Dark . Durante a entrevista, discutimos a inteligência do NPC, o comportamento do alarme, os sistemas de sensores, as ferramentas de navegação, o balanceamento de desempenho e muito mais. Então, vamos começar a entender como tudo isso foi organizado.

imagem

Arquitetura de construção


Basicamente, o GoldenEye se tornou o que se tornou, graças a duas pessoas: o produtor e diretor de jogos Martin Hollis e o programador de jogos e motores Mark Edmonds. Inicialmente, Hollis se inspirou em jogos como Virtua Cop , onde os inimigos corriam para o quadro da câmera, atiravam no jogador e depois fugiam, se escondiam ou reagiam dinamicamente aos hits do jogador. No entanto, Hollis procurou criar uma IA mais envolvente e reativa que superasse o padrão DOOM de 1993.

“Era importante mostrarmos a IA do jogador. Não há sentido em inteligência artificial complexa se o jogador não perceber. Seu NPC pode inspirar o significado da vida com inspiração, mas o jogador não notará isso se for suficiente para se inclinar na esquina e alimentar os inimigos com vantagem no jogo. Ou seja, a inteligência deve ser óbvia. A IA deve demonstrar a mecânica do jogo. A IA deve mostrar a estrutura do nível. E tudo isso realmente deve trazer algo novo para a jogabilidade em si ”

[Martin Hollis, Fórum Europeu de Desenvolvedores, 2004.]

Essa abordagem levou ao aparecimento de guardas e patrulhas, forçando o jogador a ser mais tático ao passar. Foram utilizados sensores de visão e audição, permitindo à IA reagir ao comportamento do jogador ou não notá-lo se ele rastejasse secretamente. Além disso, personagens amigáveis ​​e civis reagiram à presença do jogador, ajudando-o ou fugindo.

Quando David Dooke entrou no projeto, a maioria dos componentes básicos do mecanismo para movimento 3D, renderização e comportamentos simples de IA já foram criados por Edmonds. No entanto, nos últimos dois anos do desenvolvimento do projeto, a parte principal do comportamento da IA ​​e de outros sistemas básicos de jogabilidade apareceu. O jogo ficou menos focado no jogador, a IA apareceu padrões de patrulha, a transição para um estado de alarme, a capacidade de usar terminais de controle, banheiros e muito mais.

imagem

Para conseguir isso, Mark Edmonds criou um sistema de script completo dentro da base de código C que era constantemente atualizado e atualizado enquanto Dook e outros membros da equipe estavam experimentando idéias. Muitas vezes, uma nova idéia era proposta a Edmonds, que avaliava a possibilidade de sua implementação e a adicionava ao mecanismo durante o dia. Esse sistema de script permitiu que os desenvolvedores vinculassem muitas ações predefinidas em uma sequência de comportamento inteligente, dependendo de um contexto muito específico. Esses comportamentos fizeram com que seus próprios encadeamentos executassem e liberassem recursos o mais rápido possível, assim que o próximo comportamento "atômico" começou a ser executado e, em seguida, verificaram se a atualização poderia ser executada novamente. Tais comportamentos roteirizados foram usados ​​não apenas para personagens amigáveis ​​e inimigos, mas também para sistemas como portas e portões que abrem o tempo, além de protetores de tela cinematográficos no início e no final de cada nível que controlavam o jogador e outros personagens do mundo.


O GoldenEye Editor, originalmente desenvolvido pelo modder Mitchell "SubDrag" Kleiman, fez a engenharia reversa desses comportamentos de IA. Eles se transformaram em "blocos de ação" editáveis ​​a partir dos quais você pode criar seus próprios comportamentos. Guardas inimigos podem responder a uma ampla gama de sinais sensoriais: quando um tiro os atinge, eles percebem um inimigo, outro guarda morto em seu campo de visão, bem como tiros ouvidos nas proximidades. Além disso, os NPCs poderiam decidir se render, isso dependia da probabilidade, mas muito mais se o jogador estava mirando neles. Além disso, se a IA soubesse que o jogador não estava mais mirando nele, seu comportamento mudava. Como será explicado abaixo, os testes de visão e audição necessários para tais comportamentos foram executados em processos muito limitados e truncados, no entanto, criando resultados impressionantes no hardware fraco do N64.

Dependendo das condições, os guardas poderiam executar muitos comportamentos diferentes, incluindo degraus laterais, rolando para os lados, atirando agachados, enquanto caminhavam, fugiam e até lançavam granadas. Essas ações eram altamente dependentes da posição relativa do jogador e de seu comportamento atual.

Na verdade, era uma máquina de estado bastante simples (Máquina de Estado Finito), na qual a IA estava em um certo estado de execução de comportamento, enquanto os eventos no jogo não o forçavam a passar para a próxima. O mesmo princípio foi usado mais tarde no Half-Life , lançado um ano após o GoldenEye (em 1998), e os desenvolvedores da Rare estavam cientes do impacto que seu jogo teve no popular jogo de tiro Valve:

“Acima de tudo, lembro-me de uma reunião com os caras da Valve na exposição britânica da indústria ECTS, em 1998. Eles brincaram que o GoldenEye os fez refazer um monte de tudo no Half-Life. Eles decidiram fazer o que é certo.

David Doke, GamesRadar, 2018.

Desempenho de IA


Os dois elementos mais importantes do mecanismo Goldeneye para controle de IA foram a câmera e algo chamado "sistema STAN". Para simplificar a renderização, os níveis, mesmo grandes e abertos como a superfície de Severnaya, foram divididos em "salas" - blocos menores. Isso ajudou a manter o nível de desempenho desejado, porque apenas salas na pirâmide da câmera podiam ser renderizadas. Mas por causa disso, a IA geralmente não executava seus comportamentos básicos até que os personagens fossem renderizados pela câmera. Isso ajudou a reduzir os custos de computação e, ao mesmo tempo, fornecer recursos interessantes, os quais discutirei abaixo.

imagem

Mas o sistema mais importante relacionado a salas e comportamento de renderização foi o STAN (que é uma abreviação simples para Stand). Os objetos STAN desenvolvidos por Martin Hollis são malhas poligonais para uma única sala que são marcadas para uso como STANs. Todos esses objetos "sabiam" em que sala ou corredor estavam localizados. Se o personagem AI estivesse em cima de um certo STAN, ele poderia ver o jogador apenas se o STAN em que ele estava localizado estivesse localizado na sala atual ou na vizinhança. O sistema realizou uma verificação simples para ver se dois STANs podiam "ver" um ao outro. Isso permitiu testes de visibilidade menos dispendiosos em vez do rastreamento de raios 3D, o que exigiria muito mais recursos do equipamento. O sistema funcionou surpreendentemente bem, mas em alguns casos específicos ele "quebrou". Um exemplo disso são os guardas na barragem que não podiam ver o jogador até que ele se aproximasse do caminho: o STAN no topo da escada só podia ver o STAN no fundo, ou seja, o jogador poderia realizar qualquer ação nas proximidades e passar despercebido. Um segundo exemplo é o caminho em espiral nas cavernas, onde os NPCs vêem o caminho na frente deles, mas não do outro lado do abismo.

Ao colocar o STAN em todos os mapas, foi possível construir um sistema de navegação baseado em seus polígonos. Como eu disse anteriormente na AI 101, os jogos modernos geralmente usam malhas de navegação que criam uma superfície poligonal completa que define os locais em que um personagem pode se mover no mapa. Em sua forma moderna, as malhas de navegação apareceram apenas em 1997, então, para os desenvolvedores do GoldenEye, pegaram o sistema STAN e adicionaram objetos chamados PAD em cima. Os PADs estavam localizados no STAN, mas ao mesmo tempo estavam conectados um ao outro, criando essencialmente um gráfico para navegar na malha. Os personagens sabiam em que sala estavam e poderiam procurar o PAD da sala de destino se reagissem a uma comoção nas proximidades ou se movessem ao longo do STAN dentro da sala atual até o ponto de interesse.

Tudo isso foi complementado por sensores auditivos. Eles realizaram uma verificação simples da proximidade dos caracteres em um determinado raio da fonte sonora. Eles também levaram em conta o tipo de arma e a taxa de tiro. O PP7 com silenciador não atraiu a atenção, o PP7 padrão era alto, o KF7 Soviet foi ainda mais alto, e disparos em rajadas aumentaram o raio para um nível máximo, apenas um lançador de foguetes e uma arma de tanque foram considerados mais altos.

Mudanças adaptativas


Todas essas ferramentas e sistemas de IA são muito impressionantes; elas mostram como os desenvolvedores procuraram intencionalmente maneiras inteligentes e eficazes de criar os elementos específicos que eles queriam ver no jogo. Mas existem muitos outros elementos com os quais o GoldenEye criou comportamentos individuais de IA que foram criados quase individualmente para cada nível. Os NPCs não se escondiam atrás de obstáculos; portanto, em níveis como Silo e Train, scripts únicos eram necessários para fazer os personagens ficarem próximos a certos PADs e reagir dependendo de estarem agachados ou em pé a toda a altura.

imagem

Os NPCs não sabiam onde os outros personagens estão no mapa; portanto, nos níveis em que o jogador precisava proteger Natalya Simonov, era necessário não apenas garantir seu movimento, mas também criar comportamentos especiais para que os inimigos atirassem não apenas nela, mas também apontassem para o jogador. Para a implementação de personagens como os cientistas congelando no local quando entregaram uma arma, ou Boris Grishenko, que agiu como o jogador ordenou que ele, até que ele o deixasse de vista, eram necessários outros comportamentos que funcionassem em um contexto mais específico. Muitos dos personagens principais da trama tiveram que escrever seus próprios comportamentos de IA para cada nível. Por exemplo, Alec Trevelyan tem comportamentos diferentes em cada um dos seis níveis com sua participação: Instalação, Estátua, Trem, Controle, Cavernas e Berço.

imagem

Além disso, era necessário resolver problemas com o design de níveis e o ritmo do jogo. Os níveis externos de Severnaya acabaram sendo difíceis em termos de equilibrar a localização dos personagens de IA, então os desenvolvedores escreveram scripts de níveis que criam inimigos fora do raio de neblina e correm diretamente para o jogador. Mas se os inimigos estivessem muito longe, eles simplesmente se desligariam e poderiam se reativar no futuro.

Meu recurso favorito do GoldenEye é como o jogador foi punido por manuseio alto e agressivo de armas, se ele não passasse de nível rápido o suficiente. Lembre-se, eu disse que os NPCs não ativam o comportamento da IA ​​se eles ainda não foram renderizados? Se o NPC ouviu o som, mas ainda não foi renderizado, ele cria seu próprio clone para verificar a fonte de som e continua a criar clones, ou até que a excitação se acalme ou a câmera não renderize o personagem. Isso é especialmente perceptível em níveis como Arquivos, onde o jogador pode facilmente cair na armadilha na sala de interrogatório no início do nível devido a clones criados constantemente.

imagem

Para melhorar o ritmo do processo do jogo como um todo, bem como adaptar o controle à precisão insuficiente do controle Nintendo 64, as transições e a duração das animações foram cuidadosamente ajustadas devido aos testes, dando aos jogadores mais chances de determinar as prioridades dos inimigos ou usando um mecânico para mirar automaticamente ou com precisão.

Em conclusão


Após o lançamento do GoldenEye, seu conjunto de ferramentas de renderização e IA serviu bem para os jogos que se seguiram. O sucessor espiritual Perfect Dark da Rare usou os mesmos sistemas, parcialmente complementados por inovações. Como mencionado acima, os NPCs GoldenEye podem se esconder atrás da cobertura apenas usando um comportamento especialmente prescrito, mas no Perfect Dark, os inimigos já são capazes de calcular as posições da capa, incluindo as dinâmicas criadas por objetos antigravitacionais. Além disso, graças a experimentos com iluminação, calculados sombreando os vértices, os sensores de visão podem ter diminuído a visão. O mesmo processo foi posteriormente utilizado pela Free Radical Design para sua franquia Timesplitters , pois este estúdio foi fundado por vários membros da equipe de desenvolvimento GoldenEye . Nesta série de jogos, o sistema STAN / PAD foi complementado para melhor suportar a arquitetura de nível vertical.

Apesar de seu vigésimo aniversário, o GoldenEye estabeleceu os padrões que foram usados ​​no Half-Life e hoje os criadores de muitas outras franquias de atiradores estão tentando reproduzi-los. Espero que, depois de ler este artigo, você aprecie a profundidade total dos sistemas usados ​​no jogo e o nível de comprometimento e habilidade necessários para criar um projeto que tenha tido um impacto tão grande.

Source: https://habr.com/ru/post/pt459765/


All Articles