This is a list of main features of current S3_2 development version relative to freeciv-3.1. Last commit checked: commit cd930c378b7471ab2c53c440c84faead39157311 Author: Marko Lindqvist Date: Thu Oct 5 23:02:42 2023 +0300 General: ======== - Gtk3-client has been dropped - Concept of modpack metafiles added - Wrap setting is made separate from the topology setting - 'Threaded' AI module has been completely dropped. 'Tex' remains - "Clean Pollution" and "Clean Fallout" have been merged to one "Clean" action and activity - Actions have been split from game.ruleset to new actions.ruleset - Orders pre-defined to units are executed only after other other Turn Change activities, so they more closely resemble player doing those orders manually Non-ruleset rules: ================== - Revolen change speed is scaled to total number of players - After revolution has finished, and player can freely select new government, the actual government change now happens only at the next turn change - One does not end to war with someone they have never met, even for their ally - Longer city names supported - Score information contains "Units used" count Included rulesets: ================== - Opponent cities are not revealed just because they trade with one of your cities civ2civ3 -------- - Storm unit, randomly moving on Oceans, added Multiplayer ----------- Sandbox: (CHECK full list) -------- - In general; rules demonstrating each new ruleset engine feature added civ1: ----- civ2: ----- - Freights get doubled trade revenue bonus alien: ------ civ2civ3: --------- Custom rulesets: ================ - Added "Counters" concept. Only city counters exist in freeciv-3.2 - Maximum number of ruleset items increase: - User unit class flags -> 25 - User unit type flags -> 50 - Base "Max_Rates" effect is now mandatory - Wrap requirement is made separate from the topology requirement - Nuke radius is configurable by a new Nuke_Blast_Radius_1_sq effect - New improvement genus "Convert", used for things like Coinage - New CityStatus requirement types - "Starved" - "Disorder" / "Celebration" - "Transferred" - New achievement type "Killer" - New actions - "Wipe Units" - "Bombard Lethal" - "Spy Escape" - "Transport Load" - "Teleport" - "Teleport Conquer" - New Small Wonder Visibility value "Embassy" - Unit_No_Lose_Pop can depend on - Specific action - Specific unit - It's possible to make attacks to destroy size 1 city - Unhardcoded NoAggressive distance with new no_aggr_near_city extra property - Fake generalized actions - Transport Load (3) - Transport Board (3) - Transport Embark (4) - Attack (2) - Suicide Attack (2) - Bombard Lethal (2) - New TerrainAlter requirement types "CanBase" and "CanPlace" - New CityTile requirement type "Worked" - New Unit type flag "RandomMovement" - New "Border_Strength_Pct" effect - New "Action_Resist_Pct" effect to make it possible for target properties to affect action success probability - min_tech_cost can now be defined independently from base_tech_cost - New "Output_Bonus_Absolute" effect - Support for Self-Provided Goods added - New requirement range "Tile", in many cases replacing "Local" - There can be "Tile" range building requirements for a city with the building in the tile - Resources can be given their relative frequencies on each terrain - New unit role "BarbarianBoatTech" - New latitude requirement types "MinLatitude" and "MaxLatitude" - 'alltemperate' and 'singlepole' obsoleted by latitude bounds - Player is now allowed to build units in a city that has its impr_req building even if player would be unable to build such a building - User effects can instruct the way AI should evaluate their worth - User is notified about new governments enabled by a building - Hardcoded limitation that cause "Hut" extras cannot appear on frozen terrains is gone - New "SharedTiles" clause type added - Units now have full requirement vector - New requirement type "OriginalOwner" (currently only for "City" range) - New "Tech_Parasite_Pct_Max" effect similar to "Tech_Parasite" but scaling to amount of players - "Upkeep_Factor" effect now supports Unit Type, and derived, requirements - Homeless units can have gold upkeep - "Trade_Revenue_Bonus" effect now considers unit type requirements - Diplrel requirement type snow supports values "Has team embassy" and "Hosts team embassy" - New ruleset setting "ubuilder_nationality" to tell if a pop-cost unit will always have nationality of its builder, or that of most citizens that went to building it - "Growth_Food" is split, so that when city shrinks, new "Shrink_Food" effect is used instead - New "Activity_Time" effect to override time activity would take by old less flexible rules - New waste effects that consider only what would otherwise be the surplus of the city - "Surplus_Waste_Pct" - "Surplus_Waste_Pct_By_Rel_Distance" - New "BuildingFlag" requirement type - Add user flags support for Buildings - Casus Belli now supported for successful Surgical Strike actions - Increased hard limit of city trade routes to 20 - New EnterBorders terrain flag type - Terrain clean times are now defined separately for each extra - Second alt (fallback) graphics tag support added for units - Second alt (fallback) graphics tag support added for removal activity icon - Second alt (fallback) graphics tag support added for buildings - "Attack_Bonus" effect can now have requirements related to the unit instance (formerly only unit type level was considered) - Units that can always defend when transported, without leaving the transport - Resource identifiers are no longer mandatory. They are needed for backward compatibility only, e.g., for older savegames - All extras can now be resources, i.e., there's no longer separate maximum number of resources - Added support for extras that impose ZoC themselves (even if empty) - New "PlayerFlag" requirement type Custom scenarios: ================ - Support for scenario player autoselect (/autotake) added Lua scripting: -------------- - fcdb context improvements: - lua_io module is available - New "conn_established" signal - New auth.get_cmdlevel() and auth.set_cmdlevel() methods - Support for database capstr - Added "game_start" signal, and concept of game's dbid - New Player:lose() method - Directions now have a 'cardinal' property - Research information API added - 'unit_lost' signals reports loss because of lack of shield upkeep by reason 'upkeep' - Player:give_bulbs() can be targeted to a certain tech in multiresearch mode - Infrapoints API added: - Player:change_infrapoints() - Player:infrapoints() - Added City:transfer() method - Added effects.tile_bonus() method Server operation: ================= - New "ailevel" server setting - Admin can lock specific settings with new 'lock' and 'unlock' commands - New server setting to control number of cities in the Top Cities report - When authentication via sqlite database enabled, the database gets automatically created if it doesn't exist Settings: --------- - Saving bzip2 compressed savegames is no longer possible - Zstd is now the default savegame compression method - New aitype setting AI: === Clients: ======== - Experimental sdl3-client added - SDL3_mixer support added - New "silent_when_not_in_focus" client option - Support for city style specific citizen sprites added - Tile info tells latitude - Framework for user confirmation of risky actions - Support for activity specific main unit sprites - Audio tag "e_game_quit" renamed as "e_client_quit" - New "send_desired_settings" client option - Support using scaled up svg flags on diplodlg Qt is currently the only gui to implement this - New "followtag_override" client option - Improved how the default tileset and topology gets selected - New "leave_game" sound effect tag gtk: ---- - Audio is paused when the client loses focus - Added "About Current Musicset" help menu entry qt: --- - Paradrop no longer shares menu entry and keyboard key with Clean Pollution - Provide longer version of the Wonders of the World report - Nations dialog panel options are saved - Added "About Current Musicset" help menu entry sdl2: ----- - Generic languages specific fonts support in themes - Initial screen resolution is adjusted by the base font size - Font size client option added Tools: ====== Ruledit: -------- - Standard comments are saved also for individual entries within sections - Adding and removing buildings supported in non-experimental builds too - effect definitions can contain a comment persistent over ruleset load/save cycles Modpack Installers: ------------------- - Multiple files_? sections supported, each with their own baseURL Art === - Extra specific removal action icon supported for Pillage - Musicspec now supports name, version, summary and description fields - sdl2 theme icon "unkeep_coin" renamed as "upkeep_coin" cimpletoon: ----------- - Added Storm unit graphics Build & Portability: ==================== - Meson based build is no longer considered experimental - For Cygwin, it's clearly the recommended build system - Official Windows Installers are built with meson - SDL_mixer version 2.0.6 is now minimum requirement for audio support - Added support for cross-compiling installers from Windows from Linux using Meson - Meson based build now supports project definition files - Project definition files can define project homepage - Meson based build now supports emscripten builds - Msys2 snapshot now from 230620 - Portable (non installer) versions of Windows (msys2) builds made - Flatpaks can be built outside srcdir, and it's the recommended method - Flatpaks are now built with meson - New Qt Modpack Installer flatpak - Meson based build single boolean configure option 'ruledit' replaced by 'tools' array, and made build of also other tools configurable Other: ======