File: README

package info (click to toggle)
freeciv 1.9.0-2.1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 11,004 kB
  • ctags: 6,284
  • sloc: ansic: 65,037; makefile: 634; sh: 418; sed: 93
file content (459 lines) | stat: -rw-r--r-- 15,506 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
                           =========================
                           Freeciv 1.9 documentation
                           =========================

Welcome to Freeciv!
 
This archive contains Freeciv version 1.9, a free Civilization clone
for X, primarily under Unix.  It has support for multiplayer games
locally or over a network, and an AI which gives most people a run for
their money.

Freeciv aims to be mostly rule-compatible with Civilization II[tm],
published by Sid Meier and Microprose[tm].  A few rules are different
where we think it makes more sense, and we have lots and lots of
adjustable parameters to make customizing games possible.

Freeciv has been implemented completely independently of Civilization;
you do not need to own Civilization to play Freeciv.

Although the graphics are not as polished as those in Civilization II,
the rules are very complete, and our multiplayer and networking code is
excellent.

Web site:
=========

Freeciv's web site is here:

  http://www.freeciv.org/

We invite you to visit.  You can get the latest Freeciv news, releases
and patches, find out about the Freeciv mailing lists, and see the
Freeciv metaserver, which records games being played around the world.


License:
========

Freeciv is released under the GNU General Public Licence.  In short, 
you may copy this program (including source) freely, but see the 
COPYING file for full details.


Compiling and installing:
=========================

Please read the INSTALL file carefully for instructions on how to get
Freeciv compiled and installed on your machine.


Starting a new game:
===================

Freeciv is actually two programs, a server and a client.  When a game
is in progress, there will be one server program running, and as many
client programs as there are human players.  The server does not need
X, but the clients do.

    NOTE:

    The following examples assume that Freeciv has been installed on
    your system, and that the directory containing the "civclient" and
    "civserver" programs is in your PATH.  If Freeciv is not
    installed, then you may want to use the "civ" and "ser" programs,
    which can be found in the top Freeciv directory.  They are used
    in exactly the same fashion as "civclient" and "civserver".

Running Freeciv involves starting the server, then the client(s)
and AI(s), then telling the server to start the game.  Here are the
steps:

Server:

  To start the server:

  % civserver

  Or for a list of command-line options:

  % civserver --help

  Once the server is started, a prompt will appear:

  Get a list of the available commands with 'help'.
  >

  and, you can see that list by using the help command:

  > help
  Available commands: (P=player, M=message, F=file, L=level, T=topic, O=option)
  -----------------------------------------------------------------------------
  ai P            - toggles AI on player
  cmdlevel        - see current command levels
  cmdlevel L      - sets command access level to L for all players
  cmdlevel L new  - sets command access level to L for new connections
  cmdlevel L P    - sets command access level to L for player P
  create P        - creates an AI player
  cut P           - cut connection to player
  easy            - All AI players will be easy
  easy P          - AI player will be easy
  explain         - help on server options
  explain T       - help on a particular server option
  hard            - All AI players will be hard
  hard P          - AI player will be hard
  help            - this help text
  list            - list players
  meta M          - Set meta-server infoline to M
  metaserver A    - Game are reported to address A
  nometa          - Close connection to the metaserver
  normal          - All AI players will be normal
  normal P        - AI player will be normal
  quit            - quit game and shutdown server
  remove P        - fully remove player from game
  save F          - save game as file F
  score           - show current score
  set             - set options
  show            - list current server options
  show O          - list current value of server option O
  start           - start game
  Abbreviations are allowed.
  >

  If you like, you can use the 'set' command to set any of the various
  server options for the game.  You can get a list of the options
  with the 'show' command, and explanations with the 'explain' command.

  For example:

  > explain xsize
  Option: xsize
  Description: Map width in squares.
  Status: changeable
  Value: 80, Minimum: 40, Default: 80, Maximum: 200

  > set xsize 100
  > set ysize 80

  This will make the map twice as large as the default of 80x50.

