## Networked Colossus

Colossus is now playable over a TCP/IP network. However, the network functionality is still not perfectly stable. 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. 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 runscript 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. The game will wait for *exactly* the number of network players you specify, then start the game. If you have a local copy of the game you can use command-line options instead. Use run -hto see them.

Each client needs to wait for the server to be started, then run the runclientscript or start the game from Java Web Start and select "Run 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 -hto see them.

Once all the clients have connected, then the game should start up like a normal Colossus game. When the game ends, kill all the clients and the server and restart from scratch if you want to play again.

There is a simple chat client built in, but it's not very good. I recommend using your favorite IRC or instant messenger client instead.

## FAQ

- How do I find opponents?

  There used to be an IRC channel, but it's dead. Sorry. We should update this document if someone starts a new one.

- What about firewalls?

  The server accepts connections from clients on port 26567 (used for game traffic) and 26568 (used to serve files). Return traffic is piggybacked on the same sockets rather than opening more. So client machines only need the ability to connect out on those ports, while server machines need a publicly visible IP address with those ports visible through the firewall.

- If a network game crashes, can I reload it?

  Yes, but the procedure is complicated. The server operator needs to load the game, then the other players need to rejoin in the exact same order as before. This is much easier to coordinate if you use an external chat application, like IRC or an instant messenger client.