IPP: Internet Poker Protocol

George Ferguson and Chris Brown

Dept. of Computer Science
University of Rochester

This page describes the Internet Poker Protocol (IPP) and tools developed at the University of Rochester's Department of Computer Science. The IPP is a simple text protocol that allows several players to play a variety of poker games. The tools include a server and clients written in Java for developing poker-playing programs and playing games (with both humans and programs).

The resources available from this page were originally developed in 1998 to support classroom programming projects (grad-level CSC400 taught by George Ferguson and undergrad-level CSC172 taught by Chris Brown). In the years since then (current January 2006), several things have changed:

  1. Poker has gone from an underground obsession of a few vaguely unsavory die-hards to a mass-market phenomenon complete with professional leagues and almost continuous television coverage. Previously almost no knew knew what a flop was, or whether it was right to fold pocket jacks when on the button before the river. Now your grandmother will probably kick your ass for trying it.
  2. The Java language has matured. In 1998 we were using JDK 1.1 with the "new and improved" AWT event model. These days the latest flavor of Java is J2SE 1.5 and Java is also a world-wide phenomenon (for better or worse). I would certainly do several things differently if I was writing this today.
  3. The world-wide web has matured. Our first department server went up in January 1994 following the release of NCSA Mosaic 1.0 (announced on the NCSA "What's New" page, where all aspiring web geeks convened). These pages were written in the simple style that was the only markup supported by the early browsers. Frankly, it's a pleasant change from the banner-laden crap we have to look at today.

So that's a nice trip down memory lane, but what does it have to do with you. What it means is that these resources are provided as is. I have recently tested that they compile with Java 1.4 and 1.5, and that they seem to run as they used to. But there may be bugs, despite our best efforts seven years ago. The docs may be confusing or even incorrect (I've spotted a few typos). But on the other hand, there actually are a fair number of docs, which is better than one generally expects from free software. By the way, there's no javadoc because so far as I can recall, there wasn't javadoc back then (or maybe I was just lazy).

Legalities: You are welcome to use the code for non-profit purposes. We would be happy to hear from you if you do something interesting with it. You are not allowed to use this code for anything that makes money, although if you want to send us a cut we might reconsider. And now, on to the goodies...

Tools

Documentation

These files are all included in the source distribution.

External Links


Last change: 19 Jan 2006 by George Ferguson