inteligencia artificial em jogos

Upload: eduardodantas

Post on 09-Mar-2016

236 views

Category:

Documents


0 download

DESCRIPTION

Técnicas de Inteligência Artificial em Jogos Eletrônicos.Os algoritmos de Inteligência Artificial em Jogos Digitais podem ser divididos em três grandes blocos:MovimentoComo movimentar uma personagem, desde o local onde se encontra até ao local onde deverá desenrolar a sua actividade (seja atacar o adversário, acender uma luz, dar o alarme, atender um cliente, etc). Implica o cálculo do percurso, detectando salas e portas, e evitando obstáculos.Tomada de DecisãoCada personagem tem habitualmente um conjunto de estados ou actividades possíveis, seja manter-se parado, atacar o adversário, fugir, patrulhar a área, comer um quadro, etc. Para que a tomada de decisão seja possível a personagem deverá analisar o contexto, e se o assim entender, despoletar determinado processo. Este processo despoletado pode ser simplemente alterar a animação actual, activar um algoritmo de movimento, ou alterar um estado interno (por exemplo, num jogo tipo Civilization, alterar o estado de conquista de determinado país). Note-se que nem todas as alterações de estado têm, necessariamente, um repercursão visual.EstratégiaEmbora muitos jogos sejam desenvolvidos apenas com os dois tipos de IA referidos anteriormente, cada vez mais surgem jogos em que os personagens trabalham em grupo ou equipa. Nestes casos existe um algoritmo principal que deverá controlar todas as personagens. No entanto, cada personagem terá (opcionalmente) a sua própria tomada de decisão, podendo ou não seguir as sugestões do grupo.

TRANSCRIPT

  • INF 1771 Inteligncia Artificial

    Edirlei Soares de Lima

    Aula 19 Inteligncia Artificial em Jogos

  • Introduo

    Surgiu com a criao dos primeiros jogos (Pac-Man, Space Invaders...).

    No inicio:

    Regras simples, sequencias pr-definidas de aes, tomada de deciso aleatria.

  • Introduo

    Atualmente: Melhoras em grficos e som so pouco

    notadas.

    Ambiente visual j est suficientemente complexo.

    Foco agora est no gameplay, na jogabilidade e na inteligncia artificial.

    Personagens devem ser to bons quanto oponentes humanos.

  • Introduo

    Industria vs Academic/Research

  • Iluso de Inteligncia

    No se espera criar unidades inteligentes, mas sim criar uma iluso de inteligncia.

    Em outras palavras, espera-se criar comportamentos que imitem comportamentos humanos.

    Roubar ou no roubar?

    Percepo semelhante a dos humanos?

  • Princpios de Design

    NPCs devem gerar uma experincia divertida para o jogador e no para o programador.

    No meio acadmico so criados programas para superar o usurio (derrotar o jogador).

    Meta da inteligncia artificial para jogos no vencer o jogador. O objetivo dar ao jogador desafios e diverso!

    Todo jogador deve ser capaz de superar os desafios do jogo.

  • Princpios de Design

    Humanos no gostam de jogar se esto perdendo.

    O jogo deve ser agradvel para todos os nveis de habilidade.

    Deve-se evitar excessos nos graus de dificuldade (muito fcil ou muito difcil).

    O ideal ajustar dinamicamente a dificuldade dos desafios dependendo do jogador.

  • Princpios de Design

    Deve-se usar mtricas para medir o desempenho do jogador para um ajuste dinmico de dificuldade.

    Tempo em cada nvel, nmero de vidas

    perdidas, grau de dano

    Deve-se evitar que o jogador descubra mtrica e tente engana-la.

    O jogador quer derrotar tudo e todos na sua primeira tentativa dando o melhor de si.

  • Princpios de Design

    Todos os NPCs trapaceiam, mas o jogador no pode perceber.

    No existe tecnologia para NPCs serem justos. Os NPCs devem ser simples (mais baratos e realistas).

    Jogador deve entender a o que os NPCs esto fazendo. O importante parecer inteligente.

    NPC s ganha vida quando o Jogador o entende.

  • Criando Erros Intencionalmente

    O que torna um jogo divertido no corresponde necessariamente criao de NPCs mais espertos.

    Criar um personagem que possa vencer um humano fcil. O difcil fazer um que perca para um humano em uma batalha desafiadora.

    Princpios:

    Mova antes de atirar

    Seja visvel

    Tenha uma pssima mira

    Erre o primeiro tiro

    Ataques individuais

    Adio de vulnerabilidades

  • Criando Erros Intencionalmente

    Mova-se antes de atirar! Seja visvel!

    O jogador deve ter a chance de ver os inimigos. O movimento dos inimigos uma tima forma de

    deixar claro a existncia deles para o jogador.

    Tenha uma pssima mira!

    Os NPCs poderiam acertar todos os tiros no jogador, mas isso poderia mata-lo em uma frao de

    segundos. Deve existir uma porcentagem de erro dos disparos. Jogadores gostam de ver balas passando prximas a sua cabea ou batendo em paredes prximas.

    Erre o primeiro tiro

    Nenhum jogador gosta de morrer sem pelo menos saber quem o acertou. Por isso, sugerido que o

    primeiro tiro erre o jogador, ou acerte em algum lugar prximo a ele, de modo a alerta-lo.

  • Criando Erros Intencionalmente

    Ataques individuais

    Em situaes onde existem muitos oponentes simultneos deve-se fazer com que poucos inimigos

    ataquem o jogador a cada momento. Ou mais especificamente, que ocorra um revezamento de quem ataca.

    Adio de vulnerabilidades

    Todos os NPCs devem ter algum tipo de vulnerabilidade que possa ser explorada pelo jogador. Mas

    deve-se tomar cuidado para que vulnerabilidade no comprometa completamente os NPCs quando o jogador a descobrir.

  • Tcnicas Mais Usadas

    Tcnicas mais comuns:

    Waypoints e Pathfinding (Busca de Caminho com A*);

    Mquinas de Estados Finitos (FSM - Finite-State Machine);

    Aprendizado de Mquina Simplificado;

    Sistemas de Gatilhos (Trigger Systems);

    Previso de Trajetria (jogos de esporte);

    Incerteza com N-Gram.

  • Leitura Complementar

    Millington, I.; Funge, J.: Artificial Intelligence for Games, 2nd Ed., Morgan Kaufmann, 2009.