See the full ChangeLog in the source for a comprehensive list of all changes.
Download links for the latest release can be found on the download page.
Welcome to Freeciv 3.0.0
Thanks again to all our developers, who continue to work so hard.
This release is a major upgrade which with some changes can support backward compatible rulesets. However, in its capabilities are support for massive new capabilities in rulesets via actionenablers and ruleset effects. This is a major upgrade and if you develop rulesets you should learn more about it.
This release includes lots of changes relative to 2.6.x; the significant ones are outlined below. Bug fixes also included in the 2.6 line are not listed. Those who are interested in seeing the detailed changes should check the ChangeLog file.
This release is still in a beta stage, so there are some known issues (see below).
WHAT'S CHANGED SINCE 2.6
The major changes in Freeciv 3.0 are civ2civ3 being the default ruleset, addition of the alien ruleset, hex maps as the default topology on new installations, and a whole lot of extra flexibility to create custom rulesets.
As is usual for major releases, 3.0 clients cannot interoperate with pre-3.0 servers, and vice versa. Most pre-3.0 savegames can however be loaded into 3.0, and in most cases, the supplied rulesets have not changed so much as to make it difficult to complete a game started with 2.6.x's rules.
Server / General
Changes affecting players (supplied rulesets)
- civ2civ3 is now the default ruleset
- Alien ruleset, and related Alio tileset, are included in Freeciv distribution. They have been separately available already for earlier versions.
- Hex topology is the default in new installations. Old installations may have saved preferences that make them still to use iso topology.
Miscellaneous rule changes affecting all or most rulesets:
- Number of the first turn is now T1. T0 refers only to pre-game.
- Attempt to steal a tech causes incident also if it fails because of lost diplomatic battle. In earlier versions there was no incident if diplomat died already in the battle.
- First default team name is "Team 1", no longer "Team 0"
- Attack and following automatic move when occupychance is above zero no longer have double move cost
- Caravans can no longer help build Palace in supplied rulesets
- Map is revealed to a team when all members have died REVEAL_MAP_DEAD is set. Old behavior was never to reveal map for a teams with multiple members.
- Possibility to set game start year in editor has been removed. It always was a broken feature
- One now gets to know culture value of another player, if there's an embassy
- Supplied scenarios can now be played with any compatible ruleset, not only with the default one
- Editor has rudimentary support for owned extras
- There's no longer move cost for an attempt to do an illegal action when it was clear beforehand that it's illegal, i.e., when user request an action by accident
- Intelligence gained from an embassy is shared between team members
- Ransom is given for each barbarian leader when there's more than one in the same tile (but no other units to defend them). The old behavior was not to give ransom at all as they were considered to be defending each other.
- Bombarding is disallowed when target tile is known not to contain any units that would be affected
- New / Changed game settings
- There's a new fracture map generator
- New caravan_bonus_style and trade_revenue_style server settings
- Tech leakage rate can be controlled by new techleak server setting
- New multiresearch server setting can be used to enable mode where switching research target does not move bulbs to new research, but they will be there when researching that original tech again
- Global Warming and Nuclear Winter accumulation rates can be adjused by new globalwarming_percent and nuclearwinter_percent server settings
- Spaceship Travel Time can be adjusted with the new spaceship_travel_time server setting
Rule changes to specific rulesets:
- civ2civ3 ruleset
- Agents investigating cities survive the mission
- Future techs cost less as a result of ruleset now using Linear tech cost
- Culture victory values tweaked. You now need only 33% more culture points than second best player, but a minimum of 20000 points, to win by culture victory. Culture victory is not enabled by default.
- Ships with zero attack power no longer cause unhappiness, fighters with fuel over one turn do
- All of classic / multiplayer / experimental rulesets
- Fighters' defense has been doubled against bombers
- multiplayer ruleset
- Buy cost of Small Wonders doubled, like they were in freeciv-2.5. The difference to freeciv-2.5 is that Palace is handled like regular building, not a wonder
- experimental ruleset
- Marco Polo grants embassies to met players only
- civ1 / civ2 rulesets
- There is only one barbarian type that attacks both from land and sea in new games started with 3.0
- (civ2) Added Plant Nuclear Device diplomat action
- Triremes may leave coast temporarily, but will sink if not at coast on turn change
- (civ2) Airbase hides units inside from non-allied players
- Units cannot be upgraded
- (civ2) Fighters have defense bonuses against Bombers to mimic civ2 scramble mechanics
- Savepalace server setting is disabled by default
- Barbarians have been enabled. There is one barbarian type that attacks both from land and sea
- Battleships and Carriers are disbandable under some governments only
- Nukes for which upkeep is not met, explode
- Learning Electricity will give vision everywhere within ones borders when the borders setting does not give it from the beginning of the game
- Spies can Steal Maps
- Green Paratroopers cannot land on Forest or Jungle tiles. More experiences one still can.
- Airlifting heavier units requires more advanced technology
- Infantry and mounted units can expel foreign civilian units within ones borders
- Leader unit can Destroy own cities
- There's extra Hermit's Place appearing spontaneously during early game, and can give tech when entered
- There's several Goods that traderoutes can carry. Some of them are chained so that a city can export certain good only if it imports something else.
- Republic corruption increase by the distance from capital depends on total map size
- Fortress and Airbase hide units inside from non-allied players
- Buoys are visible only to players who know Radio
- City conquest is no longer guaranteed to give a tech. After University is known, techs are not got from conquest. Before that the chance is 50%
- 25% of the citizens of the conquered city are immediately converted to the nationality of the conqueror
- Combat lasts 15 rounds at max, even if neither party dies in that time
- Chance of gaining veterancy levels from combat reduced
- Caravel needs to visit some safe coast at least every third turn to get supplies, or to be lost
- Bulbs are not carried from a research to another when changing it, but are kept towards the original until one switches back to it
- Chance of Plague from trade route has been doubled
- Fortresses can be updated by building Castle as their administrative center, to claim terrain
- A Spy can Steal Gold after Banking is discovered
- Culture victory values tweaked. You now need only 33% more culture points than second best player, but a minimum of 20000 points, to win by culture victory. Culture victory is not enabled by default.
- Paradropping to a transport is made possible
- Added Mechanic unit that can fix certain other units
- british isles scenario
- Scenario now uses nationset all, so the correct nations from the isles are available and get placed, instead of completely random nations from the core nationset
Changes affecting other rulesets / modders
- Maximum number of achievements defined in a ruleset has been increased to 40
- New barbarian type LandAndSea makes it possible to define just one barbarian nation in a ruleset instead of separate Land and Sea barbarians.
- Have_Embassies effect has been split to two; new Have_Contacts provides contact with all the nations, reworked Have_Embassies provides embassies only with those nations the owner has had contact with.
- Techs can have requirements for them to become available for research. Only such requirements that are not switching during the game are supported; such as player's nation.
- What actions provide Casus Belli is now more under ruleset control, with new Casus_Belli_Caught and Casus_Belli_Success effects.
- For a number of actions, ruleset can now control success odds with new Action_Odds_Pct effect.
- Buildings can be made immune to disaster effects with a new DisasterProof flag
- Some actions can require any buildings of a given genus instead of specific building as a target by new BuildingGenus requirement type
- New requirement type MinTechs can be used to track how far player or world has proceeded in the tech tree
- New requirement type MinCalFrag can be used to change things depending on current calendar fragment, such as seasonal changes
- With a new BeachLander unit type flag some units can be made immune to slow_invasions setting.
- Extras can be defined to appear or disappear with a random chance
- Tile Resources are now extras, having all the configurability of extras
- Extras default to "buildable = TRUE" only if they have a build cause, "buildable = FALSE" otherwise
- Extras can be defined to be invisible to player until s/he has required tech
- New Unit State properties for requirement vectors to rely on
- OnDomesticTile to check if unit is within owner's borders.
- Transporting to check if the unit has cargo
- HasHomeCity to check if the unit has a homecity assigned
- OnNativeTile to check if unit is on Native Tile
- New Border_Vison effect can be used to enable vision of all tiles within ones border when borders setting is enabled
- More ruleset control over immediate unit wiping on unmet upkeep
- Some units can be given ability to escape stack death. This is controlled by CanEscape and CanKillEscaping unit type flags
- User defined ruleset flags are supported for unit classes too
- User defined ruleset flags are supported for extras
- Requirement for sea units to visit coast regularly can be created by new Coast unit type flag and setting fuel for the unit
- Techs can belong to ruleset defined tech classes
- Class can define cost percent adjustment for the techs belonging to it
- With the new Stealings_Ignore effect one can adjust the number of techs diplomats can steal from a city before it becomes impossible, and how difficult it is for Spies
- For the ruleset to better adjust to different map sizes, some things can now be controlled relative to map size
- New Output_Waste_By_Rel_Distance effect defines waste by distance relative to map size
- New tradeworldrelpct server setting tells how much map size affects trade between cities
- Cities can have limited unit slots for acting as a homecity with the new Unit_Slots effect. Ruleset defines how many slots each unit type takes
- New Attack_Bonus effect. It differs from a negative Defend_Bonus in that requirements are about attacking unit and player
- Extras can be defined to hide units inside them from non-allied players
- Ruleset can depend on boolean server settings with the new ServerSetting requirement type
- Ruleset can control how likely city conqueror is to get tech from the victim by new Conquest_Tech_Pct effect
- Added new Linear tech_cost_style
- Ruleset can define certain percentage of the inhabitants to convert to conqueror's nationality when city is conquered
- New ruleset effect Combat_Rounds can define maximum number of rounds combat lasts, even if that means that neither party dies
- Granularity of Output_Waste_By_Distance has been increased 100 fold
- Buy costs can be adjusted by new effects, especially useful in defining Wonder (Small and Great) buy cost rules
- Caravans can now be allowed to help any production, not just Great Wonders
- Effects of some of the former base flags have been made configurable, and thus the base flags have been removed. One can still reimplemtent them as user base flags
- NoStackDeath base flag has been reimplemented as extra flags, making it available for any extra type
- Ruleset can make Poison City actions to empty food stock via poison_empties_food_stock setting
- New unit flag Provoking makes unit target to autoattack even when autoattack would not otherwise be executed. Supplied rulesets use this for diplomats, transports, and GameLoss units.
- Action_Odds_Pct effect can now control also chances of Tech Stealing actions
- Extras have new generated property. It can be used to prevent map generator for generating extras that have a cause like Resource or Hut to get other properties of that cause
- Many more actions are now action enablers controlled:
- Capture Unit
- Found City, Join to City
- Explode Nuclear
- Disband Unit
- Home City
- Upgrade Unit
- Paradrop Unit
- Airlift Unit
- Conquer City
- New actions added:
- Steal Maps
- Steal Maps Escape
- Suitcase Nuke
- Suitcase Nuke Escape
- Destroy City
- Expel Unit
- Recycle Unit
- Heal Unit'
- Unhardcoded actor consuming rules of some diplomat and spy actions by splitting them to consuming and non-consuming actions
- Investigate City Spend Unit split from Investigate City
- Establish Embassy Stay split from Establish Embassy
- Incity City Escape split from Incite City
- Steal Gold Escape split from Steal Gold
- Sabotage City Escape split from Sabotage City and Targeted Sabotage City Escape split from Targeted Sabotage City
- Steal Tech Escape split from Steal Tech and Targeted Steal Tech Escape split from Targeted Steal Tech
- Sabotage Unit Escape split from Sabotage Unit
- Poison City Escape split from Poison City
- Traderoutes can be directional, in which case source and target city are not considered equal
- Traderoutes now carry ruleset defined Goods
- Goods can act as requirements
- Hardcoded Enter Marketplace action trade reduction removed. Ruleset can implement equivalent, or adjusted, penalty via Trade_Revenue_Bonus effect.
Changes affecting custom scenarios
- Scenarios can be made not to lock on to specific ruleset, but to be usable with any compatible ruleset
- Lua functions game.rulesetdir() and game.ruleset_name() can be used to get current ruleset
- New player flag ScenarioReserved can be used in a scenario to mark players that are not supposed to be picked by human player. This rule is not very hard - clients do not list such players in the beginning, but it's possibly to /take them regardless
- Individual units can be given boolean stay property that prevents AI from moving them. They defend the spot where scenario author has placed them.
- Other new lua functions
- Calendar access functions
- New lua signals
- Changed lua signals
- hut_enter gives name of the extra entered as second parameter
- Max length of map label increased
Changes affecting server operators
- Default savegame compression method is now xz
- FREECIV_PATH environment variable has been obsoleted. It no longer does anything. Use FREECIV_DATA_PATH and friends instead.
- Game can now be set to proceed in parallel to compressing savegame and writing it to disk, to minimize the wait while saving. This is controlled by a new server setting threaded_save
- Metaserver message is now set by a new server setting metamessage
- Log levels can be given by their name, and that's recommended over use of old numeric levels. Numbers may refer to different levels at different freeciv versions
- Remaining turn timeout gets saved to savegame, and restored when savegame is loaded. It used to always give full timeout after loading a savegame.
- database.lua API has been improved a bit
- Functions should raise exception instead of returning FCDB_ERROR. Most functions should not return anything.
- New user_delegate_to() can be defined to control when player delegation is allowed
- New user_take() can be defined to control when player can be taken
- Moved some formerly hardcoded login logic to database.lua; user_load() removed and new user_exists() and user_verify() to be used instead. user_save() is expected to actually save the user, not only check if it succeeded
- Deprecation warnings mode now shows also suggestions for action enabler improvements
- New major version 3 of the savegame format has been introduced. Saving always happens with that format, older savegames can still be loaded.
- Made codebase generally more robust when strings contain multibyte (international) characters
- AI's want for various things is now tracked with much higher resolution. This affects especially situations where the want is very low, and used to round to zero.
- Hard and Cheating level AI may bribe also Workers and Settlers
- Novice and Handicapped AI levels suffer penalty to production change
- There'a new tex AI module/type
- Handicapped AI suffers attack penalty in all supplied rulesets
- AI builds only limited number of units with gold upkeep, if ruleset has those
- AI is more likely to choose building up offensive instead of just defensive buildings
- AI now considers boats able to make multiple trips when estimating their lifetime value
- AI builds units just to chase enemy diplomats
- Xaw-client has been dropped
- Sdl-client has been dropped. Use newer sdl2-client instead of it
- Units wanting user action decisions have a graphical marker showing it
- New client option for the messages display to show messages also from the previous turn and not only from current turn. This should help when one was not logged to server at the end of the turn and missed messages when they first appeared
- New client event type Beginner Help for showing beginner friendly messages that experienced players can turn off from Messages settings
- Maximum number of rulesets listed at the client end increased to 63 (from 16)
- Gtk-client improvements
- 'gtk3 & gtk3.22 New Wonders List Intelligence Dialog shows all the wonders of any foreign player
- Qt-client improvements
- User configurable shortcuts for Go And Build City and Go And Join City
- New -- --shortcutreset command line option can be used to clear corrupted shortcuts
- sdl2-client improvements
- City Size and Production Text font sizes are configurable
- Ruledit can load also 2.6 rulesets in addition to 3.0 ones. It always saves in 3.0 format.
- Unit type tech requirement can be changed
- Some standard comments, mostly documentation about the ruleset item types, are written to the rulesets saved
- New tabs for handling major ruleset item types added
- Action Enablers
- Dialog for editing requirements has been added
- Support for --Fatal commandline option has been added
- Added support for new modpack type Group that can be used for sort of meta modpacks that just install set of other modpacks
- Modpack file suffix has been changed from .modpack to .mpdl
- New modpack installer that uses gtk4 gui added
- New tool to update ruleset from the format of previous freeciv version to current one
- Rearranged output to clearer sections
- Generate page about techs
Tilesets, Art, etc
- Improvements to handling of tileset and map topology compatibility
- Tileset topology is no longer considered incompatible with map topology if one is overhead one and one is isometric one
- Former client settings for Overhead and Iso tilesets are combined to one Square setting
- Tilesets with orientation units no longer show units with random orientation in dialogs. Tileset author must provide what sprite is used in those cases.
- Hex tilesets with oriented units are no longer required to provide orientation sprites for directions not present in the topology
- Tileset can tell which ruleset it is for, and the client will start the server with that ruleset. This removes the need to work around the incompatibilities of custom tilesets, such as that of ancients modpack, and default ruleset, by starting server manually.
- Tileset can now define the drawing order of the graphics layers
- Tileset has offsets for more sprite types
- Selected unit sprites
- City size number
- River outlet sprites for all directions are now mandatory
- Improved specialists graphics tags support
- Graphics for number of extra units not used by any of the supplied rulesets provided for the benefit of custom rulesets on some supplied tilesets
- Trident (and derivatives)
- Amplio2 (and derivatives)
- Number of alternative music tracks for the same style and mood increased to 25
Help / Documentation
- Added new README.scenarios document to describe scenario file format
- Updated translations: Catalan, Esperanto, Finnish, French, Polish, Russian, Traditional Chinese
- Msys2 is now the official Windows build environment. Support for msys1 has been dropped
- 64bit builds in addition to 32bit ones
- IPv6 supported
- Latest toolchain and components
- Installers for gtk3.22-, Qt-, and sdl2-clients and ruledit
- Windows 7 as minimum requirement
- Support for experimental Crosser-based Windows installers cross-compiled in linux
- gtk3.22-client is now the client built by default
- Source code is now distributed in xz compressed tarball instead of bzip2 compressed one. Gzip and zip compressed ones remain in use as well.
- Tinycthread can be used as the threading implementation freeciv uses. It's in use in official Windows builds.
- Freeciv can be built to use json based protocol between server and client. Such a build is incompatible with normal builds.
- libicu is a new requirement
- To support projects that fork freeciv, support for a project definition file containing things like metaserver URL of the project added. This obsoletes --with-modlist configure option.
- Inability to build IPv6 support is now considered an error by default. If you really want, you can still explicitly request build without IPv6 with --disable-ipv6
- C11 threads support added, and it's used as the threading model by default
See doc/README.packaging for more information.
What's changed since 3.0.0-RC2
For those who've been trying the betas, these are the changes since the last release candidate, 3.0.0-RC2:
- Documentation updates:
- Updated translations: Esperanto (31% core, 17% nations, 34% ruledit), French
Here are some of the notable outstanding issues that we already know exist as of 3.0.0:
- The Gtk3 clients' zoom function still has some glitches.
- The Gtk3 clients currently don't have animation for moving the map view.
- The SDL2 client has no UI for manipulating policies.