Client:

  Now all the human players should join, by running the Freeciv
  client:

  % civclient

  This assumes the server is running on the same machine.  If not, you
  can either specify it on the command use with the '--server' option,
  or enter it into the first dialog box once the client starts.

  For example, suppose the server is running on a different machine
  called 'neptune'.  Then players would join with a command like:

  % civclient --server neptune

  If you're the only human player, then only one client needs to be
  started.  In standard Unix fashion you can start the client
  "in the background" by appending an ampersand:

  % civclient &

  Another option for the client you may like to try is the '--tiles'
  option, which can be used to select different "tilesets" (that is,
  different graphics for the map terrain, units, and so on).  The
  distribution comes with two tilesets, called "trident" and "engels".
  In this release the trident tileset is the default (in some previous
  releases the engels tileset was the default).  The two tilesets have
  quite different graphic style, so you may find you prefer one over
  the other.  The trident tiles are smaller, so may be better if you
  have a small display.  But try them both and decide for yourself --
  to use the engels tileset start the client with:

  % civclient --tiles engels

  Other tilesets may be available from the ftp site.  

  Clients can be authorized to issue server commands.  To allow them
  to use informational commands only, type at the server prompt

  > cmdlevel info

  Clients can now use '/help', '/list', '/show settlers', etc.

Computer Players:

  There are two ways to create AI players.  The first is to set 
  the number of players (human and AI) by setting the 'aifill'
  server option.  For example:

  > set aifill 7

  After using the 'start' server command to start the game, any players 
  which aren't controlled by humans will be AI players.  For the above, 
  if two human players had joined, 5 AI players would be created.

  The second way is to explicitly create an AI with the 'create'
  server command.  For example:

  > create HumanKiller

  This will create an AI-controlled player called HumanKiller.

  AI players are assigned to tribes after all human players have
  chosen their tribes, but you can choose a particular tribe for an AI
  player by using the normal name for that nation's leader.  For
  example, to play against AI-controlled Romans, use this server
  command:

  > create Caesar

  Note, this is just a preference:  If no other human player chooses
  to play the Romans, then this AI will.

Server:

  When everybody has joined (use the "list" command to see who's in), 
  start the game with the "start" command:

  > start


And the game is on!


Announcing the game:
====================

If you do not want to limit your opponents to local friends or AI players,
visit the Freeciv metaserver:

  http://meta.freeciv.org/metaserver

It is a list of Freeciv servers.  To make your own server announce itself
there, start civserver with the '--meta' option, or just '-m' for short.

Caveats:

 1) Due to the inclusion of new features, different client and server
    versions are often incompatible.  Not all incompatibilities
    can be caught and reported properly.  One example is a 1.8.0 (or
    later) client connecting to a 1.7.2 server: the client appears
    to connect, but it never gets any messages from the server.

 2) If the Metaserver button in the connection dialog doesn't work,
    check if your ISP uses a mandatory WWW proxy and make civclient
    use it through the $http_proxy environment variable.  For instance,
    if the proxy is proxy.myisp.com port 8888, set $http_proxy
    to http://proxy.myisp.com:8888/ before starting the client.

 3) Sometimes there are no games on the metaserver.  This may be
    partly because the metaserver has changed hosts, and previous
    Freeciv versions do not know about the new address.  Also, games
    no longer show up on the metaserver by default, instead people
    have to deliberately use '--meta'.  If you want to play a game on
    the metaserver, are there are none there, try starting one
    yourself!


Playing the game:
=================

The game may be saved the game at any time using the 'save' server command,
like so:

> save mygame

The Freeciv client works pretty much as you would expect from a
multiplayer civilization game. That is, the players move at the same
time.  There's a turn timeout value, which is by default set to 0
seconds (no timeout).  The server operator can alter this value at 
any time with the 'set' command.

Have a look at the online help system. All three mouse-buttons are
used, and documented in the help.

Players can push the 'Return' key to announce the end of their turn,
or just push the 'Turn done' button.

Use the 'Players' dialog to see who has announced their end of turn,
and who you're waiting for.  (Hey feller, are you asleep or what?? ;).

Use the input line at the bottom of the window for broadcasting
messages to other players.

You can send a message to an individual player (say, 'peter') like so:

  peter: move that armor away *NOW*!

The server is smart enough to perform "name completion", so if you had
typed "pet:", it will pick find a player name that matches the part of
the name you typed.

On newer servers (version 1.8.1 or later, or some development 1.8.0 
versions) you can issue server commands from the client input line:

  /list
  /set settlers 4
  /save mygame.sav

The server operator will probably let you issue informational commands only.
This is partly because allowing clients to use all server commands has
security implications; consider if a player tried:

  /save /etc/passwd

