Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
[Photo of the Author]
by Harald Radke

About the author:

Harry studies computer science at the
University of Technology in Aachen

, Germany since 1994. He came to Linux in 1995. Since then he plays around with it, always surprised about what a great piece of software it is. He programs a little under X, likes graphics and of course playing games. Other hobbies are: playing board games, reading SciFi, playing guitar (bad!), cooking, practicing Ju-Jutsu and spending his time with his girlfriend.


Game Review - FreeCiv



FreeCiv is an open source clone of Sid Meier's popular

games. We will take a look at this program, from downloading up to some game basics. The version discussed here is
FreeCiv 1.8.3 Beta 3



FreeCiv is a (as the name already indicates) free clone of Civ, Civ II, Civ Net, the popular game series, created by Sid Meier at Microprose. Currently, FreeCiv looks similiar to Civ I (though graphics are better), follows almost the Civ II ruleset (though modifications were done if they were considered to be necessary) and provides of course multiplayer capabilities over the net.

In short, the players' goal is to lead their nations from wandering tribes to powerful civilisations by founding cities, terraform the environment, research sciences and trade (or fight) with other nations. Well, to be honest, the only goal is to wipe out all competitors and "unite" the world this way. Fight, trade and terraforming are done by units on land, air and sea. Each unit has movement points, from which a moving range is determined, attack and defense values, as well as a damage status. FreeCiv is a turn based game, but all players play their turns parallel. Every player who has finished his turn waits for the other players. As soon as the last player finished his turn or an optional turnout value has been reached, the next turn begins.

I think FreeCiv is one of the first bigger game projects for Unix. A lot of work has been done to create this highly addictive game. It comes with nice graphics and a state of the art graphical user interface (GUI). The game itself actually consists of two programs, a server (civserver) which is responsible for game creation and civclient, the program the user runs in order to play. Before you can play you have to connect to a server with the client, either locally or somewhere on the net.



In order to compile and/or run either program, certain software has to be installed on your box.
The INSTALL file of FreeCiv lists the following prerequisites:

  • Unix or an unix alike Environmnet
  • an ANSI C compiler - if you want to compile it from the source code
  • the "make" program

Of course the client also needs the above programs. Additionally the following software must be installed:

GTK+ client
Athena widget client
  • X Windows System
  • GTK+ widget library, Version 1.2.1 or greater
  • Glib utility library, Version 1.2.1 or greater
  • Imlib graphics library, Version 1.9.2 or greater

  • X Windows System
  • Athena widget library (Xaw) or the 3dish looking version
  • The XPM library

As you can see, there are two versions of the client, for different X widget sets. Since Version 1.8.0 (I think), the GTK client is the default one. GTK is the GIMP toolkit, it comes with a quite modern look and if possible, you should select this client.
However if you don't have the GTK stuff or don't want to install it, you can choose the Athena client version. This widget set comes with most distributions and chances are good it is already installed. The price for this choice is a really poor look of the GUI, as the Xaw widgets looks very "basic".



There are to ways to get and install FreeCiv:

All packages can be retrieved from the FreeCiv homepage at http://www.freeciv.org.

If you decided to take the precompiled version just proceed as you do with other packages to install them under your distribution.

For compiling and installing the source I again suggest to read the INSTALL file. It covers the process of installation quite detailed. If you follow it step by step, you shouldn't run into trouble.

In short:

Now what was compiled and installed ? Of course both programs. They should be now at a directory which is in the PATH environment variable so you can call them without using the full path.
Besides the binaries there are several data files, FreeCiv needs. Those are pixmaps for graphics and map tiles, rulesets for playing and more. These files should be located now inside a seperate FreeCiv directory, created by calling make install.
Actually you should now already be able to start the programs!

Note:Some Linux distributions have splitted libraries like GTK and Imlib into two packages, one containing the library files for the execution of binaries and another package with header and config files. Make sure to have both installed when compiling FreeCiv!


Setting up a game

As mentioned before the civserver must run somewhere in order to join and play a game. All settings for the game are controlled by this program, e.g. map size, number of players, initial science level, city size for civil disorder and a lot more. It doesn't matter if you really want to play with others or just against the computer, somewhere the server must be up and running!

If you want to take part in a network game, simply invoke the client by civclient, the rest is described later, you don't have to cope with changing server settings (except you were the one who started the server on the net).

Ok, you want to start a game, either for your own or in interaction with other humans. First of all call civserver. This will start the server and give you a command line for it. All settings are controlled via this line. To get information on possible command line parameters for invoking the server program start the civserver with --help. Back to the command line. To get an overview of all commands, type help. You can add or remove players, set them as computer (AI) players, decide how good those AIs should be and finally start the game.

