IA em Games


Conceito de Inteligência Artificial

A inteligência artificial é um ramo da ciência que procura simular por meio se de softwares a habilidade humana de pensar e resolver problemas.


Estilos de Jogos

­­­Os estilos de jogos são parecidos com os estilos de filmes, mas de uma forma bem mais ampla.Alguns exemplos de estilos mais comum nos dois são: ação, aventura e terror. Nos games temos alguns a mais como:

Personagem e um forte inimigo no jogo Lineage 2

RPG

 É caracterizado pelo controle de um personagem que se desenvolve ao longo do jogo que ganha atributos que podem ajudar em níveis mais avançados contra inimigos que possuem algum tipo de inteligência empregada que pode seguir o personagem e desviar de ataques do mesmo.

Jogo Simcity

Simulação

Tem como objetivo principal simular algo do mundo real, um exemplo de simulação é o Sim City que simula uma cidade e as suas dinâmicas problemáticas, como incêndios e terremotos.

Kasparov, considerado por muitos o maior enxadrista de todos os tempos, e o Deep Blue da IBM.

Estratégia

Principal característica é usar habilidade de raciocínio do jogador para alcançar os objetivos. Esse estilo de jogo pode ser o que tenha a maior importância da inteligência artificial, a maquina tem que ser desafiadora, para por as habilidades de quem joga á prova. Um bom exemplo é o Deep Blue, um supercomputador criado pela IBM para jogar Xadrez que ganhou de Kasparov em 10 de fevereiro de 1996.


Metodologias comuns


As técnicas mais usadas para empregar alguma inteligência ao jogo são: os sistemas de script, Data Driven e os Algoritmos Genéticos.

Um pouco mais sobre cada uma:

Sistemas de scripts

Os sistemas de scripts se baseia em uma série de instruções escritas em alguma linguagem de programação (geralmente é usado o Java) que ajuda a definir ações importantes no jogo como o andar a história, ações de cada personagem e até falas e ações pré-definidas de inimigos que são ativadas ao personagem realizar algo especifico no jogo

Data Driven

Algumas informações ficam fora do código fonte do sendo armazenados em arquivos ou em algum sistema de script dentro do próprio jogo possibilitando ao desenvolvedor na fase de testes fazer mudanças muito mais rápidas, possibilitando apenas algumas mudanças de valores dados, como o status de “força” ou “velocidade”, fazer a mesma mudança no código fonte do jogo não seria algo viável pois demandaria muito tempo e o auxílio de um programador que esteja manipulando diretamente no código fonte do jogo.

Algoritmos Genéticos

Algoritmos genéticos usam de conceitos da seleção natural proposta por Darwin em que dizia que os indivíduos mais preparados tendem a dar continuidade a espécie. Da mesma forma um conjunto de funções dentro do jogo pode se adaptarem entre si para criar uma ainda melhor. Suponhamos que temos um inimigo de fogo, outro especializado em atirar flechas, em um certo avanço no jogo o personagem pode encontrar inimigos que atiram flechas de fogo por exemplo.


=

Máquina de Estados Finito


O comportamento define a ação que um npc ou alguma criatura do jogo deve tomar em um momento do jogo, uma coisa importante a ser considerada é a tomada de decisões, por exemplo, uma criatura está andando e vê o personagem do jogo vindo atacar aí ela muda para o estado correndo, mais para frente ela vê uma toca e muda para o estado esconder na toca.

A ideia da máquina de estados finitos é essa que a criatura está entre um de vários estados finitos e ela pode mudar de estado assim que certas ações forem satisfeitas, e é o estado que define o comportamento, essas transições (chegada do personagem) modelam as mudanças de comportamento. Dessa forma a criatura ou qualquer coisa aparenta ter inteligência se tiver empregada nela a Máquina de Estados Finito.


Linguagens usadas

As linguagens de programação mais usadas para o desenvolvimento de um jogo é C++ e as Linguagens de Script, também são usadas quase todas orientadas a objetos. Alguns também podem usar a linguagem Assembly para ter uma melhor performance e uma comunicação mais rápida com o Hardware.

Linguagens de script

São geralmente muito usadas pois são linguagens que podem ser executadas no interior dos programas ou dentro de alguma outra linguagem de programação. As linguagem de script podem aumentar algumas funções de um programa ou controla-lo, são inclusive linguagens muito usadas em jogos pelo mesmo motivo.

Algo que se deve notar é que todas as linguagens de script são linguagens interpretadas, o código fonte da linguagem é executado por um programa chamado de Interpretador, a linguagem é considerada interpretada se o programa não for executado pelo sistema operacional ou processador de forma direta.

 Abaixo há alguns exemplos de linguagens que são usadas como script (podem não ser apenas de script):

-Euphoria

-JavaScript

-Lua

-PHP

-Python

-Game Maker Language


Referências Bibliográficas

http://pt.slideshare.net/rogerritter/tcnicas-de-inteligncia-artificial-em-jogos-eletrnicoss

http://www.tecmundo.com.br/intel/1039-o-que-e-inteligencia-artificial-.htm

https://pt.wikipedia.org/wiki/G%C3%AAneros_de_jogos_eletr%C3%B4nicos          

http://www.cin.ufpe.br/~tg/2005-1/vvf.pdf

http://www1.folha.uol.com.br/tec/2016/02/1737817-a-inteligencia-artificial-nao-vai-nos-destruir-diz-genio-do-xadrez-kasparoz.shtml

file:///C:/Users/Usuario/Downloads/Dialnet-ATeoriaDosJogosComoMetodologiaDeInvestigacaoCienti-5161533.pdf

http://abrindoojogo.com.br/inteligencia-artificial-nos-games-%E2%80%93-mais-aplicacoes

https://www.youtube.com/watch?v=KoUIhqkpxog

https://pt.wikipedia.org/wiki/Linguagem_de_script

http://www.computacao.unitri.edu.br/erac/index.php/e-rac/article/viewFile/32/29