A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Inteligência Computacional para Jogos Eletrônicos Prof. Alex F. V. Machado

Apresentações semelhantes


Apresentação em tema: "Inteligência Computacional para Jogos Eletrônicos Prof. Alex F. V. Machado"— Transcrição da apresentação:

1 Inteligência Computacional para Jogos Eletrônicos Prof. Alex F. V. Machado

2 Game IA? 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. Física? Detecção de colisão? Pathfinding?

3 Papéis da IA em Jogos Adversários Aliados Personagens de apoio NPCs (Non-player Character) Comentaristas Controle de câmera Geração de fases Nivelamento da dificuldade

4 Histórico 1770: O turco, criado por Wolfgang von Kempelen, que supostamente jogava xadrez com perfeição.

5 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

6 Histórico 1978: Space Invaders implantou as primeiras entidades inteligentes em jogos

7 Histórico 1980: Pac-man conta com movimentos padronizados dos inimigos, porém cada fantasma tem um modo diferente de caçar o jogador

8 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

9 Histórico 1996: BattleCruiser: 3000AD é publicado como o primeiro jogo a utilizar redes neurais comercialmente

10 Histórico 1998: Half-Life é lançado como a melhor Game IA até então 2001: Black & White é alvo da mídia a respeito de como as criaturas aprendem com as decisões do jogador

11 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).

12 A Indústria dos Games O setor de jogos é uma área em crescente ascensão que fatura no bilhões de dólares. É hoje um dos setores mais rentáveis do entretenimento. Área com excelente futuro para o desenvolvedor de software.

13 Empresa: Confidencial Área de atuação: Desenvolvimento Oportunidade: Desenvolvedor Java, web e Android A vaga para programador é para desenvolvimento em Java, web e Android, e é desejável ter familiaridade com CC++ e JavaScript, conhecimento de PHP e experiência de desenvolvimento em Android ou iOS. A contratação é em regime CLT, e a Tectoy Studios oferece ainda benefícios como vale-refeição, plano de saúde completo e plano odontológico optativo, além de um dos melhores ambientes de trabalho do mercado. O salário inicial é a partir de R$ 2,3 mil, dependendo da experiência prévia do candidato na área de atuação. Pesquisado em 1 de Agosto de 2011

14 Criação dos jogos Hoje a área de desenvolvimento de jogos é enorme, tendo muitas áreas técnicas e artísticas envolvidas. No mercado atual, cada membro da equipe é especialista em alguma coisa. Mas independente da área, eles devem possuir: talento artístico para produzir um bom enredo, música ou gráficos, talentos como refatoração do código, padrões de projeto, trabalho em equipe e bons conhecimentos técnicos. E claro conhecimento das mais variadas áreas, como matemática e física, inteligência artificial, computação gráfica, redes e sistemas distribuídos, otimização, etc...

15 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 e modelagem dos esboços Criação de efeitos sonoros e trilha sonora. Testes Divulgação (marketing)

16 Criadores de jogos Desenvolvedor, Designer, Engenheiro de software, Programadores, Character/Level design, Escritores, Roteristas, Músicos,... e varios outros profissionais.

17 Linguagens mais usadas na criação de jogos: C++, C, C# e XNA, PureBasic, Python, Java, Linguagens de Script como Lua,.NET, Delphi, Flash, Ferramentas de autoria... e outras.

18 Como anda a IA nos Jogos Os jogos estão chegando a um patamar artístico incrível, com gráficos extraordinários, simulando a física real e tendo uma inteligência artificial bem convincente. Com o avanço dos jogos, é cada vez mais comum o uso das mais diversas técnicas de inteligência artificial. Antigamente os desenvolvedores pouco se preocupavam com a IA, preocupando-se mais com os gráficos do game e sua jogabilidade. Hoje o cenário esta mudando. A Inteligência Artificial está cada vez mais forte no desenvolvimento de um jogo. Proporcionando principalmente uma maior diversão ao jogo.

19 Mas o que é afinal AI ? Inteligência artificial em jogos é o uso de técnicas que possibilitam a implantação de rotinas complexas de tomada de decisões no software. Tudo isso para encontrar caminhos, tomar decisões, agir de acordo com a situação, aprender. A inteligência artificial tem grandes aplicações em jogos, ao tentar atribuir ao computador um comportamento humano.

20 Técnicas para Programar AI em Jogos Máquinas de Estado Maquinas de Estado baseada em Pilha Lógica Fuzzy Uso de scripts Sistema de mensagens Ferramentas de autoria Algoritmos Genéticos Combinação de física com grafos Matrizes e Árvores de Decisão Sistemas Baseados em Regras Steering Behaviors AlgoritmoPath-finding - A* Sistema baseado em planejamento Redes Neurais Sistemas baseados dados Uso de Agentes Combinação de física com grafos Vida artificial

