General Game Playing

Learn about General Game Playing (GGP) and develop GGP programs capable of competing against humans and other programs in GGP competitions .

Preview Lectures


Course at a Glance

About the Course

General game players are computer systems able to play strategy games based solely on formal game descriptions supplied at "runtime".  (In other words, they don't know the rules until the game starts.)  Unlike specialized game players, such as Deep Blue, general game players cannot rely on algorithms designed in advance for specific games; they must discover such algorithms themselves.  General game playing expertise depends on intelligence on the part of the game player and not just intelligence of the programmer of the game player.

GGP is an interesting application in its own right.  It is intellectually engaging and more than a little fun.  But it is much more than that.  It provides a theoretical framework for modeling discrete dynamic systems and for defining rationality in a way that takes into account problem representation and complexities like incompleteness of information and resource bounds.  It has practical applications in areas where these features are important, e.g. in business and law.  More fundamentally, it raises questions about the nature of intelligence and serves as a laboratory in which to evaluate competing approaches to artificial intelligence.

This course is an introduction to General Game Playing (GGP).  Students will get an introduction to the theory of General Game Playing and will learn how to create GGP programs capable of competing against other programs and humans.

Recommended Background

Students should be familiar with Symbolic Logic and should be able to read and understand program fragments written in a modern programming language.  This background is sufficient for understanding the presentation and for configuring players to compete in competitions (using software components provided by the instructors).  Students who wish to modify the standard components or who wish to build their own players also need the ability to develop programs on their own.  This latter ability is desirable but not required.