This is a deprecated page.
Please see my Undergraduate Game Theory Research Group GamesCrafters for the current state of the project.

"There once was a prof known as Danny...
who couldn't play games worth a penny.
He wrote a small program...
that played them all fo' him.
Now he indeed seems quite canny!"

-- Daniel Horn, UC Berkeley EECS alumnus

GAMESMAN

A Finite, Two-Person, Perfect-Information Game Generator

Overview

GAMESMAN (Game-independent Automatic Move/position-tree Exhaustive-Search, Manipulation And Navigation) is my Master's thesis (2Mb pdf) and accompanying awesome software which I finished in the Spring of 1995. [I've written up a brief, 5-page introduction to the system.]

Abstract

"Why write a program when you can write a program to write a program?"
-- Author unknown

This Master's report introduces GAMESMAN, a system for generating graphical parametrizable game applications. Programmers write game 'modules' for a specific game, which when combined with our libraries, compile together to become stand-alone X-window applications as shown in the Figure below. The modules only need contain information about the rules of the game and how the game ends. If the game is small-enough, it may be solved, and the computer can play the role of an oracle, or 'perfect' opponent. This oracle can advise a novice player how to play, and teach the strategy of the game even though none was programmed into the system! If a game is too large to be solved exhaustively, the game programmer can add heuristics to provide an imperfect computer opponent. Finally, the application can provide a useful utility to two human players who are playing each other, since it can be a 'referee' who constrains the users' moves to be only valid moves, can update the board to respond to the move, and can signal when one of the players has won.


WWW Maven: Dan Garcia (ddgarcia@cs.berkeley.edu) Send me feedback