segunda-feira, 23 de maio de 2011

Game Designer parte 2 - A busca da IA pelo game designer

A melhor forma de dinamizar os jogos tem se apresentado em torná-los ainda mais interativos, e nessa pesquisa uma área de game design tem crescido bastante. A área de IA para jogos. Muitos trabalhos vêm sendo mostrados, uma ideia interessante é jogos por mineração de dados, onde estes se adaptam ao jogador, criando estatísticas que por sua vez geram o perfil do jogador à medida de seu desenvolver dentro do jogo. Mas antes de continuarmos precisamos definir o que é IA.
IA ou inteligência artificial possui muitas definições, pode parecer complicado, mas a priori vai depender apenas de qual pensamento filosófico será baseada no momento da implementação. Não vamos nos aprofundar, mas por conhecimento citarei os principais ramos de aplicações:

1 – sistemas que pensam racionalmente;
2 – sistemas que agem racionalmente;
3 – sistemas que pensam como humanos;
4 – sistemas que agem como humanos.

Em prol da simplicidade vamos ficar com: IA é um ramo de pesquisa da ciência da computação que busca, através de métodos computacionais, construir mecanismos e/ou dispositivos que simulem a capacidade do ser humano de pensar, resolver problemas, ou seja, de ser inteligente.

Abaixo citarei algumas das técnicas de IA mais apresentadas em jogos.

Máquinas de Estado Finito (MEF): referem-se a um modelo empregado comumente em jogos simples. Onde muito deles engloba jogos de primeira pessoa em que a IA é governada pelo comportamento adotado pelo jogador. MEF consiste de n estados, cada um com suas próprias características.

Algoritmos de Path-Finding: não chega a ser exatamente uma técnica, mas se baseia em algoritmos utilizados no cálculo do menor caminho entre dois pontos, fazendo os cálculos para desviar de possíveis obstáculos, inimigos etc. encontrados no decorrer do caminho. Os algoritmos mais famosos são o BFS (Best First Search) e os algoritmos que manipulam grafos, tais como e o de Dijkstra.

Scripting: é uma técnica bastante utilizada em jogos. Nela podem ser feitas programações das mais variadas áreas referentes ao jogo, à exceção da renderização 3D. É bastante utilizada na área de IA. Scripting nada mais é do que criar um “pseudo-compilador”, onde os comandos escritos em um arquivo texto são interpretados em tempo de execução, diminuindo o tempo de desenvolvimento causado pela compilação de um jogo.

Algoritmos Genéticos: são algoritmos que “pegam emprestado” a característica da genética dos seres vivos, baseando-se nos genes, que carregam características dos seres vivos, para que estes, quando praticam a reprodução, desenvolvam seres mais aptos a enfrentar o meio ambiente.

A-Life: é a parte referente aos algoritmos que simulam o desenvolvimento da vida dos seres vivos, tanto dos animais, quanto dos homens da maneira mais natural possível. Um bom exemplo na área de jogos é o jogo chamado The Sims, onde são feitas simulações da vida de seres vivos que, neste caso, são seres humanos;

Redes Neurais: elas se estruturam baseadas no modelo neural do cérebro do ser humano. São utilizadas para o reconhecimento de padrões e podem sempre estar adquirindo novos conhecimentos. Em jogos ainda são pouco utilizadas.


Referência: http://www.programadoresdejogos.com/trab_academicos/marlo_luiz.pdf

Nenhum comentário:

Postar um comentário