21 Técnicas de Inteligência Artificial em Jogos - Máquinas de Estado Finita FSM - Finite State Machine Uma máquina de estados é basicamente composta por um conjunto de estados e um conjunto de regras de transição entre estes estados. Ou seja, o personagem está configurado com uma série de regras e possui regras de transição para ver se o personagem deve alterar o estado inicial, como por exemplo, se ele viu um oponente e se vale a pena ir atrás dele. As desvantagens em utilizar as FSM são os comportamentos repetitivos, caso uma situação se repita. E a questão do desempenho, pois quanto mais complexo for o ambiente, maior será o número de estados e transições na qual o FSM terá de prever.Aumentando seu custo.

22 Técnicas de Inteligência Artificial em Jogos - Agentes Um agente inteligente pode ser um personagem na qual pode raciocinar e tomar suas próprias decisões, baseadas tanto em regras quanto no cenário do jogo em si. Além disso, é possível criar emoções que podem deixar um personagem mais realista. Uma abordagem interessante para se utilizar em agentes é a arquitetura BDI, baseada em 3 conceitos: – Crenças, desejos e intenções.

23 Técnicas de Inteligência Artificial em Jogos - Lógica Fuzzy Lógica Difusa é uma generalização da lógica booleana que admite valores lógicos intermediários entre a falsidade e a verdade (como o talvez). A lógica difusa normalmente está associada ao uso de uma teoria de conjuntos fuzzy. A lógica fuzzy permite representar num sistema computacional valores onde lógicas clássicas não conseguiriam representar, como pouca comida, muito perto, e outros eventos não contáveis (ou imprecisos). Uma estratégia interessante para se utilizar é a mistura entre a lógica Fuzzy e as FSMs.

24 Técnicas de Inteligência Artificial em Jogos - Algoritmos de Pathfinding Os personagens precisam criar rotas, e não podem fazer coisas que comprometam seu funcionamento, como, por exemplo, atravessar paredes ou andar em cima de um lago. Por isso, os programadores aplicam algoritmos de pathfinding (procura por caminhos). Este tipo de lógica é importante para que o personagem faça uma rota satisfatória e normalmente mais curta, e não ande a esmo pelo cenário. Além disso, o algoritmo deverá calcular possíveis novos obstáculos que o personagem poderá se deparar, como uma nova parede, outros personagens, possíveis projéteis que o podem atingir (como uma bala de uma pistola), e qualquer variável do ambiente que possa interromper a ação deste personagem.

25 Técnicas de Inteligência Artificial em Jogos - Redes Neurais São sistemas não lineares que imitam o mecanismo de processamento do cérebro humano. Elas são redes computadorizadas onde a sua estrutura é similar a um cérebro humano, tendo nós de rede (neurônios) e conexões entre os nós. A vantagem de usar uma rede neural é que a rede pode aprender e armazenar conhecimento para uso posterior. Num game de futebol, a aplicação de redes neurais pode ser utilizada para que jogadores de futebol aprendam a interceptar a bola durante uma partida.

26 Técnicas de Inteligência Artificial em Jogos - Algoritmo genético Um algoritmo genético é uma técnica de procura utilizada na ciência da computação para achar soluções aproximadas em problemas de otimização e busca. Algoritmos genéticos são uma classe particular de algoritmos evolutivos que usam técnicas inspiradas pela biologia evolutiva como hereditariedade, mutação, seleção natural e recombinação. Algoritmos genéticos diferem dos algoritmos tradicionais de otimização em basicamente quatro aspectos: – Se baseiam em uma codificação do conjunto das soluções possíveis, e não nos parâmetros da otimização em si; – Os resultados são apresentados como uma população de soluções e não como uma solução única; – Não necessitam de nenhum conhecimento derivado do problema, apenas de uma forma de avaliação do resultado; – Usam transições probabilísticas e não regras determinísticas

27 Técnicas de Inteligência Artificial em Jogos - Sistemas Baseados em Regras Trata-se de um sistema de apoio à decisão que procura representar o modo de raciocínio e o conhecimento utilizado por especialistas na resolução de problemas no seu âmbito de especialidade. É definido através de um conjunto de parâmetros e um conjunto de regras que trabalham sobre estes parâmetros, de modo que durante a tomada de decisão, essas regras são então processadas.

28 Técnicas de Inteligência Artificial em Jogos - Sistema Baseado em Planejamento O planejamento de IA aplicado a jogos digitais é o armazenamento de planos de ação e fazer com que o usuário escolha o plano mais adequado numa determinada situação. Também pode permitir ao personagem decidir qual estratégia ele pode utilizar (além do próprio personagem criar a sua estratégia). Uma vantagem desta técnica é que as ações do personagem não são tão repetitivas (diferente dos personagens com o sistema de Máquina de estado Finita, por exemplo).


Carregar ppt "Inteligência Computacional para Jogos Eletrônicos Prof. Alex F. V. Machado"

Apresentações semelhantes


Anúncios Google