New program

I found this board game at a used book store for $6:
"Terrace"
http://www.boardgamegeek.com/boardgame/2872

I couldn't find any (free or otherwise) implementations of it online, except for "Java Terrace", which doesn't support online play (it's just a board).
The game is pretty cool, offering a rather odd twist on chess/checkers, and is fun to play with 2-4 people (though 2 is quite different from 3 or 4). Seems to be out of print. Anyway I wrote a Terrace GUI with a simple AI. However, I'm more interested in online play.
I still haven't found a framework that I'm really excited about, so I wrote my own "online game server" using Apache MINA.

So really, I have two mini-projects going:
- a very simple game server that allows for turn-based board games to be "plugged in" if they implement the proper interfaces
- an online version of Terrace built on this server

The simplicity of the server is demonstrated by the fact that I more or less retrofitted the Terrace GUI to be "online" with minimal changes.

The server is different from the Invade Earth host in that it supports multiple "tables" and is meant to be run continuously. This should eliminate the firewall/router/etc. problems we had with I.E.

There are many features and tweaks I'd like to make, but the program basically works. You can start/join/leave tables, chat public/private, chat in the lobby, start a new Terrace game with different options, and make moves. If I can remember how I'll upload a beta version sometime soon :)

Re: New program

Where's a good place to upload stuff for messing around? I have the info for "invade earth" ftp, but I thought there was a public or general use ftp.

Re: New program

I just sent you the info for the FTP site, just let me know if it doesn't work out. I'm interested to see how it plays... sounds like a fun game.

Re: New program

Here's the client:
http://www.smileygames.net/uploads/TerraceOnline/TerraceOnline.jnlp

The server is command-line. Download
http://www.smileygames.net/uploads/TerraceOnline/TerraceOnline.zip
and unzip it, then:
java -cp TerraceOnline.jar org.terrace.online.Server [optional port]

Last time I checked, my AI was broken :( so I haven't bothered including it.

Quick rule summary:
Object is to get your "king" ("T") piece to the opponent's lowest corner OR capture all enemy kings.
There are three kinds of movement.
1. On the same terrace, you may move any distance, hopping over any number of your own pieces. You may not jump enemy pieces and cannot capture anything. (You can't cross diagonally in the center, either.)
2. Moving up a terrace, you may move to any empty adjacent square, straight or diagonal.
3. Moving down, you may move to an empty square straight down only. You may capture diagonally down only, and the piece captured must be the same or smaller size; you may capture your own pieces.

Re: New program

hmmmm found the AI problem---actually I fixed it before, but made a code-version mistake :p anyway I'm going to add some kind of API to the game server library and then integrate AI for TerraceOnline.

Re: New program

For some reason I can't access the jnlp file, but I was able to run it the manual way. Not that I had an AI to play against. :)

Let me know if you want a special FTP location to upload to, like the one for Invade Earth. I don't think I can host a Java server though... cheap hosting has its drawbacks.

Re: New program

oops, the file was launch.jnlp.
I'll let you know when I get the AI interface. I have a halfway decent AI (5 or 6-ply search, which is decent considering the branching factor... maybe needs a better eval function).

A permanent server would be nice eventually, but for now I'm focusing on getting the network API to run smoothly. When I did Invade Earth it was really hacked together, but this time I want to do it right so I can reuse it. I think it's already much better. The game and display logic is decoupled from the networking, saving/loading, etc. The server supports multiple tables, each defined with a host to prevent shenanigans (non-host can't do new/save/load/kick). Even if people just serve off their own computers it should be better, though I also need to throw together a simple GUI for the server.

Once the API supports bots, I'd like to implement some more complex board games. Perhaps there'll be a new version of I.E. some day, but I'm also thinking of doing something like Twilight Imperium 3rd edition (http://boardgamegeek.com/boardgame/12493). If I did, it wouldn't be an exact clone since FFG (the publisher) apparently frowns on such things.