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