My Freeciv recorder has now reached version 0.0.1. It should be usable
for people technical enough to read this list. A game is recorded by
inserting the recorder between the server and the client(s). The
records can later be played back to the Freeciv server.

It should be started from the command line. To run it Java 6 or 7 is
required. It has been tested on GNU/Linux (Debian Wheezy). It has been
confirmed to work on at least some Windows configurations.

Before play back the Freeciv server must be in the same state as it
was before recording. This can be done by loading the same savegame or
setting the same gameseed and mapseed. More details on how to use it
are found in the README.

Getting it:
 * A version compiled for the Freeciv 2.4 beta (without including it)
can be found at
It also include the source code and the Freeciv source code used to
generate some of the Java code.
 * A tarball containing the source code alone can be found at
 * The source code and its version history can be downloaded using
Bazaar by running the command
     bzr branch
 * The source code and its version history can also be downloaded
using a recent versions of git + the git contrib script git-remote-bzr
by running the command
     git clone bzr::

To get Freeciv download the 2.4 beta from the Freeciv web site or
compile SVN trunk.

To test that everything works start a freeciv server and run the
helper script testSignInToServer (testSignInToServer.bat on Windows)
or launch FCJTestSignIn.jar directly if that is easier. If you can see
the protocol converted to text it works.

The next thing to test it the recorder. Start a Freeciv server
listening to port 55555. Start the recorder ("./proxyRecorder" or
proxyRecorder.bat). Then start a client connecting to the regular
port. Set the gameseed and the mapseed from the Freeciv client so the
state is taken care of. It is recommended to only record a few turns
using a single client until you know its working. Exit the server by
typing "/quit" on its command line. To play it back start a Freeciv
server listening to the normal port. Then run playRecord. Don't
connect a client until the record is done. If everything is the same
as they were when you exited it worked.

Known issues:
 * The Freeciv server, at least using my set up, have a tendency to
crash when a global observer is connected.
 * The play back's implementation of Freeciv's hack protocol will act
as if it were the client. If you record a remote client and play it
back locally this may cause hack access to be granted when it really
 * The Windows implementation of the Freeciv hack protocol may use a
different location than Freeciv use on some set ups.
 * Unless you exit the Freeciv server (by using "/quit") before
disconnecting the last client the recorder may not exit.
 * The capability support is limited. Programs that understand the
packets, like inspectTrace, will error out on variants. The recorder
don't understand anything by default.

Sveinung Kvilhaugsvik

Freeciv-dev mailing list

Reply via email to