forked from freeciv/freeciv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.nations
437 lines (314 loc) · 16.1 KB
/
README.nations
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
===========================================================================
Freeciv Nation Rulesets and Flags
===========================================================================
This file describes the contents of the nation files. This is intended as
developer reference, and for people wanting to create/compile alternative
nation files for Freeciv. A nation consists of a nation file in the
rulesets and a flag in the tilesets.
The contents of this file is based on this page from the Freeciv wiki:
https://www.freeciv.org/wiki/Nations
----------------------------------------------------------------------
Local Nation files:
-------------------
Starting from freeciv-2.6, to most supplied rulesets nations can be
added locally without need to modify freeciv distribution files.
This section discuss the way there local override files work. Later
sections assume that nation is being added to main freeciv distribution,
even if only to locally modified copy.
Freeciv search data files from several directories in priority order.
Local nations overrides mechanism uses this to include files from
user data directory, ~/.freeciv/<freeciv version>/override/,
e.g., ~/.freeciv/2.6/override/
Freeciv distribution has empty versions of those files in a lower priority
directory. Once user adds the file, it gets used instead of the empty
one.
~/.freeciv/<version>/override/nation.ruleset
Ruleset sections for nations that user wants to add. This can of course
use *include directives so that individual nations are in separate files.
See below sections for the format of the nation rulesets.
~/.freeciv/<version>/override/flags.spec
~/.freeciv/<version>/override/shields.spec
~/.freeciv/<version>/override/flags-large.spec
~/.freeciv/<version>/override/shields-large.spec
Spec file fragments for flag graphics to add.
These should consist of lines mapping flag tags to flag graphics files.
"f.example", "override/example"
Of course you need to provide those flag graphics files as well.
How to add a Nation:
--------------------
To add a nation of your own, you should look at the following files:
data/nation/<nationname>.ruleset
This is the new nation, which you will have to create. It may help to
copy one of the other nation files over and edit it. See below for a
style guide for nation files.
- The <nationname> bit is to be replaced with the nations name (duh).
Please don't use whitespaces and special characters. Underlines are
ok though.
- The name should be the same as the name of the nation inside the
ruleset file.
- The file must be encoded in UTF-8.
data/default/nationlist.ruleset
This lists all nation files. Add your nation
(data/nation/<nationname>.ruleset) to this list.
data/flags/*
This is the flags directory. You will have to add a flag-file
(see below) for your nation to work (see below).
data/scenarios/*
You can add starting position for your nation on a scenario map.
Before a nation can be included in the main distribution, the following
files will also have to be edited. Unless you know what you're doing you
shouldn't need to worry about this.
meson.build
Add <nation> part of the <nation>.ruleset file name to the
'nations' list.
data/nation/Makefile.am
Another list of nation files - add your nation (<nationname>.ruleset)
to this list.
data/flags/Makefile.am
Another list of flag files - add your flag to this list.
translations/nations/POTFILES.in
Here is yet another list of nations files; again add your nation
(data/nation/<nationname>.ruleset) to it.
Nations part of the "core" group go to translations/freeciv/POTFILES.in
instead.
----------------------------------------------------------------------
How to add a Flag:
------------------
Overview
========
Please note that Freeciv no longer uses XPM files. PNG is the preferred
form for graphics, and flags should be made exclusively in SVG.
A new nation needs a new flag. As of Freeciv 2.1 all flags are stored
in SVG (Scalable Vector Graphics) format. Sodipodi and Inkscape are
two good SVG editors. If you are creating a real-world nation you can
probably find a Free or public domain flag that can be used. One good
place to look is the Open Clip Art Library (OCAL). Remember that any flags
we add must be licenced under the GPL and should be attributed to their
original author, so make a note of where you found the flag, what its
licence is, and who made it.
We also welcome improvements to existing flags. Most of our existing
flags come from the Sodipodi clipart collection, and some of them are
less than perfect. One common problem is that the colors are wrong. If
you fix a flag for a real nation be sure to cite your source so we can
be sure it's accurate. Good sources for nation flag data are Wikipedia
or Flags Of The World.
If you want to improve an imaginary flag, this is also welcome. We
recommend you first contact the original author of the flag
(see the flags/credits file) to discuss your ideas for changes.
Flag Guidelines
===============
Here are a few guidelines for flags:
- Flags should be rectangles, since an outline is added to them
automatically.
- Flags often come in multiple aspect ratios. A 3:2 ratio looks best
for Freeciv and currently every flag has this ratio. For a flag that
is "supposed" to be 2:1 or 4:3, you can often find a 3:2 version
as well.
Flag Specifics
==============
To add a flag you'll have to edit the following files:
data/flags/<flagname>.svg
Here is the SVG flag image. This is not used directly by Freeciv but
is rendered into PNG files (at various resolutions for different
tilesets). The SVG file is not used in Freeciv 2.0 but all the other
steps for adding flags are the same.
- The <flagname> should either be the name of the country that represents
the flag, or the common name for the actual flag. When in doubt, use the
same name as the name of the nation.
data/flags/<flagname>.png
data/flags/<flagname>-shield.png
These are the flag images that are used by Freeciv. They are rendered
from the SVG file. Once this file has been created it can be used with
older versions of Freeciv as well. To run the conversion program you
will need to install Inkscape, ImageMagick, and (optionally) pngquant.
Once these are installed change to the data/flags directory and run
./convert_png <nationname>.svg.
data/misc/flags.spec
This file has a reference to the flag PNG graphic. The "tag" here must
match the flag tag you put in the nation ruleset file
(usually f.<flagname>) and the "file" should point to the PNG image at
flags/<flagname>.png.
data/misc/flags-large.spec
Just like flags.spec, but large version of the graphics.
data/misc/shields.spec
Just like flags.spec, this file must include a reference to the flag
PNG graphic. The only difference is that the file should point to the
"shield" graphic, flags/<flagname>-shield.png.
data/misc/shields-large.spec
Just like shields.spec, but large version of the graphics.
Changes to the .spec files can be submitted as a patch (created using
diff -ruN). Even though the *.spec files may need to be changed, please
include them in the diff -- this should be easier for you, and it
provides a convenient place for us to grab the sprite name. See the
section on How to Contribute in the Freeciv wiki for more instructions.
meson.build
Add base flag file name to the 'flags' list.
----------------------------------------------------------------------
Contents and Style:
-------------------
What nations can be added to Freeciv?
=====================================
A nation in Freeciv should preferably be a current independent country
or a historical kingdom or realm. A nation that is currently governed
by or the part of a greater political entity, or in other ways lacks
complete independence could in most cases be made a Freeciv nation as
well, but must never be listed as _modern_ (see 'Nation grouping' below.)
Copyrighted content may not be added unless full permission is granted by
the holder of the copyright. This rule effectively disallows the
inclusion of nations based on most literary works.
Nation grouping
===============
Freeciv supports a classification of nations in an unlimited number of
groups and every nation should be assigned to at least one. We currently
have Ancient, Medieval, Early Modern, Modern, African, American, Asian,
European, Oceanian and Imaginary groups. Modern nations are existing and
politically independent countries; a nation listed as ancient, medieval
or early modern should have had an independent dynasty or state in ancient
(until 500 AD), medieval (500 - 1500) or early modern (1500 - 1800) times
respectively. Finally, an imaginary nation is - as the name suggests - a
product of someone's imagination.
Nation naming
=============
The default name of the nation should be the name of the people,
country, or empire in English adjective form. For example, the nation
of ancient Babylon is called "Babylonian" in Freeciv. The plural form
should be standard English as well. For example, plural for the Polish
nation is "Poles" in Freeciv. UTF-8 is permitted in nation names.
Conflicting nations
===================
To specify one or more nations that the AI shouldn't pick for the same
game, use this syntax:
conflicts_with="<nationname>", "<nationname>", ...
You only have to specify this in the nation you're adding, since it
works in both directions. Reasons for conflicting nations could be
either that they represent the same people in different eras
(ex: Roman - Italian) or that the two nations have too similar
flags that they are easily mixed up in the game
(ex: Russian - Serbian.)
Civil war nations
=================
Specify one or more civil war nations. When a player's capital is
captured, that player might suffer a civil war where their
nation is divided and a new player created. The nation for this new
player is selected from one of the civil war nations specified in the
ruleset. A civil war nation should be linguistically, geographically
and/or historically related to the current nation. A linguistic
relation is especially important, since city names after a nation
run out of their own city names, are selected from the civil war
nations' city lists.
Legend
======
A legend is required in a nation ruleset. The legend can be a
summarized history of the nation, or just a piece of trivia.
UTF-8 is permitted in legends.
Leaders
=======
A leader should be a historically notable political leader of the
nation. Two living persons per nation are permitted - one of each sex.
An ideal leader list should contain between five and ten names.
Use the person's full name to avoid ambiguity.
Monarchs should be marked with the appropriate succession
number, using Roman numerals in standard English style (not German
e.g. "Otto II."; Hungarian e.g. "IV. Béla"; Danish e.g. "Valdemar 4."
etc.)
Freeciv support any Unicode character, but please keep to
Latin letters. When transcribing from a non-Latin writing system,
be consistent about the system of transcription you are using.
Also, try to avoid unnecessarily technical and/or heavily accented
systems of transcription.
Subject to the above, leaders should be written in native
orthography, e.g. "Karl XII" instead of "Charles XII" for the
Swedish king.
For consistency and readability, put only one leader per line.
Feel free to provide a hint of the leader's identity or a brief
background in a comment beside any leader: This information might
be used in-game at a later stage.
Leader titles for each government type (including Despotism and
Anarchy) may be specified in a separate tag. UTF-8 is permitted in
leader titles. If the male and female titles are identical in
English, give the latter the ?female: qualifier. Use a unique title
for each government. Ruler titles should be in English, though
exceptions are made for non English titles as long as they are
understood outside of their own language regions and commonly used in
non-academic contexts. Titles from the default ruleset may not be used.
Flag
====
You should provide a unique flag for your nation. Using a flag that
is already used by another nation in the game is not acceptable.
An alternative flag does not have to be specified.
Style
=====
A nation must specify a default style. With the supplied rulesets
each national style has direct relation to equivalent city style.
The available city styles depends on the tileset used.
Practically every tileset has four city styles: "European",
"Classical" (Graeco-Roman style), "Asian" (Pagoda style) and
"Tropical" (African or Polynesian style). In Amplio tileset,
"Babylonian" and "Celtic" are also available. If the tileset used by
a client does not support a particular city style, a fallback style is
used. Selecting a style for your nation is not that strict. Just try
to keep it somewhat "realistic."
Cities
======
As for the list of city names, you should make a clear decision about
the type of the nation you add. An _ancient_ or _medieval_ nation may
list any city that it at some point controlled. However if your
nation is listed as _modern_, its city list must be restricted to
cities within the country's current borders.
The reason for this is, we don't want Freeciv to be used as a political
vehicle for discussions about borders or independence of particular
nations. Another reason is to avoid overlapping with other nations in
the game.
A city should appear in its native form, rather than Anglicized or
Graeco-Roman forms. For example, the Danish capital is "København"
rather than "Copenhagen"; and the ancient Persian capital is "Parsa"
rather than "Persepolis."
City names support any Unicode character, but please keep to
Latin letters. When transcribing from a non-Latin writing system,
be consistent about the system of transcribation you are using.
Also, try to avoid unnecessarily technical or heavily accented
systems of transcribation.
The ordering of cities should take both chronology of founding and
overall historical importance into consideration. Note that a city
earlier in the list has a higher chance of being chosen than later
cities.
Natural city names
==================
Freeciv supports "natural" geographic placements of cities.
Cities can be labeled as matching or not matching a particular
type of terrain, which will make them more (or less) likely to
show up as the "default" name. The exact format of the list
entry is
"<cityname> (<label>, <label>, ...)"
where the cityname is just the name for the city (note that it
may not contain quotes or parenthesis), and each "label" matches
(case-insensitive) a terrain type for the city (or "river"), with a
preceding ! to negate it. The terrain list is optional, of course,
so the entry can just contain the cityname if desired. A city name
labeled as matching a terrain type will match a particular map
location if that map location is on or adjacent to a tile of the named
terrain type; in the case of the "river" label (which is a special
case) only the map location itself is considered. A complex example:
"Wilmington (ocean, river, swamp, forest, !hills, !mountains, !desert)"
will cause the city of Wilmington to match ocean, river, swamp, and
forest tiles while rejecting hills, mountains, and deserts. Although
this degree of detail is probably unnecessary to achieve the desired
effect, the system is designed to degrade smoothly so it should work
just fine.
(A note on scale: it might be tempting to label London as !ocean, i.e.
not adjacent to an ocean. However, on a reasonably-sized Freeciv world
map, London will be adjacent to the ocean; labeling it !ocean will tend
to give bad results. This is a limitation of the system, and should be
taken into account when labelling cities.)
At this point, it is useful to put one city per line, only.
Finally, don't forget to leave a blank line feed in the end of your nation
ruleset.
Update information
==================
The information about the changes in the definition of a nation between
different versions of Freeciv is kept in the wiki at https://www.freeciv.org/
as part of the ruleset differences. The URLs below list the differences
between the freeciv versions from 2.3.x to the current version:
https://www.freeciv.org/wiki/How_to_update_a_ruleset_from_2.2_to_2.3
The description of a nation file can be found at:
https://www.freeciv.org/wiki/Nations