Game Description Language (GDL) is a specialized
logic
Logic is the study of correct reasoning. It includes both formal and informal logic. Formal logic is the study of deductively valid inferences or logical truths. It examines how conclusions follow from premises based on the structure o ...
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
designed by
Michael Genesereth. The goal of GDL is to allow the development of AI agents capable of
general game playing
General game playing (GGP) is the design of artificial intelligence programs to be able to play more than one game successfully. For many games like chess, computers are programmed to play these games using a specially designed algorithm, which c ...
. It is part of the General Game Playing Project at
Stanford University
Leland Stanford Junior University, commonly referred to as Stanford University, is a Private university, private research university in Stanford, California, United States. It was founded in 1885 by railroad magnate Leland Stanford (the eighth ...
.
GDL is a tool for expressing the intricacies of game rules and dynamics in a form comprehensible to AI systems through a combination of logic-based constructs and declarative principles.
In practice, GDL is often used for General Game Playing competitions and research endeavors. In these contexts, GDL is used to specify the rules of games that AI agents are expected to play. AI developers and researchers harness GDL to create algorithms that can comprehend and engage with games based on their rule descriptions. The use of GDL paves the way for the development of highly adaptable AI agents, capable of competing and excelling in diverse gaming scenarios.
This innovation is a testament to the convergence of logic-based formalism and the world of games, opening new horizons for AI's potential in understanding and mastering a multitude of games. Game Description Language equips AI with a universal key to unlock the mysteries of diverse game environments and strategies.
Purpose of GDL
Quoted in an article in
New Scientist
''New Scientist'' is a popular science magazine covering all aspects of science and technology. Based in London, it publishes weekly English-language editions in the United Kingdom, the United States and Australia. An editorially separate organ ...
, Genesereth pointed out that although
Deep Blue can play chess at a
grandmaster level, it is incapable of playing
checkers
Checkers (American English), also known as draughts (; English in the Commonwealth of Nations, Commonwealth English), is a group of Abstract strategy game, strategy board games for two players which involve forward movements of uniform game ...
at all because it is a specialized game player. Both chess and checkers can be described in GDL. This enables general game players to be built that can play both of these games and any other game that can be described using GDL.
Specification
Syntax
GDL is a variant of
Datalog
Datalog is a declarative logic programming language. While it is syntactically a subset of Prolog, Datalog generally uses a bottom-up rather than top-down evaluation model. This difference yields significantly different behavior and properties ...
, and the
syntax
In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
is largely the same. It is usually given in
prefix notation
Polish notation (PN), also known as normal Polish notation (NPN), Łukasiewicz notation, Warsaw notation, Polish prefix notation, Eastern Notation or simply prefix notation, is a mathematical notation in which operators ''precede'' their oper ...
. Variables begin with "
?
".
Keywords
The following is the list of keywords in GDL, along with brief descriptions of their functions:
;
distinct
:This predicate is used to require that two terms be syntactically different.
;
does
:The predicate means that player (or ''role'')
?r
makes move
?m
in the current game state.
;
goal
:The predicate is used to define goal value
?n
(usually a natural number between 0 and 100) for role
?r
in the current state.
;
init
:This predicate refers to a true fact about the initial game state.
;
legal
:The predicate means that
?m
is a legal move for role
?r
in the current state.
;
next
:This predicate refers to a true fact about the next game state.
;
role
:This predicate is used to add the name of a player.
;
terminal
:This predicate means that the current state is terminal.
;
true
:This predicate refers to a true fact about the current game state.
Rules
A game description in GDL provides complete rules for each of the following elements of a game.
Players
Facts that define the roles in a game. The following example is from a GDL description of the two-player game
Tic-tac-toe
Tic-tac-toe (American English), noughts and crosses (English in the Commonwealth of Nations, Commonwealth English), or Xs and Os (Canadian English, Canadian or Hiberno-English, Irish English) is a paper-and-pencil game for two players who ta ...
:
(role xplayer)
(role oplayer)
Initial state
Rules that entail all facts about the initial game state. An example is:
(init (cell 1 1 blank))
...
(init (cell 3 3 blank))
(init (control xplayer))
Legal moves
Rules that describe each move by the conditions on the current position under which it can be taken by a player. An example is:
(<= (legal ?player (mark ?m ?n))
(true (cell ?m ?n blank))
(true (control ?player)))
Game state update
Rules that describe all facts about the next state relative to the current state and the moves taken by the players. An example is:
(<= (next (cell ?m ?n x))
(does xplayer (mark ?m ?n)))
(<= (next (cell ?m ?n o))
(does oplayer (mark ?m ?n)))
Termination
Rules that describe the conditions under which the current state is a terminal one. An example is:
(<= terminal
(line x))
(<= terminal
(line o))
(<= terminal
not boardopen)
Goal states
The goal values for each player in a terminal state. An example is:
(<= (goal xplayer 100)
(line x))
(<= (goal oplayer 0)
(line x))
Extensions
GDL-II
With GDL, one can describe finite games with an arbitrary number of players. However, GDL cannot describe games that contain an element of chance (for example, rolling dice) or games where players have incomplete information about the current state of the game (for example, in many card games the opponents' cards are not visible). GDL-II, the Game Description Language for Incomplete Information Games, extends GDL by two keywords that allow for the description of elements of chance and incomplete information:
;
sees
:The predicate means that role
?r
perceives
?p
in the next game state.
;
random
:This constant refers to a pre-defined player who chooses moves randomly.
The following is an example from a GDL-II description of the card game
Texas hold 'em
Texas hold 'em (also known as Texas holdem, hold 'em, and holdem) is the most popular variant of the card game of poker. Two cards, known as hole cards, are dealt face down to each player, and then five Community card poker, community cards ...
:
(<= (sees ?player ?card)
(does random (deal_face_down ?player ?card)))
(<= (sees ?r ?card)
(role ?r)
(does random (deal_river ?card)))
GDL-III
Michael Thielscher also created a further extension, GDL-III, a general game description language with ''imperfect information'' and ''introspection'', that supports the specification of ''epistemic games'' — ones characterised by rules that depend on the knowledge of players.
Other formalisms and languages for game representation
In classical game theory, games can be formalised in
extensive and
normal forms. For
cooperative game theory
In game theory, a cooperative game (or coalitional game) is a game with groups of players who form binding “coalitions” with external enforcement of cooperative behavior (e.g. through contract law). This is different from non-cooperative ...
, games are represented using characteristic functions. Some subclasses of games allow special representations in smaller sizes also known as
succinct game
In algorithmic game theory, a succinct game or a succinctly representable game is a game which may be represented in a size much smaller than its normal form representation. Without placing constraints on player utilities, describing a game of ...
s.
Some of the newer developments of formalisms and languages for the representation of some subclasses of games or representations adjusted to the needs of interdisciplinary research are summarized as the following table.
Some of these alternative representations also encode time-related aspects:
Applications
A 2016 paper "describes a multilevel algorithm compiling a general game description in GDL into an optimized reasoner in a low level language".
A 2017 paper uses GDL to model the process of mediating a resolution to a dispute between two parties and presented an algorithm that uses available information efficiently to do so.
See also
*
General Game Playing
General game playing (GGP) is the design of artificial intelligence programs to be able to play more than one game successfully. For many games like chess, computers are programmed to play these games using a specially designed algorithm, which c ...
*
Artificial Intelligence
Artificial intelligence (AI) is the capability of computer, computational systems to perform tasks typically associated with human intelligence, such as learning, reasoning, problem-solving, perception, and decision-making. It is a field of re ...
References
External links
Game Description Language Specification{{Webarchive, url=https://web.archive.org/web/20130412032912/http://logic.stanford.edu/classes/cs227/2013/readings/gdl_spec.pdf , date=2013-04-12
Refereed paper introducing GDL-II
Game artificial intelligence
Logic programming languages