Jogo geral - General game playing

O jogo geral ( GGP ) é o design de programas de inteligência artificial para poder jogar mais de um jogo com sucesso. Para muitos jogos como o xadrez, os computadores são programados para jogar esses jogos usando um algoritmo especialmente projetado, que não pode ser transferido para outro contexto. Por exemplo, um xadrez programa de computador -Jogar não pode jogar damas . O jogo geral é considerado um marco necessário no caminho para a Inteligência Artificial Geral .

Jogo geral de videogame ( GVGP ) é o conceito de GGP ajustado ao propósito de jogar videogame . Para videogames, as regras do jogo devem ser aprendidas em várias iterações por jogadores artificiais como TD-Gammon , ou são predefinidas manualmente em uma linguagem de domínio específico e enviadas com antecedência para jogadores artificiais como no GGP tradicional. A partir de 2013, um progresso significativo foi feito seguindo a abordagem de aprendizado por reforço profundo , incluindo o desenvolvimento de programas que podem aprender a jogar jogos do Atari 2600 , bem como um programa que pode aprender a jogar jogos do Nintendo Entertainment System .

O primeiro uso comercial da tecnologia de jogo em geral foi Zillions of Games em 1998. O jogo em geral também foi proposto para agentes comerciais na gestão da cadeia de suprimentos sob a negociação de preços em leilões online de 2003 em diante.

História

Em 1992, Barney Pell definiu o conceito de Meta-Game Playing e desenvolveu o sistema "MetaGame". Este foi o primeiro programa a gerar automaticamente regras de jogo semelhantes ao xadrez e um dos primeiros programas a usar a geração automatizada de jogos. Pell então desenvolveu o sistema Metagamer . Este sistema era capaz de jogar uma série de jogos semelhantes ao xadrez, dada a definição das regras do jogo em uma linguagem especial chamada Game Description Language (GDL), sem qualquer interação humana uma vez que os jogos foram gerados.

Em 1998, o sistema comercial Zillions of Games foi desenvolvido por Jeff Mallett e Mark Lefler. O sistema usou uma linguagem semelhante ao LISP para definir as regras do jogo. Zilhões de jogos derivaram a função de avaliação automaticamente das regras do jogo com base na mobilidade das peças, estrutura do tabuleiro e objetivos do jogo. Ele também empregou algoritmos usuais como encontrados em sistemas de xadrez de computador : poda alfa-beta com ordenação de movimentos, tabelas de transposição , etc. O pacote foi estendido em 2007 com a adição do plug-in Axiom, um mecanismo de metagame alternativo que incorpora um Forth completo linguagem de programação baseada em

Em 1998, o z-Tree foi desenvolvido por Urs Fischbacher . z-Tree é a primeira e a mais citada ferramenta de software para economia experimental . z-Tree permite a definição de regras de jogo na linguagem Z-Tree para experimentos de teoria de jogos com seres humanos . Também permite a definição de jogadores de computador, que participam de uma brincadeira com seres humanos.

Em 2005, o Stanford Project General Game Playing foi estabelecido.

Em 2012, foi iniciado o desenvolvimento do PyVGDL.

Implementações GGP

Projeto Stanford

General Game Playing é um projeto do Stanford Logic Group da Stanford University , Califórnia, que visa criar uma plataforma para jogos em geral. É o esforço mais conhecido de padronizar GGP AI e geralmente visto como o padrão para sistemas GGP. Os jogos são definidos por conjuntos de regras representadas na linguagem de descrição do jogo . Para jogar, os jogadores interagem com um servidor de hospedagem de jogos que monitora os movimentos para verificar a legalidade e mantém os jogadores informados sobre as mudanças de estado.

Desde 2005, há competições anuais de General Game Playing na Conferência AAAI . A competição avalia as habilidades do competidor AI de jogar uma variedade de jogos diferentes, registrando seu desempenho em cada jogo individual. No primeiro estágio da competição, os participantes são julgados por sua capacidade de realizar movimentos legais, ganhar vantagem e completar os jogos com mais rapidez. Na rodada seguinte, os AIs se enfrentam em jogos cada vez mais complexos. O AI que ganhar mais jogos nesta fase vence a competição, e até 2013 seu criador costumava ganhar um prêmio de $ 10.000. Até agora, os seguintes programas foram vitoriosos:

Ano Nome Desenvolvedor Instituição Ref
2005 Cluneplayer Jim Clune UCLA
2006 Fluxplayer Stephan Schiffel e Michael Thielscher Universidade de Tecnologia de Dresden
2007 Cadiaplayer Yngvi Björnsson e Hilmar Finnsson Universidade de Reykjavik
2008 Cadiaplayer Yngvi Björnsson, Hilmar Finnsson e Gylfi Þór Guðmundsson Universidade de Reykjavik
2009 Ary Jean Méhat Universidade Paris 8
2010 Ary Jean Méhat Universidade Paris 8
2011 TurboTurtle Sam Schreiber
2012 Cadiaplayer Hilmar Finnsson e Yngvi Björnsson Universidade de Reykjavik
2013 TurboTurtle Sam Schreiber
2014 Sancho Steve Draper e Andrew Rose
2015 Galvanizar Richard Emslie
2016 WoodStock Eric Piette Artois University

