Inteligência Artificial nos jogos eletrônicos
Quem nunca jogou aquela partida de FPS ou até mesmo pinball contra o computador? Há anos os jogos vêm se tornando “mais inteligentes”, devido ao desenvolvimento da inteligência artificial, que ganham cada vez mais espaço. Um caso famoso é o do robô da IBM que venceu uma partida de xadrez contra o campeão mundial, Garry Kasparov, na década de 90. Mas como as inteligências artificiais aprendem a jogar?
Com um trabalho minucioso, meses (ou anos) são dedicados para para a criação de um jogo eletrônico. A partir de uma boa ideia, equipes de designers gráficos, animadores e músicos são contratados para a realização da parte gráfica do jogo. Concomitantemente, entram em cena para o desenvolvimento da parte lógica do jogo, equipes de desenvolvedores e programadores. Essa parte lógica do jogo, que usufrui da Inteligência artificial, é responsável por deixar o jogo mais realista e desafiante.
Como assim mais realista e desafiante?
Sabe aquele personagem que se mexe por conta própria, que ataca de várias maneiras diferentes? Aí que a inteligência artificial está presente. Formalmente falando, a inteligência artificial é usada para gerar comportamentos responsivos, adaptativos ou inteligentes principalmente em personagens não-jogadores (famosos NPCs), semelhantes à inteligência humana.
Nos games, a IA trabalha de certa forma limitada de acordo com os comandos desenvolvidos por seus programadores. Quando uma inteligência artificial é criada, ela recebe linhas de códigos que podem ser descritas grosseiramente como uma ação X uma reação.
Podemos citar o exemplo de Dark Souls, que os personagens não jogáveis (NPC) reagem de acordo com o progresso do jogador. Por exemplo, a forma de você atacar, desviar são cogitadas no jogo, fazendo com que este aprenda suas estratégias, de acordo com as possibilidades internas do game. Além disso, vale citar que a Inteligência artificial está presente, também, em personagens no jogo que mudam de script a medida que você avança no jogo, isto é, há diferentes possibilidades de caminhos e finais no jogo. Pode-se citar, neste caso, o famoso jogo GTA V. As técnicas usadas tipicamente recorrem a métodos existentes no campo da inteligência artificial.
Métodos no campo da IA em jogos?
Visto as diversas modalidades de jogos existentes atualmente, tem-se a necessidade de utilizar métodos específicos para situações específicas, isto é, a inteligência artificial utilizada em um jogo de FPS possui algoritmos diferentes para a IA utilizada em um jogo de esportes, por exemplo. A seguir, eis algumas técnicas listadas pelo seção “aiforgames” do site WordPress:
FPS (First Person Shooter)
As técnicas mais utilizas nos jogos FPS são as de máquinas de estado finita (FSM – Finite State Machine) e a Lógica Fuzzy.
Na máquina de estados, o personagem está configurado com um série de regras e possui regras de transição para ver se o personagem deve alterar seu estado inicial, como por exemplo, se ele viu um oponente e se vale a pena ir atrás dele.
Adicionalmente existe dois tipos de FSM, as do tipo determinístico (AFD) e não-determinístico (AFN). No determinístico, para cada estado há exatamente uma transição para cada entrada possível, e no não-determinístico, pode haver nenhuma, uma ou mais. A desvaNtagem da FSM são os comportamentos repetitivos (“quanto mais complexo for o ambiente, aumenta o número de estados e transições na qual o FSM terá de prever”).
Já a Lógica Fuzzy ou Lógica Difusa permite representar valores além da lógica clássica, representa somente por 0 (FALSO) e 1 (VERDADEIRO), permitindo representar vários eventos não contáveis (ou imprecisos), como por exemplo 0,5 (TALVEZ).
Uma possibilidade é utilizar a lógica Fuzzy e a FSM, criando as Fuzzy FSMs (FuSMs), criando assim máquina de estado finitas com lógica Fuzzy, dando mais “inteligência” para os oponentes controlados pela máquina.
Jogos de Corrida
Esse gênero de jogo é outro dentre os mais jogados no mundo. Existem franquias para os mais diversos gostos, como os da franquia Need For Speed, que são do tipo arcade e para jogadores mais casuais, e também os da franquia Gran Turismo, em que o foco é o simulação, onde é possível controlar a troca de marchas, o tipo de pneu para determinada clima ou pista, e até a economia de gasolina, para que não acabe durante a corrida.
Uma das técnicas que podem ser utilizadas é a de algoritmos genéticos (AG). Um algoritmo genético é uma classe de algoritmo evolutivos que usam técnicas inspiradas pela biologia evolutiva como hereditariedade, mutação, seleção natural, e recombinação.
Em um jogo de corrida, a aplicação desse tipo de algoritmo é útil para criar vários tipo de carros, baseando-se em um deles. Isso diminui o tempo gasto para criação e aumenta a variedade de elementos dentro do jogo.
Jogos de Futebol
Os jogos de futebol são um dos tipos mais populares no Brasil, afinal, é o esporte mais adorado no país.
Uma das técnicas aplicadas em jogos de futebol é a de redes neurais. Elas são redes computadorizadas onde a sua estrutura é similar a um cérebro humano, tendo nós de rede (neurônios) e conexões entre os nós. A vantagem na rede neural é que ela pode aprender e armazenar informações para uso posterior. Num jogo de futebol, a aplicação de redes neurais pode ser utilizada para que jogadores de futebol aprendam a interceptar a bola durante uma partida.
Outra técnica é a Fuzzy, onde já comentou-se sobre seu uso nos jogos FPS. Ela pode ser aplicada por exemplo para definir se durante uma cobrança de pênalti o chute foi forte ou não.
Há limitação para inteligência artificial em jogos?
Como jogos eletrônicos são feitos com fins interativos, a inteligência artificial é limitada, pois uma IA avançada torna a dificuldade do jogo tão extrema que o jogador não consegue finalizar, ou, simplesmente, passar de fase.
Como explica o site “tecnosense”: “o mundo dos games sempre será limitado. Se você irá completar uma missão, o mundo será voltado para essa missão. Se você está numa sala rodeado de inimigos, o processamento do mundo será resumido à sala e quem estiver nela.”
Concluindo…
A cada dia, a Inteligência artificial está mais presente no cotidiano. O universo dos jogos eletrônicos é apenas um destes, porém, é bem visível e de “fácil compreensão” a aplicação da inteligência artificial nessa indústria. Infelizmente, no Brasil, esse ramo é pouco explorado, embora haja potencial para a criação de jogos, há a falta de investimentos.