Freeciv

Barbarians are tribes that raid civilized nations from time to time. Around borders of populated lands uprisings happen, and hordes of armed units seeking booty and destruction emerge, each party led by a Barbarian Leader. If you expand carelessly wider and wider paying no value to building your army, then your cities and workers are easy prey for them: cities will be conquered, and workers will be killed or (if the ruleset allows) captured. From the cities (that will be kept in a savage manner without building any improvements[1]) new hordes will appear; also, it's not impossible to meet barbarians exploring a tribal village[2], they may either kill your explorer in a moment or surround and may attack the next turn. In fact, for any developed military barbarians are not a great threat - they are not extremely abundant even with "Hordes" setting, and they are so stupid that you possible can retake a city even with weaker units when they just went out. Moreover, barbarian units that can not see around anybody to attack tend to spontaneously disband (alas, Barbarian Leaders that exist mostly for beating out of them bonus gold do it most often).

Typically, in a game you will face two types of barbarians: land ones appearing on a land (not too near or too far from a city, rarely around civilizations with too few cities or too high civil war risk, "Barbarians" nation in standard nation set), and sea barbarians (appear in a boat near coasts, with mostly the same attraction to populated lands, nation "Pirates"); since FC3.0 there can be single land and sea barbarian nation. There are roles of unit types that can appear as barbarians; some of them are accessible to barbarians completely disregarding of knowing any technologies ("Barbarian", "BarbarianSea", "BarbarianBoat", "BarbarianLeader"), and some will apear since any player discovers the required tech ("BarbarianTech", "BarbarianSeaTech"). You can define by a game setting how many barbarians will likely appear in the game: no at all, only from huts, or from few to more by uprisings (game.server.barbariansrate variable affect number of uprisings, number of summoned units and press on smaller civilizations). If barbarians do uprise, you can also specify the minimal turn they do (not necessarily they first appear that turn, but earlier they can come only from huts).

Animals are considered yet another type of barbarians that are not spawned in uprisings but are placed by certain terrains at game start. They will attack units in the open but not in cities, and each animal type can go only by its home terrains. Number of animals is defined in a game setting per 1000 of all tiles; this setting does nothing if animals are not enabled in the ruleset (see below).

In Freeciv barbarians are represented by special AI players that have some special rules (e.g. they do not enter huts and can not build units without "BarbarianBuild" or "BarbarianBuildTech" role). Nations suitable for selecting as barbarians have in their ruleset description "barbarian_type" parameter other than "None" ("Land", "Sea", "Animal" or "LandAndSea"). Also, the nation description usually has the nation group "Barbarian" and is_playable = FALSE. You have to define barbarians for land and for sea in your nation set even if your ruleset explicitly never uses them. Player slot number reserved for barbarians is 12 out of total 512 (v.3.0), though actually you can have at most one barbarian player of each type in a game (with "LandAndSea" considered as spanning two types). If such a player is killed, the nation is revived with a new leader and 100 gold once the barbarians are needed again.

Enabling animals[]

To use the new wild animals feature available starting with 2.6 you need a customized ruleset. See Editing rulesets for more info. Here's a write-up of what you have to do.

1. You need the animal graphics. I [Dino the Dinosore] used amplio ones, see this link. This file goes in "freeciv_data_dir/amplio2/animals.png".

2. Need a new file "freeciv_data_dir/amplio2/animals.spec" which refers to that "animals.png" file. You can download the "animals.spec" file from the same link.

3. That file needs to be referenced by the "freeciv_data_dir/amplio2.tilespec" file (or tilespec of whatever tileset you use), which needs lines

files =

"amplio2/animals.spec",
You can download the "amplio2.tilespec" file from the same link.

In the next steps, "dino" is the name of my custom ruleset, substitute it with the name of yours.

4. Edit "freeciv_data_dir/dino/terrain.ruleset" and add the terrain(s) for each animal. For example, under [terrain_deep_ocean] edit the line

animal               = "Kraken"
You can have only one animal per terrain type, but can have the same animal on multiple terrains.

5. Edit "freeciv_data_dir/dino/units.ruleset" to add the animal units. The Kraken example:

[unit_animal_kraken]
name          = _("Kraken")
class         = "Sea"
tech_req      = "None"
obsolete_by   = "None"
graphic       = "u.kraken"
graphic_alt   = "None"
sound_move    = "m_generic"
sound_move_alt = "m_generic"
sound_fight   = "f_generic"
sound_fight_alt = "f_generic"
build_cost    = 10
pop_cost      = 0
attack        = 2
defense       = 1
hitpoints     = 10
firepower     = 1
move_rate     = 2
vision_radius_sq = 2
transport_cap = 0
fuel          = 0
uk_happy      = 0
uk_shield     = 1
uk_food       = 0
uk_gold       = 1
flags         = "NoBuild", "Cant_Fortify", "Unbribable", "IgZOC"
roles         = ""
helptext      = _("\
Watch out for wild animals.\
"), _("\
Krakens live in Deep Oceans, and can attack adjacent tiles.\
")

6. To stop the animals from quickly disappearing, edit "freeci_data_dir/dino/effects.ruleset". The section [effect_barb_disappear] needs a line added so it looks like this

[effect_barb_disappear]
type    = "Retire_Pct"
value   = 10
reqs    ={ "type", "name", "range", "present"
"NationGroup", "Barbarian", "Player", TRUE
"Nation", "Animal Kingdom", "Player", FALSE
"Age", "5", "Local", TRUE
"CityTile", "Center", "Local", FALSE
}

7. Edit your "freeciv_data_dir/dino/README.dino"

8. Make sure your nationlist "freeciv_data_dir/dino/nations.ruleset" contains animals: there should be a line

*include "nation/animals.ruleset"

Also, since v.2.6, in the [ruledit] section "animal kingdom" should be added to the embedded_nations comma-separated list.

Optional stuff:

9. If you would like to have killing an animal give a bonus, edit your "freeciv_data_dir/dino/script.lua" and add a unit_lost_callback(). See this link (note: you can get the killer better using action_started_unit_unit() where it is enabled).

10. Since the start of the game is now more dangerous, I like to add a strong defender to the start units. In file "..share/freeciv/dino/game.ruleset"

set =

{ "name", "value", "lock"
"startunits", "cwxD", FALSE

...

11. File "freeciv_data_dir/dino/game.ruleset" can also change the default # of animals, which is usually set to 20. For example, to change it to 30, use

set =  

...  

"animals", 30, FALSE

See also[]

Notes[]

  1. Barbarians in the conquered cities can and will build units, that are of roles either "BarbarianBuild" (accessible for them even when nobody actually knows how to build them, but if the unit requires some absent improvements, not accessible) or "BarbarianBuildTech" (accessible when the barbarians, not anybody, know required tech). They can steal techs (in most rulesets, only by conquest) or even develop them.
  2. You can meet a friendly unit in a village. The type of the unit is often the same as barbarians can have but in fact it is controlled by different flags ("Hut", "HutTech", the latter for FC2.5 refers to the explorer's advance), e.g. Chariot in civ2 is "Hut" but not "Barbarian". In known Freeciv versions, the unit type is not random.