Inteligência Inteligência Artificial Artificial em em Jogos Jogos Eletrônicos Eletrônicos Dsc. Alex F. V. Machado [email protected] Game AI? “Anything that gives the illusion of intelligence to an appropriate level, thus making the game more immersive, challenging, and, most importantly, fun, can be considered game AI.” A Indústria dos Games • O setor de jogos é uma área em crescente ascensão que fatura bilhões de dólares. • É hoje um dos setores mais rentáveis do entretenimento. Seqüência de criação de um jogo • • • • • • • • • Definição da idéia Criação de um game design (planejamento do jogo) Criação do roteiro Esboçando concept-arts (artistas 2D e 3D) Programação Modelagem Criação de efeitos sonoros e trilha sonora. Testes Divulgação (marketing) Papéis da IA em Jogos Adversários Aliados Personagens de apoio Comentaristas Controle de câmera Geração de fases Geração de trilhas sonoras Nivelamento da dificuldade Resolução automática de problemas Histórico • 1770: “O turco”, criado por Wolfgang von Kempelen, que supostamente jogava xadrez com perfeição. Histórico • Até a década de 1970, os jogos possuíam apenas Versus Mode • A indústria percebeu que a inclusão de um modo para um jogador poderia atrair um público maior, desta forma, aumentando os lucros • Técnicas já conhecidas no meio acadêmico passaram a ser utilizadas para simular o comportamento humano Histórico • 1978: ??? implantou as primeiras entidades inteligentes em jogos Histórico • 1978: Space Invaders implantou as primeiras entidades inteligentes em jogos Histórico • 1980: ??? conta com movimentos padronizados dos inimigos, porém cada fantasma tem um modo diferente de caçar o jogador. Histórico • 1980: Pac-man conta com movimentos padronizados dos inimigos, porém cada fantasma tem um modo diferente de caçar o jogador. Histórico 1990: O primeiro jogo de estratégia em tempo real, ???, é lançado. A busca de caminho apresentada nesse jogo era de baixa qualidade. Histórico 1990: O primeiro jogo de estratégia em tempo real, Herzog ZWei, é lançado. A busca de caminho apresentada nesse jogo era de baixa qualidade. Histórico 1996: ??? é publicado como o primeiro jogo a utilizar redes neurais comercialmente Histórico • 1996: BattleCruiser: 3000AD é publicado como o primeiro jogo a utilizar redes neurais comercialmente Histórico • 1998: ???? é lançado como a melhor Game IA até então. Histórico • 1998: Half-Life é lançado a melhor Game IA até então. como Histórico • 2001: ???? é alvo da mídia a respeito de como as criaturas aprendem com as decisões do jogador. Histórico • 2001: Black & White é alvo da mídia a respeito de como as criaturas aprendem com as decisões do jogador. Técnicas de Game IA • Determinística “Deterministic behavior or performance is specified and predictable. There's no uncertainty.” • Não-Determinística “Behavior has a degree of uncertainty and is somewhat unpredictable (the degree of uncertainty depends on the AI method employed and how well that method is understood).” Algoritmo A-Star (Pathfinding) Algoritmo A-Star (Pathfinding) Algoritmo A-Star (Pathfinding) É um algoritmo que busca o caminho em um grafo de um vértice inicial até um vértice final. Ele é a combinação de aproximações heurísticas como do algoritmo Best-first Search e da formalidade do Algoritmo de Dijkstra. Algoritmo A-Star (Pathfinding) Máquina de Estados Máquina de Estados Máquina de Estados Máquina de Estados Uma máquina de estados finitos ou autômato finito é um modelo matemático usado para representar programas de computadores. É composta por um conjunto de estados e regras de transição entre estes estados. Máquina de Estados Redes Bayesianas Redes Bayesianas Redes Bayesianas São modelos que permitem representar de forma sintética variáveis com probabilidade e as formas de como elas se relacionam. Redes Bayesianas Redes Neurais Redes Neurais Redes Neurais São sistemas computacionais inspirados nos neurônios biológicos, com capacidade de adquirir, armazenar e utilizar conhecimento experimental. Redes Neurais Aprendizagem de Máquina Aprendizagem de Máquina (Algoritmo C4.5 – Geração de Árvores de Decisão) Aprendizagem de Máquina É um sub-campo da IA dedicado ao desenvolvimento de algoritmos e técnicas que permitam ao computador aprender. Utiliza técnicas de raciocínio indutivo para extrair regras e padrões de grandes conjuntos de dados. Outras Técnicas para Programar IA em Jogos • • • • • • • Agentes Inteligentes Min-max Processamento de linguagem natural Séries temporais Agentes inteligentes Lógica Fuzzy Algoritmos Genéticos Conferências relacionadas a IA pra Jogos Nacionais: - SBGames - ENIA - SBIA Internacionais: - IEEE CIG - Game-On - Cgames - CGAT Journals: - Transactions on Computational Intelligence and AI in Games (IEEE) - Entertainment Computing (Springer) Inteligência Inteligência Artificial Artificial em em Jogos Jogos Eletrônicos Eletrônicos Dsc. Alex F. V. Machado [email protected]