All options related to the game itself (map size, map layout...) are handled via variables whose values can be changed with the set command, e.g. set xsize 100 defines the number of tiles in horizontal direction to 100.

Here is a list of a few commands and another one showing some game options.
For more information, have a look at the README file, coming with FreeCiv.

server commands
help displays a list of server commands
explain name shows information on name, either command or game setting
show shows current game settings
set var newval changes the value of the game variable var to value newval
create name creates a new player name to which people can log in. This is some kind of player slot
remove name removes a player name fully from the game
ai name toggles AI on player name (on/off)
easy name sets AI player name to the gaming level
quit terminates the game and shutdowns the server
start starts the game
game settings
xsize horizontal map size in tiles
ysize vertical map size in tiles
generator method for generating maps (do explain generator)
techlevel initial science level
timeout number of seconds before turn end is forced
maxplayers maximum number of players
settlers initial number of settlers

Again, I recommend to read the README file and to play with server options and commands (help, show and explain are your friends!).

One thing about meta servers: There are currently two meta servers out there where people can register their created FreeCiv games. This way people can look for open games and join them. As FreeCiv doesn't limit the number of players, really cool games can be set up! To register, the server provides the command metaserver adr which reports the game to the server at adress adr. The command meta msg lets the meta server print the line msg as comment to your game. The meta servers provide those information on HTML pages.


Beginning of the Game

