General Game Playing
General
Artificial
Intelligence

Lessons Readings Resources Gamemaster Forum

Welcome

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 games start.) General Game Playing (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 a hands-on introduction to GGP. Theoretical background is provided through lectures and readings, but the main pedagogical value of the course derives from the use of this theory to create general game playing programs able to perform effectively.

All of the course materials are online here. There are links to lessons, background readings, resources, the Gamemaster competition system, and the course forum. Note that, as you proceed through the online materials, you may occasionally encounter problems. Apologies in advance for this. We are in the midst of revamping the course. You may get extra credit for reporting such problems (especially if your reports are not especially irate).

There will be ten in-person class sessions - on Wednesdays from 4:30 pm - 6:30 pm. See the table below for a summary of the topics of these sessions and their locations. Note that you are expected to attend all sessions (unless there are extreme extenuating circumstances).

DateTopicLocation
April 5 Introduction STLC 111
April 12 Game Description Gates 403

April 19 Complete Search Gates 403
April 26 Incomplete Search Gates 403
May 3 Statistical Methods Gates 403

May 10 Metagaming Gates 403
May 17 Logical Optimization Gates 403
May 24 Game Reformulation Gates 403

May 31 Really General Game Playing Gates 403
June 7 Final Competition Gates 403

All work in the course must be done in teams; and, except in extreme circumstances, all team members will receive the same grade. Grades for the course will be based on (1) weekly assignments, (2) performance in competitions, and (3) a final report. The majority of the assignments concern the development of a functioning general game playing program. Your program does not need to win competitions to receive a perfect grade; however, it must function correctly and illustrate the lessons of the course. That said, there will be extra credit for especially noteworthy performance in competitions. People who take CS227B tend to immerse themselves in the course and do good work; and, with occasional exceptions, most students receive high grades.

Important note: we use elementary JavaScript in all our examples and software libraries; and, in a departure from the past, we would like you to use JavaScript in building your players. JavaScript is quite easy to learn and has the merit of running natively in most World Wide Web browsers. If you are unfamiliar with the language, you can learn more by clicking here or here.

Mike Genesereth
Email: genesereth@stanford.edu
Office: Gates 308
Office Hours: Wed 2:00 pm - 3:00 pm

Feedback