Texas Hold'em Game Server for AI-Developers
Introduction
The software is a general open source game server with a built-in Texas Hold'em plug-in. It is suitable for all kinds of turn-based multiplayer games. It is done completely with Java programming language so it is platform independent. The built-in Texas Hold'em plug-in includes a nice-looking, rich-in-features graphical user interface and an AI-interface for building your own poker bots.
When using the server in a scientific context, please, refer to the article
Texas Hold’em Game Server for AI-Developers, Teemu Saukonoja and Tomi A. Pasanen, in the proceedings of the 13th International Computer Games Conference (CGAMES 08), Wolverhampton, UK, 2008, pp. 27-29
Requirements
Running of the software requires Java Runtime Environment (JRE) 6 or newer. For the server-side of the software, an external database (e.g. MySQL, PostgreSQL) is also needed.
In addition to Java SE Development Kit (JDK) 6 or newer, building of the software with included build-files requires Apache Ant 1.7 and Java Enterprise Edition 5 or newer.
Instructions
Installation
Unzip the downloaded package to any directory.
Configurating
As the game server needs an external database you need to create required tables. You can find the needed SQL statements in the gs/sql/ directory of the software (or in the short manual). In addition to that, you have to make changes to server.conf file (more information can be found in the file or in the manual) to make it point to your database.
Running
First you have to start the server. It should be done in command line interface (CLI). First, go to the gs/Project/ directory. In Microsoft Windows use server.bat and in Linux use server.sh script to start the server. In other environments, you can also start the server by command: "java -jar bin/server.jar".
When you have the server running you can start the client. In CLI (in the gs/Project/ directory) use client.bat if you are using Microsoft Windows and client.sh if you are using Linux. Client can be also started by command: "java -jar bin/client.jar".
First, you get a connection window where you can give the IP address of the remote server or just press connect if the server is running locally. After that, you get a game browser window where you can log-in, create new Texas Hold'em tables and join into a game.
Building
For building with included build-files you should set the webservices-tools.jar (from Java EE) in your Java Classpath. After that the building can be done by using ant command in the root (gs) directory of the game server.
Development
There's a plug-in tutorial for developing purposes. In addition to that, there is a whole program API and restricted PokerBot API available.
Downloading
Download the latest version of the software (in zip-file) here.
Documents
New in this version (0.60)
New features
- In Texas Hold'em AI-interface, couple of new functions to calculate the hand strength and the negative and positive potential of the hand.
- A new bot to demonstrate the capabilities of the AI-interface.
Fixed issues
- Supports now MySQL database (and hopefully some other too), not just PostgreSQL.
- Problems (thread safe issue) in updating the GUI of Texas Hold'em client fixed.
- Wrong bet size in turn in fixed limit game fixed.
- Wrong cap in pre-flop in fixed limit game fixed.
- Bet and Pot fields showing now right amounts.
- Bet button instead of raise button when betting not raising.
- Sounds weren't working properly, so no sounds available in this version.
- Possibility to make bot user in creating account taken away (because it actually created another regular user).
- Some other minor bugs fixed.
Known issues
- When betting the player's field indicates raising.
- In all-in situations the game doesn't always continue automatically.
- Problems in some situations to join into the game.
- Some other occasionally occurring errors that can in the worst case crash the server.
Needed features
- Possibility to see your own bot's cards.
- Batch mode (for fast bot vs. bot testing).
Licensing
The software is open source and written and distributed under the GNU General Public Lisense (GPL).
Credits
The software was originally developed by the following group:
- Vesa Vilhonen (Project manager)
- Jaakko Louhio
- Raine Rimpila
- Mika Urtela
- Sami Kuisma
The project was instructed by Sampo Yrjänäinen and commissioned by Tomi A. Pasanen and Teemu Saukonoja.
Fixes and additions of the newest version were made by Teemu Saukonoja and the software is currently maintained by Tomi A. Pasanen and Teemu Saukonoja.