info/Empire4.4: Improve a few change log entries
[empserver] / info / Empire4.4.t
1 .TH Server "Empire4 Changes"
2 .NA Empire4.4 "Changes in Empire 4.4 (2015-present)"
3 .LV Expert
4 .s1
5 This document outlines the various changes to the game and how they
6 will affect you, the player.  These were coded as the Wolfpack project.
7 .NF
8 Changes to Empire 4.4.1 - Sat Feb 21 2021
9  * Fix land unit casualties in guerrilla fighting.  Broken in 4.4.0.
10  * Changes to edit:
11    - You can now edit bars on ships and land units, and missile
12      fortification.
13    - Fix to reject fortification of embarked land units.
14    - Fix to zap land unit and plane fortification on load.
15    - Fix to take satellite off its carrier when moving it to orbit.
16  * Changes to load, unload, lload, lunload, tend, and ltend:
17    - tend land with multiple target ships now tends each land unit
18      just once.
19    - tend land now reports "not on ship" only when the land unit was
20      explicitly selected by UID.  Matches unload.
21    - Fix load, unload, lload, lunload to suppress messages and skip
22      foreign ships / land units when the second argument starts with a
23      digit.
24    - load and unload no longer prompt for land units to unload when a
25      carrier can't carry any.
26    - Fix load plane to reject satellites in orbit.  The stock game
27      does not have loadable satellites.
28  * Fix launch to take satellites off their carrier when moving to
29    orbit.
30  * Shield embarked planes and land units from sector damage, like
31    their ships.
32  * Rewrite much of fairland to make it more robust and more fair:
33    - Show a more useful map.
34    - Fix error handling, fix and tidy up error and progress messages.
35    - Drop option -a.  Deities can find continents with ?dterr<N, where
36      N is the number of continents.
37    - Drop option -o.  Deities can unset resources with "edit l * i 0 g
38      0 f 0 c 0 u 0".
39    - Drop a useless warning about small world.  It was downgraded from
40      error in 4.3.25.
41    - Check arguments more thoroughly, and don't silently "correct" bad
42      arguments.
43    - Fix checking of minimal distance arguments.  Has always been
44      broken, but 4.3.15 made it worse.
45    - Ensure the continents' first two sectors obey minimal distance.
46    - Correct bias in placement of expansion islands.  These were more
47      often placed to the right of existing land.  Players could
48      exploit that to guide their search for land.
49    - Fix island growth and correct its bias.  Growth could fail even
50      when there was space to grow.  Islands tended to curve around
51      obstacles in a counterclockwise direction.  Besides fixing that,
52      the new code also gives better results for high spike
53      percentages: it produces shorter spikes extending from a core
54      rather than long snakes that tend to curve into themselves, and
55      is less prone to put capitals on the coast.
56    - Size and place expansion islands fairly: ensure each start island
57      "owns" the exact same set of expansion islands, where "owns"
58      means it's closer than any other start island.
59    - To make that work, fairland now requires the number of expansion
60      islands to be a multiple of the number of continents, and fails
61      when it can't place all the islands the deity asks for.  You
62      can't fill the world with islands anymore by asking for
63      impossibly many of them.
64    - Fix silent failure to place mountains.  Fairness issue.
65    - Fix unfair mountain resources.  Neglected when Empire 3 made
66      mountains produce gold dust.
67    - Drop undocumented, silent limit of 1000 mountains per island.
68    - Location of resources is more varied, in particular for islands
69      with few mountains, and for sea.  Resource remain pretty much the
70      same overall.
71    - Performance improves for large minimal distances, especially for
72      crowded worlds.  It can suffer for huge worlds and small minimal
73      distances.
74    - Manual page improvements.
75    - Code refactoring and cleanup.
76  * Test suite improvements:
77    - Fix empdump-test for "make check-accept".  Has been broken since
78      its addition in 4.3.33.
79    - Improve give and edit coverage.
80    - Cover load and tend.  There are known gaps.
81    - Improve fairland coverage.
82  * Game customization improvements:
83    - Configuration tables now have more extra space deities can use
84      for customizing their games: 31 product types, 63 sector types,
85      127 ship, plane and land unit types, and 63 nuke types.
86    - Work to produce stuff is now independently configurable, and
87      "show product" shows it.  Before, it was a function of raw
88      materials and resource use.
89  * New product selector "bwork" is work to build one unit of the
90    product.
91  * Fix build with compilers that require the depcomp wrapper for
92    dependency tracking.  Broken in 4.3.31.
93  * Fix LWP signal code.  Messed up in 4.3.6, some more in 4.3.10.
94  * Improve POSIX conformance for portability.  Observed to fix the
95    build on Solaris 10.
96  * The client's password prompt now behaves the same on all POSIX
97    systems: read from standard input in canonical mode with echo
98    turned off.  Before, it commonly read from /dev/tty in noncanonical
99    mode.
100  * The server crashed on some systems when bomb, launch and
101    interdiction missed the target.  Fix that.
102  * Fix truncated "info Empire4.3" on systems with a losing nroff.
103  * Make client's fancy line editing and persistent history work on
104    more systems.
105  * Fix ground combat not to wipe out commodities supplied to defending
106    land units.  Broken in 4.3.33.
107  * Don't permit SAMs on escort missions.  They work, apart from a
108    recoverable internal error, but it makes no sense.
109  * Don't permit marine missiles on support missions.  They can't
110    actually go.
111  * Drop support for ABM and a-sat missiles consuming shells.  The
112    shell use is logistical busy-work, and economically irrelevant.
113    The stock game's abm type didn't consume any, but its asat type
114    did.
115  * Stricter plane configuration validation.
116  * Increase mountain process efficiency from 75% to 100%.  Gold
117    resources in mountains are now worth the same as elsewhere, and a
118    third more than before.
119  * Fix crash when a deity runs neweff or production on a sea sector.
120    Broken in 4.4.0.
121  * Don't let embarked engineers work.  Screwed up when the work
122    command was added in Empire 2.
123  * Fix buy to handle concurrent lot change more robustly.  The flawed
124    handling goes back to 4.0.0 and 4.0.2.
125  * Fix MOB_ACCESS mobility update for ships owned by countries with
126    even country number.  Broken in 4.4.0.
127  * Journal entries for output are no longer flushed to disk right
128    away.
129  * Code refactoring and cleanup.
130  * Info page, manual page and documentation fixes and clarifications.
132 Changes to Empire 4.4.0 - Sun Sep  3 2017
133  * Don't increase negative ship and land unit mobility to zero on
134    trade.
135  * Client improvements:
136    - Support fancy line editing and persistent history when compiled
137      with the GNU readline library.  Contributed by Martin Haukeli.
138    - Fix misdetection of input EOF in obscure circumstances.
139    - Tighten protection against rogue server abusing redirection and
140      execute.
141    - Improve some error and warning messages.
142  * Fix wire for deities to honor announcement rejection.  Broken in
143    Empire 3.
144  * Fix excessively fast contact aging with option LOSE_CONTACT.
145    Broken in 4.3.0.
146  * The edit command no longer shows contact with option HIDDEN.
147  * Grant security units a military control bonus similar to their
148    shoot and convert mobility bonus.
149  * Embarked land units no longer contribute to military control.
150  * Fix convert and shoot not to put foreign and embarked land units to
151    work.  Screwed up when land units were added in Chainsaw.
152  * A security unit's combat strength bonus for fighting guerrilla is
153    now proportional to its efficiency.
154  * The mobility bonus a security unit provides to shooting and
155    converting civilians is now proportional to its efficiency.
156  * Fix a missing newline in the edit command's "teleported" message.
157    Messed up in 4.3.32.
158  * Don't permit boarding of embarked land units.
159  * Guerrilla fighting fixes:
160    - Let rebels liberate old-owned sectors again.  Broken in 4.2.6.
161    - Fix overeager destruction of defending land units.  Screwed up
162      when land units were added in Chainsaw.
163    - Reduce under-strength land unit damage for consistency with
164      ordinary ground combat.
165    - Land units without military can no longer die fighting che.  They
166      can now get captured when the rebels take over the sector, just
167      like in ordinary ground combat.
168    - Fix the way casualties are applied to land units, because it is
169      utterly bonkers.  Screwed up when land units were added in
170      Chainsaw, made worse when military became loadable in 4.0.0.
171    - Fix guerrilla shootout body counts.  Screwed up when land units
172      were added in Chainsaw.
173  * Fix ground combat not to disclose retreat of defending land by
174    printing newlines.  Messed up in Empire 3.
175  * Fix bad grammar in message reporting destruction of an attacking
176    land unit.
177  * Fix a missing newline in intelligence reports on land units.
178    Broken in 4.3.33.
179  * Spy unit changes:
180    - Spies can no longer assault foreign sectors together with non-spy
181      units.  This matches attack and board.
182    - Ground attack can no longer detect spies in the target sector.
183      They can still get caught when the attack succeeds.
184    - Spies that get caught when their sector is taken over are now
185      summarily executed.
186    - Change the chance for assaulting spies to "sneak ashore"
187      undetected from 10% regardless of efficiency to 40% at 100%
188      efficiency.  The chance drops to 0% at 20% efficiency.
189    - Assaulting spies now use mobility and can hit landmines even when
190      they "sneak ashore".
191    - Plug memory leak in spies sneaking ashore.  Screwed up when spy
192      units were added in 4.0.0.
193  * Plug memory leak when missile defense sinks attacking ships.  The
194    leak goes back to flawed bug fix in Empire 2.
195  * Fix lost and xdump lost to report more than one lost sector.
196    Broken since lost item tracking was added in 4.0.7.
197  * Merged news reports now saturate "times" at 65535.  Before, merging
198    stopped when "times" reached 127.
199  * More detailed version information, looks like this:
200        V            Unmodified release V (same as before)
201        V.N-H        Modified release built from a clean git tree
202                     N is the number of additional commits, and
203                     H is the abbreviated commit hash
204        V.N-H-dirty  Same, but the working tree is dirty
205        V-dirty      Modified release built from a tarball
206    Visible in output of commands version, xdump version, and in
207    program output for option -v.
208  * Update, budget, neweff, production and work improvements:
209    - Delivery screws up when it abandons a sector.  Fix by making it
210      not abandon sectors.
211    - Plague people in sectors only after taxes and feeding, for
212      consistency with ships and land units.  Sectors were messed up in
213      Empire 3.
214    - Reorder the update sequence not to prefer countries with lower
215      country numbers when the same sector repairs ships, planes or
216      land units owned by multiple countries.  Broken since Chainsaw
217      introduced budget and foreign repairs as options.  Either option
218      worked sanely in isolation back then, but not their combination.
219      They both became standard in Empire 2.  Restore the pre-budget
220      order.
221    - Fix budget for ship, plane and land unit repairs in foreign
222      sectors.  Also broken since Chainsaw.
223    - Fix the update to use new available work for ship, plane and land
224      unit repairs even when the sector owner has a higher country
225      number.  Also broken since Chainsaw.
226    - Pilots are now paid at the same time as other military.  Can
227      matter only when the country goes broke during the update.
228    - Make ships produce after eating and building efficiency, like
229      sectors.  The starvation command assumed that, and the change
230      "fixes" it.
231    - Don't let stopped ships produce.
232    - Fix sector maintenance to charge for stopped sectors and when the
233      owner is broke.  Broken in 4.3.23.
234    - Fix plane maintenance to charge for satellites in orbit.  Broken
235      in 4.2.2.
236    - Change TECH_POP to count civilians in ships and land units.
237    - Fix happiness and education to count civilians in ships before
238      plague (same as in sectors), and to count civilians in land
239      units.  No such land units exist in the stock game.
240    - Revise sector production to avoid rounding intermediate values.
241      This makes commands production and budget a bit more accurate.
242    - Don't round income and expenses before adding them up.  Fixes
243      numerous crazy artifacts, such as military getting paid less when
244      spread over many sectors.
245    - Fix budget for nations going broke or becoming solvent.
246    - Fix military count in budget.
247    - Zap available work when the sector is stopped or its owner is
248      broke.  Broken in 4.0.0.
249    - Limit "rollover" of unused available work to about half the
250      work done by people at the update.
251    - Round the people's work randomly rather than down, to reduce
252      micromanagement incentives.  This is how things worked until
253      Empire 3.
254    - Make sector and unit building more predictable.  The budget
255      command is now a bit more accurate.
256    - Don't let repair of foreign ships, planes and land units use
257      materials and available work destroyed by che or the plague.
258    - Stopped sectors no longer repair foreign ships.
259    - Fix unowned uw to eat, procreate and produce normally.
260    - Fix budget not to predict production when the required level is
261      too low.
262    - Fix use of stale owner after revolt or revert to deity.  In
263      particular, a bank now pays interest to the rebels.  Research and
264      tech level for plague were also off.  Has always been wrong.
265    - neweff and production now simulate the effect of insufficient
266      food, like budget does.
267    - Fix double-rounding of new work that made the update sometimes do
268      less than neweff and production predicted.  Broken in Empire 3.
269    - Enforce sector population limit only right after growth.  Before,
270      it was also enforced when the sector changed from big city to not
271      big city (since Empire 2 added option BIG_CITY), but not for
272      other changes of the population limit during the update.
273    - Limit work in big cities to the population limit at 0%
274      efficiency, to get rid of ugly special cases in the code.
275    - Code refactoring to undo much of the damage done in Empire 3 to
276      make budget reuse the update's code.
277  * Make plains more like wilderness: efficiency costs no money,
278    but doesn't reduce mobility cost.
279  * Changes to collect:
280    - Tweak value of sectors.
281    - You can no longer collect an active capital.
282    - Don't disclose the value of a sector when it exceeds the amount
283      owed.
284  * Changes to xdumps, breaking compatibility:
285    - Split tables relat, reject, contact off table nat.  Saves disk
286      I/O and xdump bandwidth.
287    - Table nat's field "hostname" was deprecated in 4.3.33 and is now
288      gone.
289    - Meta-type numbers now map to meta-type symbols 1:1.  Meta-type
290      "c" is gone; the selectors use type "s" instead.
291    - New sect-chr and item field "power".  Field "value" is gone.
292    - New sect-chr and infrastructure fields "l_build", "h_build"
293      replace "lcms", "hcms".  The replacements track materials for
294      building 100% instead of 1%.
295    - New plane-chr field "m_build" replaces "crew".
296    - New sect-chr, ship-chr, plane-chr, land-chr, nuke-chr and
297      infrastructure fields for arbitrary build materials, named
298      "g_build" for guns, "p_build" for petrol, and so forth.  For now,
299      these are all zero.
300    - sect-chr field "cost" is now money to build 100% (was: cost to
301      designate).  It replaces field "build" (money to build 1%).
302    - New sect-chr, ship-chr, plane-chr, land-chr and nuke-chr field
303      "bwork" is work to build 100% sector efficiency.  Tearing down a
304      sector costs one fourth as much.
305    - New sect-chr field "flags", backed by new table sect-chr-flags.
306      The only flag so far is "deity", which marks sectors mortals
307      can't designate.
308    - New infrastructure fields "cost" and "bmobil" are money and
309      mobility to build 100%.  They replace fields "dcost" and "mcost"
310      (money and mobility to build 1%).
311    - meta-flags "extra" and "const" are gone.  They were of no concern
312      to clients anyway.
313  * Game customization improvements:
314    - The power value of commodities is now configurable, and "show
315      item" shows it.  The collect value of commodities and sectors is
316      no longer independently configurable, but derived from power
317      value.
318    - More flexible infrastructure material and mobility cost
319      configuration.
320    - More flexible sector build material and cost configuration,
321      consistent with unit building.
322    - Work to build sectors, ships, planes, land units and nukes is now
323      independently configurable.  Before, it was fixed at 100 for
324      sectors, and a function of build materials for ships, planes,
325      land units and nukes.
326    - The designate command can no longer be made to cost money.
327  * Fix obscure corner cases where we failed to reset work percentage,
328    loyalty or old owner in sectors without civilians.  Lingering old
329    owner can prevent airlifting and unloading civilians.  The fix
330    partly mitigates the bug where airlifted and unloaded civilians
331    adopt the sector's work percentage and loyalty.  It also sets work
332    percentage to 100% for unowned sectors without civilians.
333  * Even planes without crew can now spread the plague.
334  * The transport command now computes plane weight from build material
335    weight rather than making it up.  The stock game's planes become a
336    bit easier to transport, except for Zeppelins.
337  * Tweak the "power factor", which determines power chart order:
338    - Nukes now contribute to power just like other units.
339    - Tweak power value of items, sectors ships, planes and land units:
340      construction materials, oil and civilians are worth less, shells,
341      guns, bars and petrol are worth more.  Cheap and old (low tech)
342      ships, planes and land units are worth less, expensive and new
343      ones are worth more.  Cheap and "small" (low maximum population)
344      sectors are worth less, expensive and big ones are worth more.
345    - Tweak tech's contribution to power so it's less dominant at low
346      tech.
347    - Research no longer contributes to power with option RES_POP.
348    Note that with the old formula, producing and building certain
349    things could be a net loss of "power".
350  * The edit command now lets you edit land unit plague stage and time.
351  * Takeoff and landing in mountains now require capability helo or
352    missile.  The flying commands reject fixed-wing planes based in
353    mountains.  When flying to a mountain, they select only helicopters
354    and silently ignore the rest, exactly like they select only VTOL
355    planes for flying to a non-airfield.  Similarly, missions ignore
356    fixed-wing planes in mountains.  Before, any plane could bomb,
357    drop, paradrop and fly missions out of a mountain, but no plane
358    could fly to a mountain one-way, with fly, recon or sweep.  Has
359    always been that way.
360  * Add missing newlines to "while it is carrying a nuclear weapon"
361    messages.  Screwed up in 4.3.23.
362  * Disallow bombing spy units.  Bombers spotting spies makes no sense.
363    Worse, they could bomb spies that weren't spotted.  Screwed up when
364    spy units were added in 4.0.0.
365  * Fix march's check for sector abandonment not to ignore land units
366    that evade spy detection or are loaded on ships, but to ignore land
367    units loaded on land units marching out.  Broken in 4.3.33.
368  * Fix damage and ammunition use when multiple defenders with the same
369    UID (say a ship and a land unit) return fire to multiple attackers.
370    Broken in 4.3.12.
371  * Fix march not to wipe out concurrent updates when the player
372    declines to abandon the sector.  Broken in 4.3.33.
373  * Make the savecore example script report more nicely when there's no
374    core dump.
375  * Enable various compiler options for hardening the programs against
376    certain kinds of attacks when available.
377  * Tell compilers not to rely on strict aliasing and signed overflow
378    rules.  These rules are subtle, and compilers can't reliably
379    diagnose violations.
380  * Test suite improvements:
381    - Add news to the smoke test.
382    - Enable GNU libc memory allocation error checking.
383    - Cover much of the update.  Notable gaps are fallout, delivery,
384      distribution, ALL_BLEED, LOSE_CONTACT, and parts of guerrilla.
385    - Cover version, show and xdump of configuration.
386    - Improve navigate and march coverage.
387  * Plug memory leaks in navigate and march.  Broken in 4.3.33.
388  * Fix read beyond buffer in navigate, march and automatic retreat.
389    Could theoretically crash the server.  Broken in 4.3.33.
390  * Fix out-of-bounds array read in bomb, drop, fly, paradrop, recon,
391    sweep.  Could theoretically crash the server, or be abused to gain
392    plane mobility.  Broken in 4.3.27.
393  * Enable more compiler warnings.
394  * Code refactoring and cleanup.
395  * Info page, manual page and documentation fixes and clarifications.
397 .FI
398 .s1
399 .SA "Server"