No matter if you run your own server or want to connect to one on the net, the next step in order to play is to start the client civclient. This will bring up the main window as well as a connect dialog asking you for the desired server name and port the server is listening to (there is a default value you should try if you weren't informed of any other number) and the player's name. The latter is the name for the player you want to log in at the server. This name is important if you have to re-login during the game play due to a kickout or if access to the server is restricted (maximum number of players was reached and actual players are assigned via names). The name identifies you and allows you to join as a player. This dialog pops up as soon as your client isn't connected to any server.

After logging in, the main window is the interesting one. The biggest window will display the game world. It displays the FreeCiv logo in the beginning. To the left there is a small map for a better overview and certain buttons and other widgets which show some general settings and values (for your empire, not the game itself!). The bottom window contains a chat dialog where all current players can send messages to each other (whether to all or to one player only) and in which game messages are shown.

After all settings are checked and accepted by the players (type /show to see them), the player who is in charge of the server starts the game. Now every player selects one race and names the emperor. Every race might only be selected by one player.


The World

Depending on the server settings, the world ist generated with different islands, housing a certain number of players each and covered by different terrain types. Those terrain types, ranging from ice and plains to mountains and deserts, provide certain amounts of food, resources and trade, which affect the growth and wealth of your cities.

Your empire, actually formed by your cities, can be governed in different ways. There are different government types like anarchy, communism and democracy. All of them have different advantages and limits. So it is up to you to select the best one for the current situation.

Your cash is limited so you have to decide how you want to keep the balance between science, taxes and luxury. This balance will influence your race in researching science, wealth and your nation's treasury.

FreeCiv main window

Note the black areas at the game window. These fields are terra incognita, fields you haven't explored yet. As mentioned before, you can send messages either to all players or to only one of them. Therefore use the text entry at the bottom. To send a private message, start the text line with the name of the player, followed by a colon.



As already said, your cities form your empire. It is up to you to found and conquer new cities, let them grow and keep their citizens' content.

Every city uses the surrounding land for aquiring food, ressources, trade and money. You have to irrigate plains, mine hills and construct roads to get more of them. Every tile can only be used by one city, so be careful on founding cities or they will limit each other in growing.

city dialog

You can increase research, taxing or entertainment by adding specialists for those fields to the citie's population. But for every one of them you have to abandon one of the city tiles, which will affect the citie's income, food production and so on. So you always take a closer look on what you want to do.

A city can only keep on growing if certain buildings are errected. Other constructions keep people content, increase the tax income or support scientific research. A special group of buildings - world wonders - give you some unique abilities if it was you who built them. Every wonder can be built only once. For normal buildings you have to pay a fee per turn in order to maintain them.

From time to time the citizens get unhappy or even start rioting. You can restore order by increasing the number of entertainers in the city or build certain buildings.

Building is done with production points, acquired from ressources on the tiles, surrounding the city. Every turn the points are put into building work. Most of the time it takes more than one turn to finish construction. Things can be sped up by paying money for those missing production points.

Food is necessary to preserve the citizens from starving and providing a growing population. If the city tiles are poor or you have too much fields abandoned for scientists or entertainers, the city may run out of food and population will decrease.



Every action outside the cities is done by troops, whether on land, air or sea. Almost all troops are combat units, to protect your empire and liberate foreign cities. Every unit has certain values for attacking and defending capabilities as well as damage and movement points.

Units are built in cities just like buildings. They must also be supplied with food and/or production points, depending on the number of units a city has built and the current type of government.

Moving units is done via the arrow keys, or by assigning a destination. In latter case the computer will move them every turn, until the position was reached or you move the unit yourself.

Fighting is done by moving the attacking unit onto the defending one. Depending on attack and defense values, damage points and the combat terrain, one of the unit is defeated. If the defender was destroyed and there were more than one unit at the attacked field, all of them are destroyed!

Attacking a city is a little different. You have to kill every unit inside a city one by one. This might be more difficult as troops inside cities get a defense bonus for the city. Additionally the terrain the city is located on might give another defense bonus and the buildings are increasing the citie's defense structure. Every time a defending unit inside a city was beaten, the city population is decreased (except the city has city walls).

Their are all kinds of units, simple spear men, knights, musketeers, frigates, bombers, jets, nuclear missiles and a lot of more. Note that air units (except helicopters) must have been returned to a city, a carrier or an air base before the last movement point has gone !

But the maybe most important unit is not a combat unit, it is the settler (or later engineer). Settlers found cities, terraform, irrigate and mine, build roads and fortresses and they clean tiles from pollution, caused by heavy industries or nuclear fallout. You always need them, so be careful with them. Settlers are built as any other unit, but they will be recruited from the city population and thus decrease it.



You can only build units and buildings that are provided by the sciences you already have discovered. The same goes for the type of government. If your scientific research stagnates, your whole empire will do the same as other races will go on, build bigger cities and threat you with more powerful weapons.

science dialog/report

Science is acquired by spending a certain amount of income for it and building special buildings inside the cities.You can also treat with other players and exchange knowledge. When deciding which science should be discovered next, you should always take a look on what you need next or in the near future. There is an overview of sciences at the help menu, where you can look and find out which one you should research to acquire certain knowledge.



Of course you can fight every player who comes around. You can cross all seas and explore all islands yourself. It is possible to research all knowledge by your own...no doubt. But it is always good to have one or more friends out there as it is a really tough world. You can help each other in fighting enemies, exchange maps of those parts of the world you have already seen and trade knowledge. Diplomacy is something you shouldn't leave out, especially if you play with a lot of other players.

Diplomacy reqires you to establish an embassy on the other side. This is done by diplomats, a special unit. But this unit does more than just establishing embassies. With it you can try to bribe enemy units, steal (random) knowledge, sabotage the production in a city or incident a revolt which might let the city change to your side. Isn't diplomacy just wonderful ?? (:


Statistics and Help

The game menu provides, beside game commands, some information about your empire and its place in the world, as well as help to get information about units, buildings, terrain types and much, much more. This is really helpful in order to plan your next turns.

demographics report

You should also take a look at the statistics. This way you might get a clue about things that are going wrong (if your ranking amongst the other players is really poor in one or more fields).


Changing Graphics and Rulesets

It is possible to change the look of units and map tiles. Those files are located in the data directory mentioned above. This way you can have your own look of the game and it behaves the way you want. This is really cool if there are things you never liked about the game. No problem, up to a certain extent it is possible for you to adjust the game to your wishes. To get more information about changing graphics and rules, see the files README.graphics and README.rulesets.

One word about the text files mentioned here: Those files come with the source code of FreeCiv. I don't know if they are also included in the binary packages. If not, you might find them on the web or (if not) you should get the source tarball.


In the End...

Unfortunatly this article could only give a small overview on FreeCiv. There is really a lot to discover and there are various different ways to play. I really hope you got a first impression about the complexity of this game. People who like strategy games will surely find it attracting. On the other hand it is not too complex so you will get into it after some games. The best thing for you to do is to grep the files, some docs and play with them.

I myself used to play FreeCiv for many, many hours. Unfortunatly I left the students dorm and the associated permanent Internet connection. Therefore I am forced to use the good old telephone lines which gets expensive very fast. But believe me, FreeCiv is a game you can play either at home against the computer or other humans. Whole FreeCiv sessions with people carrying their boxes from house to house in order to connect them are known, so be careful with this really addictive game. (:

What will the future bring to FreeCiv? Well, there is still work to be done for the programmers. They are working on the gameplay itself, adding more features, even those which extend the Civ II ruleset. And I think (hope) that the graphics will also be improved, some nice pictures or animations would be a feast for the eyes. Possibly the display engine for the game world may change from flat 2D look to some isometric view. Currently there is no music nor sound support, who knows what the future holds ? If curious, have a look at the FreeCiv web site, there is more to see about coming features.



Webpages maintained by the LinuxFocus Editor team
© Harald Radke
LinuxFocus 1999

1999-12-06, generated by lfparser version 0.9