See the full ChangeLog in the source for a comprehensive list of all changes.
Download links for older releases can be found in the download archive.
Welcome to Freeciv 2.5.0 Edit
Thanks again to all our developers, who continue to work so hard.
This release includes lots of changes relative to 2.4.x; the significant ones are outlined below. Bug fixes also included in the 2.4 line are not listed. Those who are interested in seeing the detailed changes should check the ChangeLog file, linked above.
What's changed since 2.4 Edit
The main changes in Freeciv 2.5 are the inclusion of the 'civ2civ3' ruleset, a new Qt client, and much more flexibility for those creating their own rulesets. The AI has also had some improvements.
As is usual for major releases, 2.5 clients cannot interoperate with pre-2.5 servers, and vice versa. Pre-2.5 savegames can however be loaded into 2.5, and in most cases, the supplied rulesets have not changed so much as to make it difficult to complete a game started with 2.4.x's rules.
Server / General Edit
Changes affecting players (supplied rulesets) Edit
A new ruleset civ2civ3 is included, an evolution of the civ2_3 ruleset by David Fernandez (bardo). This has some elements from Civ3, and is also designed to reduce the gap between inexperienced and optimal play, and for the AI to play well. It is suitable for single-player and multiplayer games. See doc/README.ruleset_civ2civ3 for more information.
- This version of the ruleset is similar to previous versions available as modpacks, but does have some changes, including taking advantage of new facilities in the game engine. civ2civ3 or civ2_3 games started in previous versions of Freeciv cannot be continued with this version.
- civ2civ3 is planned to become the default ruleset in a future release. The current default ruleset has been renamed to 'classic' and will continue to be available. From now on the name 'default' will refer to whatever ruleset the running version of Freeciv defaults to.
Rules changes affecting all or most rulesets:
- (not civ1/civ2) City tiles are no longer an exception to the rule that the 'Bridge Building' technology is required to build roads over rivers. Cities on river tiles no longer automatically get roads until the technology is acquired.
- (not civ2/multiplayer) Cities suffer random disasters such as loss of population or buildings. A new server setting 'disasters' controls their frequency, or disables them entirely.
- (not civ1/civ2) 'Barracks' buildings and 'Sun Tzu's War Academy' are now cumulative: if you have both, new units are created at the Hardened veteran level.
- Bombarder units (such as bombers and helicopters in civ2civ3) no longer gain veterancy from bombardment.
- The maximum number of trade routes per city is now ruleset-dependent. In the classic and (of as RC1) experimental rulesets, the limit on trade routes now depends on what technology you have. You start with 2 per city, and can add one more with each of 'Magnetism' and 'The Corporation'.
- In rulesets with nationality tracking (classic, experimental, civ2civ3):
- Citizens now gradually convert to the nationality of the city owner over time, at a ruleset-defined rate.
- Units now have their own nationality, which remains the same even if they are bribed or captured. Settler units add citizens of their own nationality when founding or adding to cities.
- Changes to what happens if research points go negative (due to transfer costs or tech upkeep):
- A new server setting 'techlossforgiveness' controls whether technologies can be lost at all, and if so, how much debt triggers tech loss. Previously this was controlled by the ruleset; of the supplied rulesets, only the experimental ruleset had this behavior.
- When technology is lost, half the bulb cost of the lost technology is now added on to the current bulb balance (this may not be sufficient to make it positive). The proportion is controlled by the new server setting 'techlossrestore'. The old behavior, where any bulb debt was completely cancelled, can be restored by setting this to -1.
- A tile with both a river and a fortress now has a lower defensive bonus, as the bonuses are now added rather than multiplied.
- When a freshwater terrain (lake) and an oceanic terrain type become adjacent due to terrain change, the ocean now floods the whole lake. In rulesets with lakes, transforming a swamp bordering a lake now results in lake, not ocean.
- In games where 'startunits' includes a king unit, such units are also given to new players created as a result of civil war.
Rule changes to specific rulesets:
- Tracking of citizen nationality is now enabled. See the help for what this means.
- New road type 'Maglev', requiring 'Superconductors' and giving unlimited movement to 'Land' units. Regular railroads now give fast but limited movement (each tile takes 1/9 of a movement point).
- Citizens of your enemies in your own cities cause unhappiness, with the amount depending on your government type.
- Partisan appearance now depends on how many of the conquered city's citizens had the nationality of the defeated player, rather than the original city owner.
- Paratroopers can now paradrop directly to a transport in the ocean.
- (as of RC1) Caravans are no longer obsoleted by Freight, since they can travel on more terrain.
- Most technologies now have 'root_req' requirements, preventing acquisition of the technology by any means (such as trading) unless some key earlier technology is known.
- By default, it is possible to sustain a small research point debt without losing a technology. However, if a technology is lost, the debt may not be completely cancelled.
- civ1 and civ2 (to improve their fidelity):
- Maximum number of trade routes per city reduced from 4 to 3.
- When a free tech is granted, it's now chosen randomly, rather than being whatever the player was researching.
New game options:
- 'killstack', which controls whether all units on a tile die simultaneously, is now a server setting (previously it was controlled by the ruleset).
- 'killcitizen' is now a boolean setting rather than a bitfield; exactly which units can reduce city population is now controlled by the ruleset.
- Two new values for the 'diplomacy' setting: "NOAI" which allows diplomacy except between AIs, and "NOMIXED" which only prevents human/AI diplomacy.
- A new setting 'startcity' causes players to start with their first city already founded.
- (as of beta2) New map generation features ported from warserver: a 'fair' island map generator ('generator=fair'), which creates an identical island for each player or team, and 'teamplacement', allowing control of whether team-mates start near each other on the map.
- Added 16 new playable nations to standard rulesets, bringing the total to 555.
- The set of 50 'core' nations introduced in 2.4 are now by default the only nations that will appear in games. To play with the full ('extended') set of nations (which might not be translated into your language), change the nation set in the 'pick nation' dialog, or with the server 'nationset' option.
- The pirate and barbarian flags be swapped, so that pirates now have the Jolly Roger, as they should.
- In the classic and civ2civ3 rulesets, maps are now generated with scenic tile labels on a few random tiles. These have no effect on gameplay.
- Minor changes to transport units:
- Units may now load onto and unload from transports that are themselves inside another transport.
- While there is still no way to choose which transport is used if there are several on a tile, cargo units will now prefer the transport with more move points.
- Goto / pathfinding:
- You can now set waypoints for groups of units starting on different tiles.
- Improved route planning across 'pontoon bridges' (units bridging water).
- Multiple units working on overlapping connect-with-road or similar projects no longer interrupt each other's work.
Changes affecting other rulesets / modders Edit
Ruleset authors can control much more of the game behavior. Existing rulesets need changes to work with 2.5; see How to update a ruleset from 2.4 to 2.5 for a minimal recipe, and comments in supplied ruleset files for documentation and usage examples of new features.
- Rulesets can now define new types of paths, replacing hard-coded road, railroad, and river behavior. Up to 8 distinct road and/or river types can be defined. Many previously hardcoded behaviors are now configurable.
- Granularity of movement points ('move_fragments') is now specified by the ruleset, rather than being hardcoded at 1/3. Move rate of 'IgTer' units is also configurable.
- The 'Relaxed' orthogonal move mode for rivers (now also available for roads) no longer gives a movement bonus for diagonal moves unless the path actually links the two tiles.
- Rulesets can allow units to paradrop directly onto transport units.
- Rulesets have more control over when units can enter and leave 'unreachable' transports (usually air transports). By default, cargo of such transports can no longer embark/disembark unless in a city or a base native to the transport, but exceptions can be made for individual units.
- The game now enforces that no transport unit may contain a unit which could transport it, and that units can be nested no more than six deep, even if the ruleset would allow these situations. This may simplify defining complex transport relations in rulesets without defining many unit classes.
(Some versions of 2.4.x had attempts to enforce this, but they merely caused error messages rather than preventing the situation from occurring.)
- Terrain and alterations
- More flexible bases:
- Rulesets can now define bases which are allowed on city tiles, or automatically added to cities.
- Ability and time to build bases can now be terrain-dependent.
- Owned bases can now display their owner's flag.
- Rulesets can now use effects to change when any of the built-in terrain alterations and transformations can be performed by units (in 2.4, it was only possible to affect irrigation). The full set is:
- Irrig_Possible: is building irrigation possible?
- Mining_Possible: is building a mine possible?
- Irrig_TF_Possible: is changing terrain type with "irrigation" action possible?
- Mining_TF_Possible: is changing terrain type with "mine" action possible?
- Transform_Possible: is "transform" action possible?
- Terrains can now be marked with the 'NotGenerated' flag, so that the map generator will not use them (for use in scenarios, etc).
- More flexible bases:
- The unit 'convert' action is no longer instant; it takes a ruleset-defined time (at least one turn) for suitable units to convert into another type.
- The 'Veteran_Build' effect (used for 'Barracks', etc) can now cause units to gain multiple veteran levels.
- Rulesets are now permitted to contain no city-founding units.
- Added a general framework for combat value modification based on unit type. The old hardcoded 'AEGIS', 'AirUnit', 'Horse', 'Pikemen', 'Helicopter', and 'Fighter' flags are gone; it's now possible to add similar bonuses with different numeric values, and more of them.
- Whether conquering units reduce city population is now defined by the ruleset, per unit class ('KillCitizen').
- Units defending while on non-native terrain (that is, ships in harbor) can have a defense penalty applied in this situation, via the unit class flag 'non_native_def_pct'. (This is distinct from the existing 'BadCityDefender' unit flag, which affects firepower.)
- Sea units' ability to attack neighboring land is generalized as ability to attack non-native terrain, and controllable at unit class and type level ('AttackNonNative' and 'Only_Native_Attack' respectively).
- Sea units' ability to attack from harbor is generalized as unit class ability to attack from city or transport in non-native terrain ('AttFromNonNative').
- Cities can suffer ruleset-defined random disasters, whose effects can be mediated by the requirements system, and whose effects can be implemented by Lua script.
- The limit on trade routes per city can now vary during gameplay (up to a maximum of 5). Bonuses, ability to establish based on whether route is international and/or intercontinental, and what happens if a trade route becomes invalid are all now ruleset configurable.
- As well as the changes to nationality listed in the gameplay section:
- Rulesets can use the "Nationality" requirement in effects to test whether cities contain citizens of a specific nationality.
- Rulesets can control whether and how much enemy citizens cause unhappiness with the "Enemy_Citizen_Unhappy_Pct" effect.
- Rulesets can choose whether partisan appearance depends on the original city owner or the current nationality of the citizens, and if so what proportion is required for partisans.
- The 'Inspire_Partisans' effect can now depend on properties of a specific city, not just player-wide requirements.
- Specialists can now define a fallback graphics tag, so that rulesets with custom specialists can be played without tileset support.
- The image to display for a city (City_Image) is now calculated on the server side, allowing ruleset authors to use requirements for it that the client may not have reliable access to.
- The way city size is converted into a (cosmetic) population number is now more configurable.
- New effect 'Not_Tech_Source' prevents players from having technology stolen from them.
- When a player gets a free technology, the method used to choose it is defined in the ruleset in 'free_tech_method'. Instead of the previous behavior of giving the player their currently researched technology, the ruleset can now specify the cheapest or a random technology.
- New tech_upkeep_style 'Cities', where tech upkeep scales with number of cities.
- A player will no longer lose a technology (due to tech upkeep, etc) if it's a root_req for another technology the player knows.
- The ruleset can request that technology help be popped up in the client when a new technology is acquired, via 'popup_tech_help'. (This can be overridden by the user.)
- Nations can have an associated color; if the server setting 'plrcolormode' is set to the new value 'NATION_ORDER', players' colors will depend on their nation.
- Rulesets can now define playable subsets of their nations ('nation sets'), one of which can be picked by players during game setup. This could be used for instance to define a number of different balanced sets of nations which have unique traits, perhaps tailored to different numbers of players.
- The list of supplied nations has been split out to a new 'nationlist.ruleset', so that rulesets can use these nations while changing other aspects of 'nations.ruleset'. nationlist.ruleset has its own lists of governments, terrains, etc, so that it can be used by rulesets that are slightly different without errors.
- Effects and requirements
- 'Resource' added as requirement to effects system.
- City effects can now depend on the presence of terrain with certain properties within the city's workable radius, by specifying 'Terrain', 'Resource', etc with 'City' range.
- City effects can now place requirements on the city's own tile.
- Expanded the ability to group ruleset objects into sets for requirement purposes with custom flags:
- Terrains and technologies now have custom flags, as well as units, enabling limited disjunctive ("or") requirement definitions for these types.
- Requirements can test these flags.
- User flags now have ruleset-defined help text.
- The maximum number of user flags for unit types has increased from 4 to 16 (as these are used for the combat bonuses framework).
- For boolean effects, negative values are now evaluated as 'false', to ease ruleset development.
- Lua scripting
- Updated scripting engine to Lua 5.2.
- Scripts can now set tile labels.
- Scripts can now run on a new 'map_generated' signal.
- It's now possible to have multiple centers of government for the purposes of calculating waste and corruption, through the 'Gov_Center' effect. The distance to the nearest determines waste.
- When a 'GameLoss' unit is killed, instead of the player's assets (units, cities, etc) just disappearing, the ruleset can cause some of them to be transferred to the conqueror, barbarians, and/or a new AI player ('gameloss_style').
- Rulesets can specify that start positions must be surrounded by a minimum area whose terrain is native to starting units ('min_start_native_area').
- Rulesets can completely disable civil war ('civil_war_enabled').
- Technologies with the 'Claim_Ocean' flag lift the normal restrictions on borders claiming ocean tiles.
- The ruleset can define a 'preferred_soundset' which will be suggested to clients. (Only Gtk2/3 clients can ask the user; with other clients the user has to have enabled auto-accept for this to take effect.)
Tileset authors have a few new facilities. Existing tilesets need changes to work with 2.5 at all; see How to update a tileset from 2.4 to 2.5 for a minimal recipe.
- When a unit is building a base or road, tilesets can now display an icon specific to that base/road.
- The layer that darkness is drawn at is now configurable ('darkness_layer').
- Tilesets can now supply icons for unit upkeep greater than 2 to be displayed in the city dialog.
- In the supplied tilesets, government and specialist icons have been split to separate files, so custom tilesets can replace them while continuing to use other graphics from the standard small.spec.
Scenario creators have a couple of new features available. (Scenarios created with previous versions should continue to work in 2.5.)
- Most of the supplied rulesets now include an 'Inaccessible' terrain type, for use by scenario authors to shape the map area. See the France scenario for an example of its use.
- Scenarios can now restrict the set of available nations (to those with start positions).
Changes affecting server operators Edit
- Failure to load a ruleset no longer causes the server to quit; it now reverts to the previously loaded ruleset, or failing that the default ruleset.
- On Windows, the server no longer sets the socket option SO_REUSEADDR on its listening socket. This may fix some issues with clients connecting to the wrong server.
- The default database backend for authentication has changed from MySQL to SQLite.
- There's no longer support for attempting to save games in formats compatible with previous major releases of Freeciv. The 'saveversion' server option has been removed.
There have been some improvements to the standard AI's behavior:
- Autosettlers are smarter about spotting danger:
- Sea and air units are now considered threats, not just land units.
- Military units which can't attack are no longer considered threats.
- Cities needing defense are less prone to building walls before units.
- The AI now considers non-land units that can conquer cities (such as Helicopters) a threat to continents it controls.
- The AI should more correctly account for travel time when assessing danger to cities from enemy units; previously it treated them as its own, which could be wrong for ZoC, restrictinfra etc.
- (as of RC1) The city the AI has nominated to build wonders is now permitted to build defensive units instead if necessary.
- (as of RC1) The AI now treats players it has never met as potentially hostile; this should make it harder for human players to sneak forces into place before first diplomatic contact.
- Autosettlers are smarter about spotting danger:
- Unit handling
- Some fixes to AI's handling of boats as transports.
- Terrain improvement
- The AI and autosettlers' relative weightings have been tweaked to give slightly better behavior with typical rulesets. In particular, production is now valued less compared to other outputs.
- The AI and autosettlers can now decide to build bases, if they provide any direct output bonus to a nearby city, or enable another base which does so. (Bases are still not built for purely strategic purposes.)
- When the AI is on a war footing, it now prefers diverting taxes to science rather than luxury.
- The AI now considers keeping units in cities for their martial law effect, although it will not yet build units specially for this.
- The AI values coinage less, to balance it compared to gold-producing buildings.
- The AI may now create trade routes between continents.
- The AI now considers more combat bonuses when deciding what technology to research. For instance, it may now work harder towards AEGIS Cruiser when defending against air units.
- The AI no longer chases technologies to gain units that are already obsolete.
- The AI no longer remembers its past desire for long-obsolete technologies indefinitely.
- Ruleset tolerance
- In rulesets which support ocean cities, the AI now considers building them.
- The AI no longer builds sea-only worker units if the ruleset has them. This is a temporary solution to a previous issue where AI would build only sea worker units when they became available, and not land ones.
AI behavior is also now somewhat more configurable by rulesets:
- The new traits framework allows AI behavior to be parameterized (current traits are Expansionist/Trader/Aggressive). Traits can be set in rulesets (globally or for specific nations), or by Lua script.
- The 'Cheating' level AI no longer intrinsically ignores tax rate limitations. This is instead left up to the ruleset. The supplied rulesets give cheating AIs this bonus, so there is no functional change.
The following changes are only relevant to AI developers:
- 'Default' AI logic, which was previously tied to the 'classic' AI type, can now be used selectively by custom AI modules, each with their own instance data.
- The default AI type can be chosen at configure time.
- Some progress has been made on the 'threaded' AI variant. It is now functional, but does not yet offer much advantage over the 'classic' AI. The only difference is that cities can make specific requests of worker units. The 'threaded' AI is not included in standard builds.
- (as of beta2) The Qt client is now substantially complete, and a Windows build is available. A Qt version of the modpack installer is also available.
- The city map size in the city dialog now adapts to the ruleset. This means that the city dialog in the SDL client is no longer unusably small with the classic and similar rulesets.
- The client now only lists scenarios for "Start Scenario Game"; previously it could include ordinary save files that happened to be on the scenario path.
- Client options to control whether tileset and soundset suggestions made by the ruleset are automatically accepted. This allows clients other than the Gtk clients to make use of these suggestions.
- (Gtk) The pregame nation selection dialog has been rewritten, fixing many small bugs.
- (Gtk) The client can now optionally pop up help for a new technology when it's acquired.
Modpack installer Edit
- The modpack installer now keeps track of versions of packages it has previously installed. (It does not track changes made manually.)
- A command-line tool for downloading modpacks, freeciv-mp-cli, has been created for use on headless servers.
- The modpack installer can be built into multiple GUI flavored executables simultaneously. As a result, the executables have been renamed.
- Modpacks can now have descriptions and a 'subtype' field (e.g. to distinguish iso/hex tilesets) .
Tilesets / Art Edit
- The activity icons shown near units building roads and bases in Cimpletoon, Amplio2, and Trident are now small versions of the extras themselves.
- (as of RC2) The Trident tileset has been updated for various recently added game elements, including lake and maglev.
- Improve colors for global warming / nuclear winter progress indicators.
- The icons for entertainers, scientists, and tax collectors now have both male and female versions.
- Made a few specialist icons available for custom rulesets (worker, farmer, merchant) for use by modpacks. These are not used in the supplied rulesets.
- The Cimpletoon and Amplio2 (as of RC1) and Trident (as of RC2) tilesets have 'outpost' and 'airstrip' graphics for use by modpacks.
- Updated French, Polish, Catalan, Russian, Korean, Scottish Gaelic, British English, traditional Chinese, Spanish, German, Japanese, Finnish, and Irish localizations.
- A real thread implementation is now a hard requirement.
- The SDL client now requires SDL_gfx and SDL_ttf libraries. Copies are no longer included with the Freeciv source.
- Clients other than the SDL client can now be built against SDL2_mixer.
- (as of beta2) The build is now Clang-clean (with 3.3, 3.4, and 3.5).
See doc/README.packaging for more information.
What's changed since 2.5.0-RC2 Edit
For those who've been trying the betas, these are the changes since the last release candidate, 2.5.0-RC2:
- Added graphics for civ2civ3's Internet wonder.
- Updated localizations: Spanish (98.6% core, 97.2% nations), Japanese (93% core, 94% nations), Irish (46% core, 59% nations).
- Tweak network protocol developer documentation.