From HandWiki - Reading time: 17 min
| Artificial intelligence |
|---|
| Major goals |
| Approaches |
| Philosophy |
| History |
| Technology |
| Glossary |
General game playing (GGP) is the design of artificial intelligence programs to be able to play more than one game successfully.[1][2][3] For many games like chess, computers are programmed to play these games using a specially designed algorithm, which cannot be transferred to another context. For instance, a chess-playing computer program cannot play checkers. General game playing is considered as a necessary milestone on the way to artificial general intelligence.[4]
General game playing algorithms are typically restrained to games with finite possible moves that take place synchronously between players. These games are described in terms of a start state, possible intermediary states, and a goal.
The first commercial usage of general game playing technology was Zillions of Games in 1998. General game playing was also proposed for trading agents in supply chain management there under price negotiation in online auctions from 2003 onwards.[5][6][7][8]
Researchers at the RAND Corporation first described a General Problem Solver, which they called "General Problem Solving Program I" (GPS), in 1958. The goal of their project was to solve problems, which they defined broadly as "whenever a problem solver desires some outcome or state of affairs that he does not immediately know how to attain." The RAND group emphasized the importance of heuristic methods in problem solving, and described a theoretically ideal problem-solving process as a cycle of discovery, information, and conclusion through educated guesswork.[9]
RAND's GPS algorithm grew out of the more specialized "Logic Theorist" algorithm, which produced proofs in propositional logic. Like the Logic Theorist, GPS relied on the creation of intermediary goals through means–ends analysis. In particular, the algorithm was capable of solving Symbolic Logic problems by using heuristic methods which the researchers derived from the problem solving strategies of actual human test subjects. Central to the model's mechanisms for simplification was the method of abstraction, in which the logical elements were replaced by more basic elements which functioned similarly in order to simplify problems.[9] Although the algorithm is theoretically capable of solving any sufficiently formalized problem in the form of well-formed formulae and directed graphs, in practice the amount of computation required for the algorithm to adequately explore the graph is infeasible to implement due to the combinatorial explosion.
In 1968, Jacques Pitrat founded the field of General Game Playing in a paper in the proceedings of the International Federation for Information Processing.[10] Pitrat later worked on the more specialized problem of chess-playing algorithms, but his earliest contribution to game playing algorithm development was to separate the subclass of general game players from the broader space of general problem solvers. Pitrat's game playing algorithm was theoretically capable of playing chess-like games, which could be described using a simple set of rule variations.
In 1992, Barney Pell defined the concept of Meta-Game Playing and developed the "MetaGame" system. This was the first program to automatically generate chess-like game rules, and one of the earliest programs to use automated game generation. Pell then developed the system Metagamer.[11] This system was able to play a number of chess-like games without any human interaction once the games were generated.[12]
In 1998, the commercial system Zillions of Games was developed by Jeff Mallett and Mark Lefler. The system used a LISP-like language to define the game rules. Zillions of Games derived the evaluation function automatically from the game rules based on piece mobility, board structure and game goals. It also employed usual algorithms as found in computer chess systems: alpha–beta pruning with move ordering, transposition tables, etc.[13] The package was extended in 2007 by the addition of the Axiom plug-in, an alternate metagame engine that incorporates a complete Forth-based programming language.
In 1998, z-Tree was developed by Urs Fischbacher.[14] z-Tree is the first and the most cited software tool for experimental economics. z-Tree allows the definition of game rules in z-Tree-language for game-theoretic experiments with human subjects. It also allows definition of computer players, which participate in a play with human subjects.[15]
In 2005, the Stanford Project General Game Playing was established.[16] This included the General Game Playing Competition, which was launched at the associated AAAI conference. The competition ran annually and further establish GGP as a research field. It was suspended after 2016, by which point it was considered to have largely served its original purpose of stimulating increased research in the area.[17] The Stanford project also produced Game Description Language (GDL), which allowed for the production and description of game variations and was used extensively in the General Game Playing Competition.[18]
In 2012, the development of PyVGDL (Python Video Game Description Language) started, and has now migrated to PyVGDL 2.0.[19][20] PyVGDL is a library made for the programming language Python that functions as a game engine, enabling the integration of various AI applications in tandem with simple game rules to create complex games. The library is frequently used in artificial intelligence research centered around General Game Playing problems due to its dynamic capabilities.[21]
In 2018, Google DeepMind released a paper describing their new AlphaZero algorithm.[22] The algorithm built on their earlier game-specific work with AlphaGo, and used a Monte Carlo tree search algorithm. AlphaZero met and even surpassed the performance of specialized game playing algorithms, and reviewers characterized it as a notable step toward general game-playing systems.[23][24]
In 2020, the DeepMind group that had produced AlphaZero published their work on the MuZero algorithm.[25]While AlphaZero required knowledge of the rules of games before playing, MuZero was able to match its performance without being given any prior information on the underlying structure of the game it was playing. The authors of the original MuZero paper noted that the lack of a need for pre-set rules potentially made the algorithm more applicable to use in real-world situations, in which there are no known governing principles or underlying rules.[25]
Later research efforts produced new game-description languages which addressed the limitations of GDL. In 2019, researchers at the University of Wrocław created Regular Boardgames (RBG), a computer language based on the theory of regular languages. RBG encodes board game rules as regular expressions, and was designed for expressiveness, naturalness, and efficiency. Although built for usage in board games specifically, it is universally capable of describing any finite deterministic turn-based game with perfect information.[26] The Wrocław group's paper reported that it was the first GGP language able to efficiently encode and play games with complex rules and large numbers of legal moves in any given turn, such as Arimaa.[26] In 2020, Éric Piette, Cameron Browne and colleagues introduced Ludii, a general game system built on "ludemes" — units of game-related information — as part of the Digital Ludeme Project.[27] Ludii was designed to model a wide range of games, including ones which are no longer actively played, and to study their structure and history. Ludii matched the performance of previous descriptive schemes such as RBG and, because of its high level structure, produced game descriptions that were generally more human-readable compared to other systems.[27]
In the early 2020s, researchers started evaluating large language models (LLMs) as general game players, testing their ability to reason strategically and make choices in games they were not specifically trained on. In 2024, Oguzhan Topsakal and colleagues introduced an open-source benchmark which could be used to compare the performance of LLMs in grid-based games such as Tic-Tac-Toe, Connect Four, and Gomoku. This benchmark made use of several different methods of describing game states to the models, comparing performance across methodologies.[28] In 2025, a team from the University of California, San Diego, Mohamed bin Zayed University of Artificial Intelligence, and the University of California, Berkeley introduced lmgame-Bench, which evaluated models' performance across a wide range of video game types.[29] This work emphasized that directly testing LLMs on games is difficult, identifying problems such as brittle visual perception, sensitivity to prompt wording, and the presence of preexisting gameplay strategy in training data.
General Game Playing is a project of the Stanford Logic Group of Stanford University, California, which aims to create a platform for general game playing. It is the most well-known effort at standardizing GGP AI, and generally seen as the standard for GGP systems. The games are defined by sets of rules represented in the Game Description Language. In order to play the games, players interact with a game hosting server[30][31] that monitors moves for legality and keeps players informed of state changes.
From 2005 to 2016, annual General Game Playing competitions were held at the AAAI Conference. The competition judged competitor AI's abilities to play a variety of different games by recording their performance on each individual game. In the first stage of the competition, entrants were judged on their ability to perform legal moves, gain the upper hand, and complete games faster. In the following runoff round, the AIs faced off against each other in increasingly complex games. The AI that won the most games at this stage won the competition, and until 2013 its creator used to win a $10,000 prize.[32] The following programs were victorious:[33]
| Year | Name | Developer | Institution | Ref |
|---|---|---|---|---|
| 2005 | Cluneplayer | Jim Clune | UCLA | |
| 2006 | Fluxplayer | Stephan Schiffel and Michael Thielscher | Dresden University of Technology | [34] |
| 2007 | Cadiaplayer | Yngvi Björnsson and Hilmar Finnsson | Reykjavik University | [35] |
| 2008 | Cadiaplayer | Yngvi Björnsson, Hilmar Finnsson and Gylfi Þór Guðmundsson | Reykjavik University | |
| 2009 | Ary | Jean Méhat | Paris 8 University | |
| 2010 | Ary | Jean Méhat | Paris 8 University | |
| 2011 | TurboTurtle | Sam Schreiber | ||
| 2012 | Cadiaplayer | Hilmar Finnsson and Yngvi Björnsson | Reykjavik University | |
| 2013 | TurboTurtle | Sam Schreiber | ||
| 2014 | Sancho | Steve Draper and Andrew Rose | [36] | |
| 2015 | Galvanise | Richard Emslie | ||
| 2016 | WoodStock | Eric Piette | Artois University |
Other general game playing software that use their own languages for defining game rules include:
| System | Year | Description |
|---|---|---|
| FRAMASI | 2009 | Developed for general game playing and economic experiments by Rustam Tagiew.[37][38] |
| AiAi | 2015-2017 | Developed by Stephen Tavener (previous Zillions developer).[39][40][41] |
| PolyGamo Player | 2017 | Released by David M. Bennett in September 2017 based on the Unity game engine.[42] |
| Regular Boardgames | 2019 | Developed by Jakub Kowalski, Marek Szykuła, and their team at University of Wrocław.[43][44] |
| Ludii | 2020 | Released by Cameron Browne and his team at Maastricht University as part of the ERC-funded Digital Ludeme Project.[45][46][47] |
Since GGP AI must be designed to play multiple games, its design cannot rely on algorithms created specifically for certain games. Instead, the AI must be designed using algorithms whose methods can be applied to a wide range of games. Recent GGP systems such as Regular Boardgames (RBG) and Ludii have explored alternative rule representations to optimize reasoning efficiency and support a broader variety of games. The AI must also be an ongoing process, that can adapt to its current state rather than the output of previous states. For this reason, open loop techniques are often most effective.[48] The Ludii software was used to find how the ancient Roman board game Ludus Coriovalli may have been played by referencing many similar games and using those to play possible rulesets. It was determined that it was most likely a two-player blocking game. Previously, the oldest known examples of such dated to medieval times.[49][50]
A popular method for developing GGP AI is the Monte Carlo tree search (MCTS) algorithm.[51] Often used together with the UCT method (Upper Confidence Bound applied to Trees), variations of MCTS have been proposed to better play certain games, as well as to make it compatible with video game playing.[52][53][54] Another variation of tree-search algorithms used is the Directed Breadth-first Search (DBS),[55] in which a child node to the current state is created for each available action, and visits each child ordered by highest average reward, until either the game ends or runs out of time.[56] In each tree-search method, the AI simulates potential actions and ranks each based on the average highest reward of each path, in terms of points earned.[51][56]
In order to interact with games, algorithms must operate under the assumption that games all share common characteristics. In the book Half-Real: Video Games Between Real Worlds and Fictional Worlds, Jesper Juul gives the following definition of games: Games are based on rules, they have variable outcomes, different outcomes give different values, player effort influences outcomes, the player is attached to the outcomes, and the game has negotiable consequences.[57] Using these assumptions, game playing AI can be created by quantifying the player input, the game outcomes, and how the various rules apply, and using algorithms to compute the most favorable path.[58]
General video game playing (GVGP) is the concept of GGP adjusted to the purpose of playing video games. For video games, game rules have to be either learnt over multiple iterations by artificial players like TD-Gammon,[59] or are predefined manually in a domain-specific language and sent in advance to artificial players[60][61] like in traditional GGP. Starting in 2013, significant progress was made following the deep reinforcement learning approach, including the development of programs that can learn to play Atari 2600 games[62][59][63][64][65] as well as a program that can learn to play Nintendo Entertainment System games.[66][67][68]
GVGP could potentially be used to create real video game AI automatically, as well as "to test game environments, including those created automatically using procedural content generation and to find potential loopholes in the gameplay that a human player could exploit".[61] GVGP has also been used to generate game rules, and estimate a game's quality based on Relative Algorithm Performance Profiles (RAPP), which compare the skill differentiation that a game allows between good AI and bad AI.[69]
The General Video Game AI Competition (GVGAI) has been running since 2014. In this competition, two-dimensional video games similar to (and sometimes based on) 1980s-era arcade and console games are used instead of the board games used in the GGP competition. It has offered a way for researchers and practitioners to test and compare their best general video game playing algorithms. The competition has an associated software framework including a large number of games written in the Video Game Description Language (VGDL), which should not be confused with GDL and is a coding language using simple semantics and commands that can easily be parsed. One example for VGDL is PyVGDL developed in 2013.[60][70] The games used in GVGP are, for now, often 2-dimensional arcade games, as they are the simplest and easiest to quantify.[58] To simplify the process of creating an AI that can interpret video games, games for this purpose are written in VGDL manually.[clarification needed] VGDL can be used to describe a game specifically for procedural generation of levels, using Answer Set Programming (ASP) and an Evolutionary Algorithm (EA). GVGP can then be used to test the validity of procedural levels, as well as the difficulty or quality of levels based on how an agent performed.[71]