INF 1771 Inteligência Artificial

Documentos relacionados
INF 1771 Inteligência Artificial

Jogos Eletrônicos. Apresentação da Disciplina. Edirlei Soares de Lima

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA

Aplicação de agentes em Jogos Digitais

Jogos em Inteligência Artificial

ENG1000 Introdução à Engenharia

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA

Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos

INF 1771 Inteligência Artificial

Desvendando Jogos 2D. Por Marcos Romero Setembro / Cyborg Arena - RHGames

Bleach Game MANUAL BÁSICO 2014

INF 1771 Inteligência Artificial

ENG1000 Introdução à Engenharia

Aula 02: C# - Estruturas de Decisão

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Jogos Eletrônicos. Aula 01 Jogos Eletrônicos e Game Design. Edirlei Soares de Lima <edirlei.lima@uniriotec.br>

Tutorial para hostear e/ou gerar missões para a GVV usando o BADC

Event Horizon. Begining of the end. Game Design Document

Aspectos Sociais de Informática. Simulação Industrial - SIND

Fancy Battles Game Design Document

Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

COMPILADORES E INTERPRETADORES

COMO USAR DOIS MONITORES NO WINDOWS 8

Comportamento de personagens em jogos de computador

Introdução a Informática. Prof.: Roberto Franciscatto

Service Level Management SLM. Gerenciamento de Níveis de Serviço

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

2 Máquinas de Estados em Jogos Eletrônicos

Arquitetura e Organização de Computadores

Detector de Vazamento CPS- LS790B

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Noções Básicas de Excel página 1 de 19

Entenda as vantagens dos chips de quatro núcleos

Tecnologia PORT Schindler Evolução na gestão de tráfego. Revolução no conforto pessoal.

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA

Índice. Modelos e Procedimentos

Prototype, um Design Patterns de Criação

Exercícios de Java Aula 20 - Matrizes

Programação de Robótica: Modo Circuitos Programados - Avançado -

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

A PERFEIÇÃO ESTÁ NOS DETALHES

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

PROJETO 2 Analise da funcionalidade do tutorial do jogo League of Legends.

Inteligência Artificial para Jogos Eletrônicos

Computadores de Programação (MAB353)

Batalha Naval Algoritmos de Busca. Correlações curriculares Matemática: Números: maior que, menor que, iguais a.

Modelagem Temporal com UML

INF 1771 Inteligência Artificial

Fornecendo Inteligência, para todo o mundo, a mais de 20 anos.

VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo

Revisão de combinatória

Desenvolvimento de Jogos 2D. Gutenberg Neto

Plano de Carreira. A seguir, encontram-se alguns exemplos de mapas de ascensão que a EJ pode escolher de acordo com a sua estrutura organizacional.

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Instalações Máquinas Equipamentos Pessoal de produção

Seu primeiro jogo no Game Maker - tradução livre do tutorial do Game Maker. Traduzido por: Fernanda Monteiro Eliott.

A Grande Importância da Mineração de Dados nas Organizações

Game Design: Creepy Castle

Planejamento Estratégico de TI. Prof.: Fernando Ascani

SE Incident Gestão de Incidentes e Não Conformidades Visão Geral Incidentes de TI Não conformidade da Qualidade

Roteiro. Roteiro. Introdução. Introdução. EscolhadaArquitetura. Tipos de Jogos. Problemas de Sincronização. Algoritmos de Sincronização. Conclusão.

3. O NIVEL DA LINGUAGEM DE MONTAGEM

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Tutorial de Matlab Francesco Franco

Jogos. Redes Sociais e Econômicas. Prof. André Vignatti

Atividade 11. Caça ao Tesouro Autômatos de Estados Finitos

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Eldenurin 3D&T Novo Sistema de Magia por Gustavo Brauner

Memórias Prof. Galvez Gonçalves

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

A IMPORTÂNCIA DA MOTIVAÇÃO NAS EMPRESAS

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS

Windows 7. Professor: Jeferson Machado Cordini

PRÉ-MATRÍCULA (ENTURMAÇÃO) PRIMEIROS PASSOS

Oracle Financing: A Maneira Mais Rápida e Acessível de Adquirir Soluções de TI

O desafio do choque de gerações dentro das empresas

COMO JOGAR TRANCA ONLINE

Capítulo 3. Avaliação das capacidades internas de uma empresa

Aula 03 PowerPoint 2007

Manual de Operações Básicas. Thiago Passamani

Protocolo em Rampa Manual de Referência Rápida

Copiright de todos artigos, textos, desenhos e lições. A reprodução parcial ou total desta aula só é permitida através de autorização por escrito de

Princípios de Design TRADUÇÃO DE TATIANE CRISTINE ARNOLD, DO ARTIGO IBM DESIGN: DESIGN PRINCIPLES CHECKLIST.

Programação para Dispositivos Móveis

Escolha da Objectiva. Quais as principais características das objectivas que servem de base para a escolha das suas lentes?

Práticas do XP (Programação em Pares e Stand Up Meeting)

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Aço. o desafio da sustentabilidade

INF 1771 Inteligência Artificial

ROBÔS QUE BRINCAM. Eles já existem fora dos desenhos animados

Organização e Arquitetura de Computadores I. de Computadores

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

NOKIA. Em destaque LEE FEINBERG

Manual do Sistema "Coelho - Sistema de Analise Loterica" Editorial Brazil Informatica

Proposta de Prestação de Serviço de Consultoria Arsenal, O Jogo de Guerra - Liderança e Trabalho em Equipe

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Transcrição:

INF 1771 Inteligência Artificial Aula 21 Máquinas de Estados Finitos Edirlei Soares de Lima <elima@inf.puc-rio.br>

