Jogo geral - General game playing
Parte de uma série sobre |
Inteligência artificial |
---|
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
- AlphaZero
- Inteligência Artificial Geral
- Inteligência artificial em videogames
- Linguagem de entretenimento específica do domínio
- Linguagem de descrição do jogo
- Aprendizagem multitarefa
- Esboço de inteligência artificial
- Aprendizagem de transferência
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 .
- Recursos gerais de jogo fornecidos pela Universidade de Tecnologia de Dresden.
- AiAi por Stephen Tavener
- Projeto do jogador PolyGamo por David M. Bennett
- Axiom Development kit é um sistema de desenvolvimento de meta-jogos compatível com Zillions of Games, de Greg Schmidt.
- Palamedes - Um IDE geral para jogos