Técnicas de Inteligência Artificial em Jogos Eletrônicos

  • 1,847 views
Uploaded on

Técnicas de Inteligência Artificial em Jogos Eletrônicos …

Técnicas de Inteligência Artificial em Jogos Eletrônicos

O artigo trata de uma análise das principais técnicas de inteligência artificial aplicadas a jogos eletrônicos.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,847
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
83
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Técnicas de Inteligência Artificial em Jogos EletrônicosRoger Ritter1, Guilherme Daronch Taufer²Instituto de Ciências Exatas e Geociências – Universidade de Passo Fundo (UPF)Caixa Postal 611 – 99.001-970 – Passo Fundo – RS – Brasilrogerritter@upf.br¹, 110532@upf.br²Abstract. Since many years ago, the usage of artificial intelligence insoftwares are increasing. Due to this, the curiosity make us know better howthese practices function at the attractive world of games. How there areseveral techniques of artificial intelligence used by game developers, we choseto study and describe in this article just the techniques more used today.Resumo. Há muitos anos a utilização de inteligência artificial em softwaresvem crescendo. Devido a isso, a curiosidade nos leva a conhecer melhor comofuncionam essas práticas num mundo tão atraente para nós jogadores, que é omercado dos jogos eletrônicos. Como existem diversas técnicas deinteligência artificial utilizadas pelos desenvolvedores de jogos, escolhemosestudar e expor nesse artigo apenas algumas das técnicas maisimplementadas em jogos eletrônicos atualmente.1. IntroduçãoEm jogos digitais, o uso de técnicas de Inteligência Artificial (I.A.) vem se fazendo cadavez mais necessário, e sendo até mesmo indispensável em certos casos. Estas técnicaspodem ser aplicadas em diferentes tipos de tarefas: resolução de problemas (puzzles,brain-teasers), planejamento de tarefas, planejamento de trajetórias, controle de agentesautônomos (NPCs – Non-Player Characters), entre outras diversas aplicações.Crocomo (2006) tem argumentado que a indústria do videogame vem fundindotecnologia e criatividade para produzir alguns dos melhores entretenimentos do século21. Nos últimos anos, muita ênfase foi dada ao realismo dos jogos eletrônicos, fazendosurgir uma variedade de motores gráficos, físicos, de áudio e de Inteligência Artificial(IA). Grandes esforços foram empregados principalmente na ambientação gráficautilizada. Sweetser (2002) disse que o próximo foco no mercado de jogos seria aelaboração de personagens que se comportam de forma realista e podem aprender e seadaptar, ao invés de personagens com maiores resoluções e com mais frames porsegundo.Bittencourt (2006) destaca que para poder integrar técnicas de I.A. em jogosdigitais, se faz necessária a inclusão de um novo componente em um motor de jogo(engine), além dos já tradicionais componentes destas Engines de Jogos: motoresgráficos, de áudio, de rede, de física, de controle de dispositivos de E/S (interação). Estecomponente é o motor de Inteligência Artificial – I.A
  • 2. 2. Inteligência Artificial em JogosA utilização de Inteligência artificial em jogos não é novidade, segundo Crocomo(2006) o seu uso começou em jogos clássicos como xadrez ou jogo da velha, porématualmente é difícil encontrar um game que não utilize alguma técnica de IA em seucódigo.Nos últimos 25 anos, os esforços empreendidos pela indústria de jogos seconcentraram principalmente na tecnologia gráfica produzida, permitindo a criação demundos realistas com gráficos 3D e avançadas engines físicas. No entanto, Fairclough(2001) também destaca que sofisticadas técnicas de Inteligência Artificial em jogosestão começando a ser utilizadas apenas atualmente.As técnicas de Inteligência Artificial, segundo Bittencourt (2006), exploradaspela indústria de jogos são muito simples quando comparado com as técnicasexploradas no meio acadêmico e utilizadas em aplicações industriais. Um dos fatoresque leva a uma menor exploração de técnicas é a falta de tempo disponibilizado aodesenvolvimento de um jogo digital. Muitas vezes é aplicado IA somente após algumaspartes do jogo já terem sido implementadas, como, por exemplo, os motores gráficos.2.1 - Técnicas de IA utilizadas nos jogos digitaisCorrea e Pastor (2012) frisa que recentemente a indústria de jogos digitais passou apesquisar técnicas não só em seus ambientes gráficos, mas também, no desempenho enos movimentos e estratégias calculadas pelos personagens especialmente em jogosRole-Playing Game (RPG) e Massive Multiplayer Online Role-Playing Game(MMORPG).Um exemplo para que isto acontecesse é o jogo de Role-Playing Game (RPG)Starcraft II desenvolvido pela Blizzard (2010). Quando escolhido o modo difícil, se jogacontra a Inteligência Artificial, e esta tem uma grande vantagem contra o jogadorhumano, já que, pode fazer cálculos rápidos e ter um tempo de resposta melhor que oplayer. Porém, uma desvantagem neste caso é que os movimentos dos personagensartificiais são previsíveis, isso abre a chance de estudar o comportamento de seu inimigoe definir uma estratégia para vencê-lo. Com isso, o mesmo pode ser derrotadofacilmente.Com base neste caso, a indústria de jogos digitais pretende pesquisar técnicascom o objetivo de eliminar a previsibilidade de jogadores humanos, analisando osmovimentos do oponente e realizando movimentos da Inteligência Artificial de acordo.Crocomo (2006) salienta que a evolução das técnicas utilizadas em jogoseletrônicos é evidente nos últimos anos, tornando a experiência muito mais imersiva etrazendo jogos cada vez melhores.2.1.1 - Máquinas de Estado FinitoSegundo Fairclough (2001) a técnica de Máquinas de Estado Finito (Finite StateMachines – FSM) é uma das técnicas mais utilizadas na implementação de jogos, pois ébaseada em regras, tem baixa complexidade e na maioria das vezes, é utilizada pelosdesenvolvedores por ser de fácil gerenciamento.
  • 3. As Máquinas de Estado Finito permitem que sejam armazenados tanto osestados dos personagens do jogo, como do ambiente. Desta forma, torna-se possívelgerenciar tanto o cenário do jogo quanto seus personagens.Segundo Crocomo (2006) a ideia principal desta técnica é dividir o jogo emestados, contendo a sua transição para outros estados de acordo com uma determinadacondição, baseadas no comportamento do jogo.Figura 1. Tabela de transição de estados.No entanto, por ser determinística, esta técnica torna previsível a estratégiautilizada pelo computador, como no exemplo citado anteriormente por Correa e Pastor(2012).As Máquinas de Estado Finito, quando construídas em maior número, podem serorganizadas em hierarquia. Denominada como Hierarquia de Máquinas de Estado Finito(Hierarchial Finite State Machines – HFSM), serve para implementações um poucomais complexas, no qual a função de transição de estados recebe as entradas e o estadoatual, que retorna o conjunto de saídas e um novo estado que passa a ser o estado atual.Figura 2. Hierarquia de máquinas de estado finito.
  • 4. 2.1.2 - ScriptingsSegundo Crocomo (2006) Scripting é uma linguagem de programação de alto nível,criada para simplificar uma tarefa complexa para um programa em particular, onde opróprio jogador pode programar o comportamento de seus personagens. Muito popularentre os desenvolvedores de jogos, tem sua fama devido ao fato de utilizar scripts fáceisde implementar e entender, até mesmo por usuários sem experiência em programação.Geralmente, os scripts são criados de forma a lembrar uma linguagem natural, como oinglês, por exemplo.Scripting podem ser utilizados em várias partes do jogo por diferentes pessoas:● O programador pode definir nos scripts os comportamentos a serem tomadospelos personagens do jogo.● O roteirista pode utilizar scripts para implementar suas histórias.● Se o jogo for exposto ao público, os próprios jogadores podem utilizar scriptspara personalizar seus personagens, respeitando os limites definidos peloprogramador.● Os artistas gráficos usam scripts para automatizar processos de animação comgrande quantidade de repetição.Esta grande quantidade de aplicações só é possível porque a linguagem scriptingé normalmente separada dos dados do jogo. Desta forma, é criado um ambiente seguropara que não programadores realizem mudanças no programa sem causar problemas.2.1.3 - Lógica Nebulosa ou Lógica FuzzyA Lógica Nebulosa, também conhecida como Lógica Fuzzy, foi introduzida em 1965,pelo matemático iraniano Lofti Asker Zadeh, [ZADEH, 1976]. Essa lógica seria umprimeiro passo no sentido de se programar e armazenar conceitos vagos emcomputadores, tornando possível a produção de cálculos com informações imprecisas, aexemplo do que faz o ser humano.A lógica Fuzzy não deixa de ser uma extensão da lógica booleana, segundoPedrycz (2007), pois admite valores lógicos intermediários entre o FALSO (0) e oVERDADEIRO (1). Por exemplo, utilizar o valor intermediário 0,5. Isto significa queum valor lógico difuso é um valor qualquer no intervalo de valores entre 0 e 1.Nos jogos eletrônicos o papel desta técnica é normalmente limitado a complexoscomandos condicionais. É utilizada na seleção de comportamentos e tomada de decisão.Esta técnica pode permitir, por exemplo, o cálculo de um “nível de medo” de umpersonagem com relação a um jogador.2.1.4 - FlokingCrocomo (2006), destaca que a técnica de floking implementa ao programa a opção desimular o comportamento natural de um grupo de indivíduos, tais como, o movimentode um cardume de peixes ou até mesmo o voo de um bando de pássaros. É uma técnicabastante utilizada para simular ambientes com alto grau de realismo, explorados pelojogador.Desenvolvida como uma alternativa a gerar scripts para um número grande deindivíduos, na técnica de flocking cada personagem navega de acordo com sua
  • 5. percepção e as leis da física que governam o ambiente. Nesta técnica as informaçõesnão são mantidas de uma etapa para outra, ou seja, não existem estados, de forma avisar à economia de memória. A cada novo ciclo o personagem possui uma novapercepção do ambiente, através do qual realiza uma ação.Muito utilizada em jogos de primeira pessoa, como Half-life e Unreal, para gerarcomportamentos dos grupos de personagens, e em jogos de estratégia em tempo real,como Enemy Nations, para gerar movimentação realista dos exércitos. Embora estatécnica tenha aplicações bem limitadas, é muito simples e eficiente para gerarmovimentações realistas de grupos de indivíduos.2.1.5 - Árvores de DecisãoSegundo Sweetser (2002) a técnica de aprendizado através de árvores de decisão éinserida em jogos onde são necessários predição e classificação. Quando utilizada paraprever uma sequência de ações traz um bom resultado.O uso desta técnica permite um personagem aprender com o jogador ou comoutros personagens no desenrolar do jogo. As experiências armazenadas no decorrer dojogo com o personagem são organizadas no formato de uma árvore, a partir da entropia,que é uma medida de desordem dos dados armazenados. Com uma estrutura fácil deserem compreendidas, as árvores de decisão são robustas a ruídos e possuem umaprendizado eficiente.2.1.6 - Redes Neurais ArtificiaisAs Redes Neurais Artificiais (RNA), segundo Haykin (2001), são inspiradas emsistemas biológicos e possuem uma grande quantidade de aplicações que utilizamtomadas de decisões, processamento de informações e otimização.Esta técnica é mais utilizada no aprendizado off-line de jogos, treinando osparâmetros de controle dos personagens durante a etapa de desenvolvimento do jogo.Em jogos on-line ainda não tem grande utilização por parte dos desenvolvedores, pois ouso desta técnica pode gerar comportamentos não aceitáveis para seus personagens.Por possuir diversas arquiteturas diferentes para resolver problemas diferentes,não é uma técnica simples de ser implementada, pois necessita de muitos ajustes emseus parâmetros.Nos jogos que utilizam redes neurais, o objetivo é que o computador aprenda aimitar o comportamento do jogador.2.1.7 - Algoritmos EvolutivosOs Algoritmos Evolutivos (AEs), segundo Sweetser (2002), tem por objetivo adaptar asestratégias utilizadas pelo computador em relação às estratégias utilizadas pelo usuário,ou seja, fazer com que o jogo apresente um grau de adaptabilidade em relação às açõesdos jogadores e às variações do ambiente de jogo.Apesar de existir diversas aplicações para Algoritmos evolutivos, existe umagrande resistência de serem utilizadas pelos desenvolvedores de jogos, pois algunsautores afirmam que está técnica é lenta e (assim como a técnica de Redes Neurais)permite a obtenção de comportamentos “não aceitáveis” durante o processo deaprendizado dos personagens. No entanto, é reconhecido que AEs possuem o potencialpara atuar em áreas nas quais técnicas tradicionais de IA apresentam deficiência.
  • 6. Yao (2000) frisa que essa técnica vem sendo utilizada desde os anos 80 paraevoluir estratégias de jogos como para o jogo ‘Iterated Prisoner’s Dilemma’ de grandeimportância para economistas, cientistas sociais e cientistas da computação.3. Exemplos de jogos digitais que utilizam técnicas IASweetser (2002), cita técnicas de IA utilizadas em jogos:Tabela 1. Técnicas utilizadas nos jogos eletrônicos.TÉCNICA JOGOSMáquina de Estado Finito- Age of Empires- Half Life- Doom- QuakeScripting - Black &White- Unreal- Dark Reign- baldur’s GateLógica Nebulosa ou Lógica Fuzzy- Swat 2- Call to Power- Close Combat- The SimsÁrvores de Decisão - Black & WhiteFlocking- Half Life- Unreal- Enemy NationsRedes Neurais- BC3K- Creatures- Heavy GearAlgoritmos Evolutivos - Creatures- Returm to Fire II
  • 7. 4. Vantagens, Desvantagens e aplicação das Técnicas de IA em JogosDigitaisCorrea e Pastor (2012) destaca que as técnicas para jogos em geral fazem parte de umavertente que defende o papel da IA como o de simular um comportamento próximo dohumano, não como em outros ambientes com objetivos, por exemplo, de otimizaçãobuscam atingir níveis de decisão e velocidade de raciocínio muito acima de um serhumano comum. A inteligência artificial em jogos tem por princípio maximizar adiversão emulando um jogador inteligente na medida certa, demonstrando fraquezaspropositais.Para que cada técnica seja aplicada é importante, inicialmente, conhecer aaplicabilidade destinada à técnica, juntamente a suas vantagens e desvantagens, segundoCrocomo (2006) as técnicas possuem as seguintes aplicabilidades, seguidas devantagens e desvantagens:Tabela 2. Vantagens, desvantagens e aplicação das técnicas.Vantagens Desvantagens AplicaçõesMáquinas de EstadoFinitoÉ simples, pode serutilizada em conjuntocom outras técnicas,computacionalmentebarata e com grandecapacidade decodificação.Tem uma escalabilidaderuim, pode serfracamente estruturada,é determinística e tem anecessidade deantecipar todas assituações.As máquinas de estadofinito são destinadasbasicamente aogerenciamento douniverso do jogo,objetos e/oupersonagens.Scripting É simples, nãonecessariamente temuso apenas porprogramadores e temum ambiente seguro deimplementação.É determinística e poristo, tem a necessidadede antecipar todas assituações.Scripting podefacilmente gerenciareventos e automatizartarefas além de poderanalisar a IA dooponente e construirárvores de conversa.Lógica Nebulosa Resolve problemas nãolineares, tem muitaflexibilidade, quando oconhecimento doespecialista se tornanecessário e apresentauma alternativa paraquando não há umasolução simples.É um pouco complicadade se construir e não éuma alternativa boaquando se existe umasolução simples.A lógica nebulosa temcomo aplicação atomada de decisão,filtro para entrada/saídade dados e seleção decomportamentos, alémde, algumas vezes,controlar a situaçãoemocional dospersonagens juntamentecom sua saúde.Flocking É realista e puramentereativa, além derequerer poucamemória.Flocking tem suasaplicações limitadas.Flocking érecomendado para ocontrole de movimentode unidades e de gruposde animais/monstros
  • 8. Árvores de Decisão É robusta a ruídos comuma estrutura fácil decompreender e com umalgoritmo detreinamento/avaliaçãoeficienteÉ necessário ajuste deparâmetrosÁrvores de decisãopodem ser utilizadas naclassificação, noaprendizado e napredição.Redes Neurais É flexível, nãodeterminística e nãolinear.É necessário o ajuste deparâmetros, se trata deuma técnica complicadano qual exige muitosrecursos do computadore possui ainda umadifícil escolha devariáveis.As Redes Neurais temcomo aplicação oreconhecimento depadrões e o controle decomportamento,juntamente com apredição, classificaçãoe memória.Algoritmos Evolutivos Tens um método debusca robusto e efetivoem espaços de buscagrandes, complexos epouco compreendidos,não linear e nãodeterminístico.Exige o uso intensivode recursos docomputador e tem anecessidade de ajustede parâmetros.Os algoritmosevolutivos sãoutilizados emotimização eaprendizado, nodesenvolvimento deestratégias para jogos,na evolução decomportamento eencontrar caminhos aserem percorridos.5. ConclusõesCom este estudo foi possível conhecer e entender melhor a utilização das técnicas deInteligência Artificial em jogos eletrônicos. Foi possível compreender que apesar deainda não serem utilizadas em todos os tipos de jogos, num futuro próximo, a tendênciaé que será ampliada a utilização de IA em jogos eletrônicos. Todas as técnicas estudadastêm muito a contribuir e tornar cada vez mais reais as ações tomadas pelos personagensdos games, o que atrai cada vez mais pessoas a se entreter e se beneficiar com essasaplicações.6. ReferênciasBITTENCOURT, J.R.(2006) “Motores de Jogos para Criação de Jogos Digitais”, In:Vescola Regional de Informática de Minas Gerais, Belo Horizonte.CROCOMO, M. K. (2006) “Desenvolvimento de um Ecossistema Artificial UtilizandoAlgoritmos Evolutivos como Ambiente de Teste para Sistemas Multi-Robô”.FAIRCLOUGH, C.(2001) “Research Directions for AI in Computer Games”, In: AICS.CORREA, D. B., PASTOR, D. T. (2012) “A evolução das técnicas de InteligênciaArtificial”, In: Proceeding of SBGames.ZADEH, L. A. (1976) “A Fuzzy-Algorithmic Approach to the Definition of Complex orImprecise Concepts”.
  • 9. PEDRYCZ, W.(2007) “Fuzzy Systems Engineering : Toward Human-CentricComputing”, In: Wiley/IEEE Press.SWEETSER, P. (2002) “Current Al in Games: A review”, In: University ofQueensland.HAYKIN, S. (2001)“Redes Neurais: Princípios e Prática.” In: Bookman.YAO, X. (2000) “Genetic Algorithms and Evolutionary Games.” In: CambridgeUniversity Press.