This is a list of main features of current master development version relative to freeciv-3.0. Last commit checked: commit 11cbde04b425c7d8f7b64ef3365b21039522102b Author: Marko Lindqvist Date: Sat May 2 16:47:35 2020 +0300 General: ======== - Gtk2-client has been dropped - New log level "warning". Numeric log levels have been altered as a result - Sqlite based player authentication is enabled by default - Support for loading savegames from versions older than 2.3 dropped - Gtk3x-client, development version of future gtk4-client, added - Max number of regular players increased to 500 - Builds with json protocol enabled can now work with native protocol too - Lua has been updated to lua-5.4 (beta) - Luasql has been updated to 2.5.0 level - Concept of infrapoints added. Under ruleset control, they can be an alternative or complementary way to worker unit usage to building extras - Rally points can be set to cities for the built units immediately head to a specific location. At the moment supported in Qt-client only Non-ruleset rules: ================== - Diplomat investigating a city now get the information whether a tech has ever been stolen from the city, by anyone - Irrigation activity has been split to extra placing Irrigation and terrain changing Cultivation activities. Similarly Mine activity has been split to Mine and Plant activities. Included rulesets: ================== - Experimental ruleset has been dropped Multiplayer ----------- - Ruleset has been repurposed for longturn style play - Movement rates of the units have been doubled Sandbox: (CHECK full list) -------- - In general; rules demonstrating each new ruleset engine feature added civ1: ----- - Alliances are disabled - Embark and disembark move costs are closer to real civ1 civ2: ----- - Alliances are disabled - Embark and disembark move costs are closer to real civ2 alien: ------ - Burrowing units do not protect other units even when 'unreachableprotects' server setting is enabled Custom rulesets: ================ - Maximum number of ruleset defined techs has been increased to 250 - Maximum number of unit types increased to 250 - Rulesets and scenarios can have luadata.txt specfile with freely chosen format that ruleset's lua script can use as it sees fit - There's a new vision layer "Subsurface", equivalent to "Stealth" - Bridge requirements, previously property of Roads only, is now property of all extras. Each extra have their own list of other extras that they need bridging over. Thus obsoleted "RequiresBridge" and "PreventsOtherRoads" flags have been removed - Multipliers can have requirement vectors that one must satisfy in order to be able to have the policy in non-default value - Some effects have been replaced by action enablers - "Transform_Possible" -> "Transform Terrain" - "Irrig_TF_Possible" -> "Cultivate" - "Mining_TF_Possible" -> "Plant" - "Mining_Possible" -> "Build Mine" - "Irrig_Possible" -> "Build Irrigation" - Other actions now controlled by action enablers - Pillaging - Fortifying - Road building "Road" - Convert Unit - Base building - New effects - "Building_Build_Cost_Pct" to control how much building a building costs - "Unit_Build_Cost_Pct" to control how much building an unit costs - Configuration of the clause types available for diplomatic treaties - Each clause type can be disabled (to be not available in the game) - Clauses have requirement vectors both for giving and receiving party. Only if both parties can fulfill their requirements, clause can be part of a treaty - Nuke behavior can be controlled by new "nuke_pop_loss" and "nuke_survival_chance_pct" ruleset settings - Support for renaming a ruleset in a savegame compatible manner has been added. The rename migration is slow process - happens over freeciv version change - Ruleset can control how much unhappy/celebrating cities affect civil war chance by new 'civil_war_bonus_unhappy' and 'civil_war_bonus_celebrating' settings - New "DefenseDividerPct" and "DefenseMultiplierPct" combat bonus types have been added. They are more fine-grained versions of existing "DefenseDivider" and "DefenseMultiplier" bonuses. - New "NeverProtects" unit type flag can be used to make certain unreachable units not to protect other units even when server setting "unreachableprotects" is set - New extra removal cause "Enter" added to replace old behavior of extra *creation* cause "Hut" also controlling hut entering and removal. - New "history_interest_pml" setting can be used to give interest to existing history. This is meant to be used so that older history of the same original value gets more valuable than newer as it has grown more interest - Max values for ruleset settings have been increased to support "high granularity" rulesets - Unhardcoded "Missile" and "CanPillage" unit class flags - Maximum number of user unit class flag increased to 12 - Succesfull action move costs now controlled by new "Action_Success_Actor_Move_Cost" and "Action_Success_Target_Move_cost" effects - Entering and leaving transports is now controlled by new effects "Transport Alight", "Transport Unload", "Transport Disembark", "Transport Board", "Transport Embark" - New events e_unit_action_actor_success, e_unit_action_target_hostile, e_unit_action_target_other and e_unit_action_actor_failure - New actions "Surgical Strike Building" and "Surgical Strike Production" - New action "Spread Plague" - New action "Spy Attack" - Autoattack is controlled by fully featured requirement vector for attacker. Earlier we had just list of unit type flags that prevented autoattack - There is some duplicate actions that ruleset can differentiate: - "Transport Disembark 2" - "Conquer City 2" - "Bombard 2" & "Bombard 3" - There is 3 blank user actions for rulesets to define themselves - "Explode Nuclear" action now is only about detonating in place. New actions "Nuke City" and "Nuke Units" control rest of the old functionality of "Explode Nuclear" - "Targeted Sabotage City" now only controls Buidling sabotage. New action "Sabotage City Production" controls production sabotaging. "Targeted Sabotage City Escape" and "Sabotage City Production Escape" work similarly - "Explode Nuclear", "Nuke City", and "Nuke Units" actions can have ruleset defined max ranges - "Airlift Unit" action can have ruleset defined max range - Added "InNativeExtra" unit state property - Requirement type "CityStatus", with supported values - "OwnedByOriginal" - Requirement type "MinForeignPct" - Requirement type "Activity" Server operation: ================= Settings: --------- - bzip2 compresstype has been deprecated - There's new 'unsafe-cmd' and 'unsafe-file' server commands for running lua commands outside security-restricted instance - New incite_gold_loss_chance and incite_gold_capt_chance settings to make it possible that player loses some of the money reserved for the inciting when it fails, and the planned victim getting it - New 'playernation' server command for setting nation and leader name for a player fcdb: ----- - fcdb lua script can now deny access to 'take' and 'observe' commands - odbc support added to fcdb AI: === - Experimental Tex AI module can do big portion of processing simultaneously with player turn, instead of forcing player to wait at turn change - AI type "tex" is built in by default - AI can build ocean worker units - There's a new AI trait "Builder" Clients: ======== General: -------- - Control keys have been rearranged to make room for new functionality and to implement that functionality. See Help->Controls - New max_growth governor (CMA) parameter to get optimal food surplus Qt: --- - Font settings have been streamlined Tools: ====== Ruledit: -------- - Effects editing Modpack Installers: ------------------- - Information about installed modpacks is stored to a sqlite database instead of specfile of our own format Build & Portability: ==================== - sqlite3 is now an hard requirement - Implementation of meson based build system to exist parallel with autotools based system started - Minimum Qt requirement is 5.11 - New configure option --with-qt5x enables building experimental Qt-5.12 versions of Qt-programs (Qt-client, freeciv-mp-qt, ruledit) - Common parts of the code can be compiled with emscripten Other: ====== - Gtk-clients' zoom now works on any level - Doxygen documentation markup has been added to the source code, and regularly refreshed documentation can be seen at http://files.freeciv.org/doxygen/master/html/