Networked Colossus

Update 2012-12-03: Information below is pretty out of date. One can play remotely this way, if somebody wants to host a game, but more convenient is to use the Public Game Server, where you can find opponents and games are hosted there, so that no player need to configure his firewall and NAT in the DSL box (End-Update).

Colossus is now playable over a TCP/IP network. However, the network functionality is still not perfectly stable (it has improved a lot recently, i.e. since beginning of 2007), and the setup of a networked game is not overly easy-to-use or user-friendly. And turn-based games are inherently brittle -- if one player stops moving or drops his connection, then the game is ruined for everybody. (For now -- we'll add the ability to reconnect or have an AI take over later.) So I recommend starting with 2-player games rather than 6-player games.

One person needs to run the server; his computer has to be reachable for the clients (see below). Currently, Colossus servers are short-lived, staying up only for the length of one game.

The server operator simply starts the game as usual, using Java Web Start or the run script for a local copy. The startup dialog should appear, allowing you to set the variant, optional rules, and how many players of which types you want. Human players are local to the server machine. Network players are remote. Press the "New game" button. The game will wait for *exactly* the number of network players you specify, before the actual game starts and the masterboard(s) appear. If you have a local copy of the game you can use command-line options instead. Use run -h to see them.

A server progress startup dialog (recently added, 2007) shows the progress which clients (their IP and player name) have already successfully connected. For practicing purposes, I recommend to start with a server and one "remote" player, but running that network client on the same machine.

Each client needs to wait for the server to be started, then run the runclient script or start the game from Java Web Start and select "Run network client" from the startup dialog. This will pop up a small dialog that lets you enter a player name, hostname, and port. The player name will default to your OS user name. The server host will default to the local machine, which probably isn't what you want unless you're doing loopback testing. You can use the IP address instead of the hostname if you prefer. Most servers will use the default port. Again, you can use command-line options instead. runclient -h to see them.

If server is started, startup progress log appeared, and all remote players claim "I have started the client!", but still nothing happens (= MasterBoard window does not appear), check from the startup progress log which clients have successfully connected. The one(s) missing there should restart his client.

If really nothing helps, you can press the "Abort" button in the bottom of the progress startup dialog to cleanup everything. (Otherwise, it might happen that some threads stay running, and perhaps keep the Port occupied; then it's laborous to kill the Java process manually.)

Once all the clients have connected, then the game should start up like a normal Colossus game. When the game ends you can use the File - New Game menu option to start another one, but all the clients will be quit and they have to start connecting using the same procedure as initially.