Of course the server should not be running with superuser privileges in
any case, to reduce this sort of risk.

If you're just starting, and would like to get an idea of a strategy,
have a look in the Freeciv playing HOWTO, contained in the HOWTOPLAY
file.

For lots more information about the client, the server, and the
concepts and rules of the game, see the Freeciv manual, available
at the web pages at:

   http://www.freeciv.org/manual/main.html


Ending the game:
================

There are three ways in which a game can end:

1) Only one race is left.
2) The final year is reached.
3) A player builds and launches a spaceship, which reaches Alpha
   Centauri first.

A score-table will be shown in all cases.  Hint: The server operator 
can set the final year while the game is still going by changing the
'end-year' option.  This is nice when the winner is obvious, but you
don't want to play through the boring 'cleanup phase'.

Restoring games:
================

You can restore a saved game by using the '-f' server option, eg:

  % civserver -f oursave2001.sav

Now the players can rejoin the game:

  % civclient -n Alexander
  
Notice how the player-name is specified with the -n option. It's vital
that the player uses the same name as they had when the game was running,
if they're to be allowed in.

The game may then be restarted with the 'start' command as usual.


Server autostart:
=================

When the maximum number of players have connected, the server auto-starts.
The maximum number of players can be set with the 'maxplayers' option.


Log messages:
=============

Both the client and server print messages known as "log messages".
There are four categories of log messages: "fatal", "normal", "verbose",
and "debug".  

By default, fatal and normal messages are printed to standard output
where the client or server was started.  You can direct log messages
to a file instead of the screen with the "--log filename", or "-l
filename" command line options.

You can change the level of log messages displayed with "--debug 
level" or "-d level" (or instead "-de level" for the Xaw client, since
"-d" is ambiguous between "-debug" and "-display"), where "level" is 
0, 1, or 2.  0 means show fatal messages only, 1 means show fatal and 
normal messages (the default), and 2 means show all fatal, normal, and 
verbose messages.

If you compiled with DEBUG defined (an easy way to do this is to 
configure with --enable-debug), then you can get debug level messages 
by setting the level to 3.  Also, it is possible to control debug 
level messages (but not other messages) on a per-file and per-line 
basis.  To do this use "--debug 3:str1:str2" (as many strings as you 
like, separated by colons) and any filenames which match those strings 
as a substring will have debug log messages turned on, and all other 
debug messages will be suppressed.  To control lines, use:
"--debug 3:str1,min,max" and for files which match str1 only debug
messages within the specified minimum and maximum lines will be 
printed.  Only one set of (min,max) can be applied to each file.

Example: 
	 % civserver -l my.log -d 2

This sends all server log messages to file "my.log", including verbose
level messages.

Example: 
	 % civclient --debug 0

This suppresses all non-fatal client log messages.

Example: 
	 % civserver -d 3:log:civserver,120,500:autoattack

This turns on all fatal, normal and verbose messages for the server, 
and debug level messages for some specified modules.  Note that "log"
will match "gamelog.c" as well as "log.c".  For "civserver.c", only
debug messages between lines 120 and 500 will be printed.  This 
example only works if the server was compiled with DEBUG.


Bugs:
=====

Found a bug?  We really want to hear from you so we can fix it.
See the file BUGS, for a list of known bugs in this release, and 
information about reporting new bugs.


Mailing lists:
==============

We maintain three mailing lists.  One is for users of Freeciv,
one is for developers of Freeciv, and the last is to notify developers
of changes to the Freeciv source code.

The lists are called "freeciv", "freeciv-dev", and "freeciv-cvs".
They are all public lists.

To send an email to the lists, address it to:

    <freeciv@freeciv.org>        (For Freeciv users)

or

    <freeciv-dev@freeciv.org>    (For bug reports, and for Freeciv developers)

To subscribe, send mail to <listar@freeciv.org>, with the single word
"subscribe", followed by the name of the list.  (Put this in the body
of the email message, leaving the email subject line blank.)

Example: To subscribe to the "freeciv" mailing list, send the line
"subscribe freeciv" to <listar@freeciv.org>.


New Releases:
=============

We make a major new release of Freeciv available about every three
months.  Check the Freeciv website from time to time to see if there's
a newer version!!


And finally:
============

Have fun and give 'em hell!

                                   -- The Freeciv team.