Follow-up Comment #1, bug #22058 (project freeciv):

Looked at this in the context of bug #22158.

So player_research_update() is called for every player and calculates
tech_upkeep, which is stored in the possibly-shared research structure but was
calculated using player-specific information -- effects (Tech_Cost_Factor /
Tech_Upkeep_Free) and, since bug #19589, number of cities. 

tech_upkeep isn't actually paid until end_phase(). It's paid once per player,
each time deducting from the shared research, using the stored tech_upkeep
kept in the shared research structure.

I think the net effect is that some random team member's tech upkeep gets
subtracted multiple times from the shared research, if they're not all the
same (due to effects or "Cities" upkeep style).

I was also surprised that tech_upkeep is apparently recalculated on the client
for display, rather than maintained on the server and sent to the client.

It feels like tech_upkeep should become a per-player property, being that
player's individual contribution to research slowness. That way we can have
individual players with the wrong government or whatever leading to effects
holding the team back.


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to