Outras abordagens

Existem outros sistemas gerais de jogo, que usam suas próprias linguagens para definir as regras do jogo. Outros softwares gerais de jogo incluem:

  • Um sistema denominado FRAMASI desenvolvido a partir de 2009.
  • Um sistema chamado AiAi por Stephen Tavener (desenvolvedor anterior do Zillions) que remonta a 2015 e foi desenvolvido ativamente no final de 2017.
  • Um sistema chamado PolyGamo Player por David M. Bennett lançado em setembro de 2017 baseado no motor de jogo Unity .

Implementações GVGP

Aprendizagem por reforço

O GVGP poderia ser usado para criar IA de videogame real automaticamente, bem como "para testar ambientes de jogo, incluindo aqueles criados automaticamente usando geração de conteúdo procedural e para encontrar brechas em potencial na jogabilidade que um jogador humano poderia explorar". O GVGP também foi usado para gerar regras de jogo e estimar a qualidade de um jogo com base em Perfis de Desempenho de Algoritmo Relativo (RAPP), que comparam a diferenciação de habilidades que um jogo permite entre uma IA boa e uma IA ruim.

Linguagem de descrição do videogame

A General Video Game AI Competition ( GVGAI ) está em andamento desde 2014. Nesta competição, videogames bidimensionais semelhantes (e às vezes baseados em) fliperama da década de 1980 e jogos de console são usados ​​em vez dos jogos de tabuleiro usados ​​no GGP concorrência. Ele ofereceu uma maneira para pesquisadores e profissionais testarem e compararem seus melhores algoritmos gerais de jogo de videogame. A competição tem uma estrutura de software associada, incluindo um grande número de jogos escritos em Video Game Description Language (VGDL) , que não deve ser confundida com GDL e é uma linguagem de codificação que usa semântica simples e comandos que podem ser facilmente analisados. Um exemplo de VGDL é o PyVGDL desenvolvido em 2013. Os jogos usados ​​no GVGP são, por enquanto, muitas vezes jogos de arcade bidimensionais, pois são os mais simples e fáceis de quantificar. Para simplificar o processo de criação de uma IA que possa interpretar videogames, os jogos com essa finalidade são escritos em VGDL manualmente. VGDL pode ser usado para descrever um jogo especificamente para geração procedural de níveis, usando Programação de Conjunto de Resposta (ASP) e um Algoritmo Evolucionário (EA). O GVGP pode então ser usado para testar a validade dos níveis de procedimento, bem como a dificuldade ou qualidade dos níveis com base no desempenho de um agente.

Algoritmos

Como o GGP AI deve ser projetado para jogar vários jogos, seu design não pode depender de algoritmos criados especificamente para determinados jogos. Em vez disso, a IA deve ser projetada usando algoritmos cujos métodos podem ser aplicados a uma ampla gama de jogos. A IA também deve ser um processo contínuo, que pode se adaptar ao seu estado atual ao invés da saída de estados anteriores. Por esse motivo, as técnicas de malha aberta costumam ser mais eficazes.

Um método popular para desenvolver GGP AI é o algoritmo de pesquisa em árvore Monte Carlo (MCTS). Muitas vezes usado em conjunto com o método UCT ( Limite de confiança superior aplicado a árvores ), variações do MCTS têm sido propostas para melhor jogar certos jogos, bem como para torná-lo compatível com jogos de videogame. Outra variação dos algoritmos de busca em árvore usados ​​é a Busca Direcionada em Largura (DBS), na qual um nó filho para o estado atual é criado para cada ação disponível e visita cada criança ordenada pela maior recompensa média, até que o jogo termine ou fica sem tempo. Em cada método de busca por árvore, o AI simula ações potenciais e classifica cada uma com base na maior recompensa média de cada caminho, em termos de pontos ganhos.

Premissas

Para interagir com os jogos, os algoritmos devem operar sob a suposição de que todos os jogos compartilham características comuns. No livro Half-Real: Video Games Between Real Worlds and Fictional Worlds , Jesper Juul dá a seguinte definição de jogos: Os jogos são baseados em regras, eles têm resultados variáveis, resultados diferentes fornecem valores diferentes, o esforço do jogador influencia os resultados, o jogador é anexado aos resultados, e o jogo tem consequências negociáveis. Usando essas suposições, a IA de jogo pode ser criada quantificando a entrada do jogador, os resultados do jogo e como as várias regras se aplicam, e usando algoritmos para calcular o caminho mais favorável.

Veja também

Referências

links externos

Veja também CS227B - página do curso General Game Playing , GGP.org , página GitHub do GGP.org e games.stanford.edu .

Vídeo