General Game Playing
General
Artificial
Intelligence

Lessons Readings Resources Gamemaster Forum

Week 3

Two weeks down, eight to go. By now, you should a sense of what General Game Playing is all about; you should be able to read and write game descriptions in GDL. You should also be comfortable using some of the resources we have provided, e.g. Rulechecker, Stylechecker, Standalone, and Manager.

This week, we focus on game management and the rudiments of game playing. Your job this week is to create your first automated game player and put it to work playing small games effectively. Things are still simple in that you do not need to worry about time limits. Although all of our matches have start clocks and play clocks, the games are small enough that your players should be able to search the corresponding game trees in the time available. This is an unrealistic assumption in general, but the methods for dealing with large games are variations on the methods used for small games. So, it is a good idea to master those methods before moving on. In the weeks to follow, you will extend your player to larger and more realistic games.


Week 2

One week down, nine to go. By now, you should have teams. You should have a sense of what General Game Playing is about. And you should have played a few games from the Gamemaster library.

Your goals this week are (1) to learn to read and write game descriptions in GDL and (2) to get comfortable with some of the resources we have provided, e.g. the rule checker, the style checker, and the standalone tool for running standalone games. We realize that you are probably eager to get started building your game players. However, if you spend a little time on these basics now, it will help you later in the quarter.

A reminder that we would like you to take advantage of the Forum. If you are confused about something, you might be able to get insight from others. If you have mastered the material, you might be able to help others; and explaining things might help you to understand the material more deeply.


Week 1

Okay. We are on our way! First week of class begins now.

To get started, click the Lessons tab at the top of this page. The Lessons page provides links to lecture slides, readings, and other resources. And it contains links to the weekly assignments, including details of how to submit your work. The Lessons page is your friend. Use it.

The Readings tab at the top of this page provides links to relevant articles on General Game Playing. You are not required to read these articles, but you may find the subject matter helpful as you design and build your game players.

The Resources tab provides links to useful tools and related websites.

The Gamemaster tab leads to the Gamemaster competition management system. Gamemaster includes descriptions of games and links to tools to play those games yourselves or to manage matches between automated players. Also, by signing in on this website, you can register your player to compete against other players.

The Forum is a great way to communicate with your fellow students - to ask questions, to offer answers, and to discuss the course material. It is also the best way to communicate with the course staff. You should use the Forum rather than emailing us individually, as this will allow us all to see your questions and/or comments and you will get quicker responses that way.

The lesson this week is mostly introduction, and the assignment is not onerous. We would like you form teams, invent a name for your team / player and create an account for your player in the Gamemaster system. We would also like you to use the Gamemaster site to play a few games amongst yourselves - to become familiar with the practice of learning and playing new games. See Assignment 1 for details (link on the Lessons page).


Course Overview

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).

DateTopicLocationTime
April 3 Introduction Gates 403 4:30 - 6:20
April 10 Game Description Gates 403 4:30 - 6:20

April 17 Complete Search Gates 403 4:30 - 6:20
April 24 Incomplete Search Gates 403 4:30 - 6:20
May 1 Statistical Methods Gates 403 4:30 - 6:20

May 8 Metagaming Gates 403 4:30 - 6:20
May 15 Logical Optimization Gates 403 4:30 - 6:20
May 22 Game Reformulation Gates 403 4:30 - 6:20

May 29 Really General Game Playing Gates 403 4:30 - 6:20
June 5 Final Competition Gates 403 4:30 - 7:30

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 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 3:00 pm - 4:00 pm
Theodore Kanell
Email: tkanell@stanford.edu
Location: TBD
Office Hours: TBD
Butch Nasser
Email: ban@stanford.edu
Location: TBD
Office Hours: TBD
Anthony Riley
Email: anthonyriley@stanford.edu
Location: TBD
Office Hours: TBD

Feedback