Introdução Máquinas de Estados Finitos (Finite State Machines - FSM) são provavelmente o padrão de software mais utilizado em jogos para selecionar o comportamento de agentes reativos.

Máquina de Estados Uma máquina de estados é um modelo matemático usado para representar programas. Conjunto de estados. Regras de transição entre estados. Estado atual.

Máquina de Estados Um exemplo bem simples de uma FSM é um interruptor de luz. On Switch Off Switch On Off Em um jogo normalmente uma FSM não é tão simples assim, visto que geralmente os agentes podem ter um conjunto muito maior de estados.

Exemplo Pac-Man Os fantasmas Inky, Pinky, Blinky e Clyde do jogo Pac-man são implementados via FSM. Os fantasmas tem 3 comportamentos: Caçar (Chase) Fugir (Evade) Dispersar (Scatter) A transição de estados ocorre sempre que o jogador conseguir alguma pílula de energia. A implementação da ação caçar de cada fantasma é diferente.

Exemplo Pac-Man Máquina de Estados: Dispersar tempo_dispersar >= 5 (sec) tempo_caçar >= 20 (sec) Caçar tempo_player_ energia >= 10 (sec) player_pegou_ energia == true Os tempos variam em cada nível do jogo. Fugir

Exemplo Pac-Man Comportamento de Dispersar: Mover em direção aos cantos e ficar andando em círculos. tempo_dispersar >= 5 (sec) Dispersar tempo_caçar >= 20 (sec)

Exemplo Pac-Man Comportamento de Fugir: Movimentar-se mais lentamente com movimentos aleatórios. tempo_player_ energia >= 10 (sec) player_pegou_ energia == true Fugir

Exemplo Pac-Man Comportamento de Caçar: Movimenta-se mirando na posição do Pac-Man. tempo_dispersar >= 5 (sec) tempo_caçar >= 20 (sec) Caçar tempo_player_ energia >= 10 (sec) player_pegou_ energia == true

Exemplo Pac-Man Comportamento de Caçar: Movimenta-se mirando na posição 4 tiles a frente do Pac-Man. tempo_dispersar >= 5 (sec) tempo_caçar >= 20 (sec) Caçar tempo_player_ energia >= 10 (sec) player_pegou_ energia == true

Exemplo Pac-Man Comportamento de Caçar: Movimenta-se mirando em uma posição que combina a posição/direção do Pac-Man e do Blinky. tempo_dispersar >= 5 (sec) tempo_caçar >= 20 (sec) Caçar tempo_player_ energia >= 10 (sec) player_pegou_ energia == true

Exemplo Pac-Man Comportamento de Caçar: Quando está longe do Pac-Man, movimenta-se em direção ao Pac- Man. Quando está perto, movimenta-se em direção ao canto da tela. tempo_dispersar >= 5 (sec) tempo_caçar >= 20 (sec) Caçar tempo_player_ energia >= 10 (sec) player_pegou_ energia == true

Exemplo Pac-Man Fim de jogo? Teoricamente Pac-Man foi projetado para não ter fim, mas no level 256

Exemplo Quake Os NPCs do jogo Quake também são implementados via FSM. Estados/Comportamentos: Procurar Armadura (FindArmor) Procurar Kit Medico (FindHelth) Correr (RunAway) Atacar (Attack) Perseguir (Chase)... Até mesmo as armas são implementadas como uma mini FSM. Mover (Move) Tocar Objeto (TouchOject) Morrer/Explodir (Die)

Exemplo FIFA20XX O comportamento dos jogadores é definido através de FSMs. Estados/Comportamentos: Driblar (Dribble) Correr Atrás da Bola (ChaseBall) Marcar Jogador (MarkPlayer)... Os times também usam FSMs para definir comportamentos em grupo. Defender (Defend) Atacar (Attack)...

Máquina de Estados

Implementação void run(int *state){ switch(*state){ case 0: //procurar inimigo procurar(); if(encontrou_inimigo) *state = 1; break; case 1: //atacar inimigo atacar(); if (morto){ morrer(); *state = -1; } if (matou){ *state = 0; } if(energia < 50 inimigo_forte) *state = 3; break; } case 2: //recarregar energia recarregar(); if(energia > 90) *state = 0; break; case 3: //fugir fugir(); if(!encontrou_inimigo){ if(energia < 50) *state = 2; else *state = 0; } break; }

Vantagens Elas são rápidas e simples de implementar existem várias formas de implementar e todas são muito simples. Gastam pouco processamento. São fáceis de depurar quando o numero de estados é pequeno. São intuitivas qualquer pessoa consegue entender o seu significado apenas olhando para a sua representação visual. Isso facilita o trabalho do game designer, que muitas vezes não tem conhecimento de linguagens de programação. São flexíveis podem ser facilmente ajustada pelo programador para prover comportamentos requeridos pelo game designer.

Problemas Á medida que a complexidade do comportamento dos agentes aumenta, as FSMs tendem a crescer de forma descontrolada. As FSMs se tornam terrivelmente complexas quanto levam em consideração ações muito básicas necessárias a um agente. A representação visual torna-se intratável. Comportamentos complexos são necessários em jogos modernos.

FSM um Pouco Mais Complexa

Máquina de Estados Finita Hierárquica É possível organizar uma FSM usando máquinas de estados finitas hierárquicas (HFSM). Níveis mais altos lidam com ações mais genéricas, enquanto níveis mais baixos lidam com ações mais específicas. Cada estado pode ser uma nova FSM. Infelizmente, a hierarquia não reduz o número de estados. Ela pode somente pode reduzir significativamente o número de transições e tornar a FSM mais intuitiva e simples de compreender.

Máquina de Estados Finita Hierárquica

Máquina de Estados Finita Hierárquica

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