A Proposition for Master's of Arts in New Media Thesis:
Author: Petri Kuittinen
Supervisors: Timo Honkela
(Ph.D), professor at
University of Arts and Design, Media Lab
Pekka Puomio (M. Sc.),
Raha-automaattiyhdistys,
Research and Design department
Abstract:
The proposed Master's Thesis includes design and prototype implementation
of a multi-player poker game, which will have several different
artificially intelligent, automated test-players. A network protocol which
supports automated testing of single- and multi-player games will be
developed.
In Spring 1999 our Game Design Study Project group (Petri Kuittinen, Janne Frösen, Jan-Mikael Lepistö, Tomi Knuutila, Katerina Antonaki and Miska Natunen) designed and implemented a prototype version of a multi-poker video game using Java programming language. Due lack of time the resulting prototype was unfortunately far from finished. The game did not have a single-player mode, the user-interface was so vague that it made the game very difficult to play and the network code and protocol also had errors making the game very unstable. I estimate that it would take at least the same amount of time, about 500 hours, as Janne and Jan-Mikael used for the GD study project, to fix these problems in Java source code.
I converted the internal logic of the game (handling of cards, comparison of wins, randomness) from Java to Python, which is a free interpreted, interactive, object-oriented programming language. Even thought the Python version is much more generic (e.g. it implements three different kind of poker games instead of one) the resulting source code was shorter (665 lines vs. 429 lines) and the time used was less than 1/5 of the original.
At the end of 1998 Raha-automaattiyhdistys (RAY) started a project called "Pelisukupolvi PSI-2002" (= "Game Platform PSI-2002"). The goal of that project is to produce a completely new generation of gambling machines which have better reliability, easier maintenance and enable easier and faster software development. That includes better play-testing of the games. So far the games have been tested by human test-players. Multi-player games with large number of simultaneous players would require a small army of human test-players which isn't feasible. So there have to be automated test-players which simulate the way real human players play the game. Automated test-players can play hundreds of thousands of games without tiring, leading to better-tested and more robust single-player games as well. It would also be useful to be able to record and playback games played by human players. The statistics and observations gathered from human test-playing can be used to create automated test-players which imitate human behavior.
During summer 1999 I came to the conclusion that the network protocol needs to be redesigned by first thinking about different kind of multi-player gambling games and their needs and then design an extendable and robust network protocol which has:
I have don't have any previous experience in designing a network protocol, automated test-players, implementing network communication for a multi-player game nor a graphical user-interface (GUI) using Python so there is certainly a lot to learn.
I would like implement the AI of test-players using conventional hand-coded (static) approach. Neural networks and other more sophisticated results could perhaps lead to better results, but my resources are limited.
I will do almost all the work by myself. I will consult Pekka Puomio in questions relating to network protocol design and calculating the propabilities. Software engineer Tuomo Hakola (of RAY R&D department) is the principal person responsible for developing better testing procedure for PSI-2002, so we will certainly exchange ideas and I will present my ideas to him before actually implementing them.
I will do my work using the computer facilities of RAY. All (or almost all) the work will be done using free software (Linux, Gnu Emacs etc.).
People at RAY R&D department will help me play-testing the game. Probably some people at Medialab would also be interested in play-testing?
I don't have much experience or knowledge in user-interface design and my time is limited, so I won't pay much attention to the user-interface of the game within my Master's Thesis. It would be nice to find someone interested user-interface design and skilled with GUI programming to collaborate with this project. I am sure there is enough work for another final thesis just to develop a really good GUI for a multi-player poker.
If there is too much time (which is unlike) the following things might be included to Master's Thesis. Anyway they are good starting points for further work.