Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Feature #871681

Fix inability to properly harness Gov_Center effect in important cases.

Added by Lexxie L over 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Category:
General
Sprint/Milestone:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

In rulesets which wish to allow creating a second capital or Gov_Center, there is usually a steep cost in order to get what is documented to be the bonuses of having a second capital.

However, if many of the most significant bonuses of such a second capital are not accessible, this makes it so that:
1. The major intended design effect for second capitals/gov_centers is not usable.
2. The intended function for a second Gov_Center is made radically more useless.
3. Players are CONSTANTLY confused, bewildered, frustrated, and disappointed about strategies broken by the effects not being delivered, being documented in helptext incorrectly, and they constantly ask and query about the missing effects.

Code that solved this was implemented at FCW:

https://github.com/Lexxie9952/fcw.org-server/commit/cc79217330df7d9cbe35f0b4d368be66ed5bb499


Related issues

Related to Freeciv - Feature #872575: Consider secondary capitals when calculating city incite costClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Feature #872572: civ2civ3: Make Ecclesiastical Palace a secondary capitalClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Feature #872579: Consider secondary capitals when calculating unit bribe costClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Bug #872573: civ2civ3: Ecclesiastical Palace documentation claim that it's fully blown second capitalClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Blocks Freeciv - Task #673656: S3_1 datafile format freeze (d3f)Closed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

History

#1 Updated by Marko Lindqvist over 2 years ago

  • Tracker changed from Task to Feature

FWC patch does not update README.effects for the new definition of the Gov_Center effect.

For backward compatibility reasons we probably don't want to change existing Gov_Center effect the way the patch does, but should provide new ruleset features for ruleset authors who want the behavior the patch adds to Gov_Center effect.

#2 Updated by Lexxie L over 2 years ago

Marko Lindqvist wrote:

FWC patch does not update README.effects for the new definition of the Gov_Center effect.

For backward compatibility reasons we probably don't want to change existing Gov_Center effect the way the patch does, but should provide new ruleset features for ruleset authors who want the behavior the patch adds to Gov_Center effect.

Consensus was it's an improvement to all rulesets. This fix and others are usually responses when there is strong opinion from the player community, which we get a lot of since we run the most trafficked freeciv server.

Having ruleset options to do both ways is always good. I will put in mild opinion though, that it seems that defaulting to the way that all the players were complaining about, then making extra work to have to go fix the rulesets because they default to the unpopular way... ??? Hmm. Seems easier to just default the new way and only rewrite something into civ2. But who knows what way ends up easier. Hopefully you pick the way that is least amount of work and most popular and progressive for the player community.

#3 Updated by Marko Lindqvist over 2 years ago

  • Category set to General
  • Sprint/Milestone set to 3.1.0

#4 Updated by Marko Lindqvist over 2 years ago

  • Blocks Task #673656: S3_1 datafile format freeze (d3f) added

#5 Updated by Marko Lindqvist about 2 years ago

Still largely untested patch to allow multiple cities with Capital_City effect. The city with highest value is the "named capital" that is shown in inteldlgs and such.
There's a rule change here that assignment as capital, named or secondary, is updated at turn change, not immediately when the requirements are fulfilled or lost.
Savegame backward compatibility is not good. Fogged (plrtile) capitals from old savegames are not known as capitals any more. The main problem here is that the server doesn't really know (without a lot of new code) what client would think as a capital.

My original intent for this patch was to create only the first step; to consider highest Capital_City value city the capital, but to allow other cities to have some positive value too. That alone would have eased writing rulesets where multiple factors affect what city is the capital - there would be no need to make sure all other cities but the real capital reach zero or negative value. This patch still doesn't do much more than that, but it seems that it almost automatically causes support for multiple capitals. If this multiple capitals idea without additional implementation details turns out not working, it should be possible to revert to original idea about this patch by changing is_capital() to check for CAPITAL_NAMED (just one capital) instead of any capital not CAPITAL_NOT.

#6 Updated by Marko Lindqvist about 2 years ago

  • Related to Feature #872575: Consider secondary capitals when calculating city incite cost added

#7 Updated by Marko Lindqvist about 2 years ago

  • Related to Feature #872572: civ2civ3: Make Ecclesiastical Palace a secondary capital added

#8 Updated by Marko Lindqvist about 2 years ago

  • Related to Feature #872579: Consider secondary capitals when calculating unit bribe cost added

#9 Updated by Alexandro Ignatiev about 2 years ago

server/sanitycheck.c warning that you have more than 1 capital is not removed. (Maybe leave it there when you have more than 1 named_capital?)

#10 Updated by Marko Lindqvist about 2 years ago

  • Status changed from Resolved to In Progress

#12 Updated by Marko Lindqvist about 2 years ago

  • Status changed from Resolved to In Progress

Players end with multiple named capitals in autogames

#13 Updated by Lexxie L about 2 years ago

Are these (and other) patches I'm seeing, an alternative more complex solution to deliver the new ability for a hypothetical future ruleset to separately diminish corruption/waste while optionally choosing whether that effect couples with being a secondary capital? That would make these patches provide more ruleset programmability than the discarded patches FCW made to fix this issue. And that's [hypothetically] superior and would justify discarding the earlier patches!

However, please comment on something that just happened here and other places, that I believe is suboptimal for maximal contribution and progress.

I will do a FAKE rhetorical rant to emphasize how we could be so much more optimal. Please keep in mind the goal is to make us aware of how we could be optimal and partaking in so much more awesomeness. Now let me really get into the role of a mean rhetorical attorney here! ;)

Making Gov_Center synonymous with second capital made perfect sense and lined up with what all rulesets which used it were wanting and assuming that effect to be for, and what they wanted to use it for. Thus, FCW patched the code to match this very reasonable and intended purpose, generously flagged it to the sister repo to consider in spite of them not flagging or submitting things into our repo, and most importantly, provided a way to INSTANTLY fix all problems for real current players, and did all this without needing to rewrite rulesets, etc. A NEW hypothetical feature to provide decoupling of gov_center from capital, that we are not even sure anyone would ever use, could easily have been done with a NEW effect administration_center or regional_gov_center or whatever you want to call it, while fixing existing stuff immediately and not causing TIME-DAMAGE to existing server operators feeling obligated to rewrite their existing server and rulesets RIGHT NOW if they want to avoid further divergence and merge difficulty in the future. Quite a big demand, for a hypothetical new feature that we don't even know someone will ever implement.

Let's compare implementing the FCW patch as it was, to the consequences we got by (A) rejecting that patch and (B) rejecting the reasonable collaborative norm of first having a respectful co-brainstorming conversation with the original author, under the normative assumption that people who discover and report and patch a problem may deserve enough respect and have a kind of priority/expertise that led them to be aware when no one else was.

Does this "alternative" solution...
1. introduce a worse problem, that secondary capitals which were formerly handicapped by paying a high price for undelivered effects, now cause a new modification and crippling nerf to cause civil war and lose spaceship? This is no joke. Ecc.Palaces are usually made in aggressive risky far-away colonies. Making these a civil war vulnerability is such a new deal-killer to invalidate the usefulness of the building. It is unarguably an arbitrary FIAT decision made from nowhere and invalidating previous documentation and design decisions, and is arguably a greater nerf than the "buff" of making it work as originally documented, priced, and intended,
2. ignore/forget/defer the goal to get everything behaving as originally documented and intended and designed,
3. discard a submitted patch that met that goal, was working, and did not introduce new unwanted and modified consequences,
4. neglect contacting the author of the patch to at least respectfully discuss and find out if they knew things that might lead to a different course of action from discarding hours of work to replace it with a patch that behaves differently,
5. neglect to consider that server operators of real live running servers now get disrespectfully dumped on with the choice of days of extra work to try to align to main branch vs. keep their different patch which actually works and delivers to the freeciv public what they demanded and wanted?
6. neglect to consider that rulesets wanting to prevent the second capital from double exposure to civil war and loss of space ship is NOT some future hypothetical feature, but a REAL existing immediate need to make current rulesets behave as they're designed, documented and intended. i.e., that the loss of the Palace improvement, not a secondary capital, is the only traditional way, the only documented way, and the only intended/designed way, to cause a civil war or loss of spaceship (and only way that makes any sense for game balance, not to mention not violating the laws of nature ... a spaceship can't co-exist in two places at once; and laws of political science, a secondary capital DIMINISHES risk of civil war as loss of one still leaves the nation with a working capital)
7. neglect to consider that this introduces a new arbitrary and previously undocumented nerf to secondary capitals when we were trying to de-nerf them into being used as intended and wanted by the public,
8. achieve some hypothetical feature in a future ruleset, without meeting the simpler easier goal of fixing things to be how they're intended and documented right now in real live rulesets being played
9. neglect to consider that if every time FCW releases a patch or fix or improvement, if it is discarded, ignored, rewritten to behave differently, this results in:
  • discarding and invalidating hours of coding work
  • discourages future submissions -- who wants to write something for hours only to result in it not only being discarded, but hours more work to get their server aligned to the code that replaced theirs?
  • amplifies branch DIVERGENCE when usually the responsibility of project leadership is to minimize divergence and congeal enthusiasm for accumulated collaboration
  • exacerbates and handicaps the critical goal of moving toward merging/harmony of the two branches
  • alienates both branches from participating in each other's new improvements as they progressively become more divergent.
  • gets us farther from the what normative leadership would have as the goal: unified merged server code that's client agnostic and is accumulating a higher quantity of awesome features from a higher population of submitters

</end exaggerated rant>

This exaggerative rant should not be taken in any personal or hostile way, the purpose of the exaggerative nature was to highlight how we're suboptimal here. Since no one has taken the responsibility or duty of optimising, no one is really at fault here. There are a lot of great things really buzzing in freeciv now that I could glow about and write pages about! Anyway, the purpose of the fake rant was to simply get us thinking how we can be achieving what we all really want... way better progress and features with a lot less work. Submissions which enhance and stack on each other instead of superfluouly overlapping and obsoleting and invalidating each other while forcing less unity and sabotaging what should be the clear goal of a merged unity.

Client agnosticism hooking up to a single unified brilliant amazing server that is getting so many awesome new features and submissions under super enlightened project harmony/leadership. Yay !!!

#14 Updated by Alexandro Ignatiev about 2 years ago

I think we should not discard it, just improve a bit in other tickets. For example, introduce min_capital_spaceship_loss (as ruleset variable or some constant, maybe even scale the SS loss probability for the exceeding of this level) and make the effect Civil_War_Chance city-ranged (requires some AI reprogramming, but it all does).

#15 Updated by Lexxie L about 2 years ago

Alexandro Ignatiev wrote:

I think we should not discard it, just improve a bit in other tickets. For example, introduce min_capital_spaceship_loss (as ruleset variable or some constant, maybe even scale the SS loss probability for the exceeding of this level) and make the effect Civil_War_Chance city-ranged (requires some AI reprogramming, but it all does).

+ = advantage
- = disadvantage

My original FCW patch he discarded:
1. +Made the Gov_Center effect properly be a second capital like all the rulesets wanted to use it for and [mistakenly] expected it to be, without knowing about the "bug"
2. +Required no rewriting of rulesets.
3. +Instantly fixed the bug in all existing rulesets.
4. +Was ready to go, making all servers unified and convergent and merged in this respect.
5. -Does not allow separating the second-capital effect from the corruption/waste reduction effect, BUT, that should be a separate new feature that is super easy to copy-paste for future rulesets to use, without making a lot of extra re-writing of existing servers and rulesets.

The new patch:
1. -Changed what Gov_Center is supposed to be used for (i.e., a second capital).
1a.-Does not provide a replacement or any way at all, for achieving the "second capital" effect.
2. -Made every ruleset expecting (Gov_Center second capital)true, have to now be re-written, leaving ongoing games broken and bugged for the foreseeable future.
3. -Even IF the rulesets are re-written, introduces an unintended effect, that now second cap-itals cause civil war and loss of spaceship unless even more stuff is re-written.
4. -Creates divergence between repos and punishes our repo for submitting this.
5. +yes, there is one +, it allows a new feature for future hypothetic rulesets to implement corruption/waste reduction without secondary... but it doesn't fix our original problem! A secondary capital that acts as it should WITHOUT civil war and loss of spaceship, which are totally nonsense retarded to have in second capital!
6 -does not fix any existing rulesets which are in a bugged state right now!

Suggestion 1:
Can we PLEASE just implement FCW patch and add the corruption/waste reduction as a new feature effect for later, if other future hypothetic rulesets wanted it?
Suggestion 2:
Rewrite this to WORK for making a properly designed/documented secondary capital that works as intended/documented, and fix the rulesets, and submit to the fcw repo.

I think suggestion 1 is easier.

#16 Updated by Marko Lindqvist about 2 years ago

Gov_Center is documented as
The city with this effect is governmental center. Corruption and
waste depends on distance to nearest such city.

It has never been documented as FCW patch makes it. FCW patch even doesn't update the documentation. Gov_Center is not even overlapping with Capital_City effect - Capital_City without Gov_Center does not reduce corruption. There would be no point in having two effects doing the same thing - if they did, one would need to be cleaned out in this development cycle anyway.
Ruleup does the ruleset update (though assuming that the effects in 3.0 version are used as documented). This is not happening in a stable branch, but in development, so ruleset format changes are allowed. If FCW is not happy with a branch that is in development flux, it should not use development branch but stable branch.

The civil_war thing is an issue needing further development.

#18 Updated by Marko Lindqvist about 2 years ago

  • Related to Bug #872573: civ2civ3: Ecclesiastical Palace documentation claim that it's fully blown second capital added

#19 Updated by Lexxie L about 2 years ago

SOOOOOO EASY:
a few simple lines of code patch that makes players, ruleset maintainers, server operators, ruleset designers, default rules, mp2 fcw rules, everything soooo happy.
future upgrade: a separate effect for only corruption reduction.

Why is this so hard to see?

#20 Updated by Marko Lindqvist about 2 years ago

Lexxie L wrote:

Marko Lindqvist wrote:

Gov_Center is not even overlapping with Capital_City effect - Capital_City without Gov_Center does not reduce corruption.

That's not technically true. Building a Palace in any spot will reduce the corruption of surrounding near cities, in a way exactly like Gov_Center effect.

See city_waste(). It works on gov_center only. All the rulesets (quite sensibly) make their capital also gov_center.

I don't know who originally made Gov_Center

FWIW I'm the one who did the Gov_Center effect in the first place. Shouldn't dictate its future any way.

As you probably don't know our exact practices, I should note that I didn't change the status of this ticket to "Resolved" with the patch submission. So the 36h clock is not ticking yet. I'll probably leave this on the table for now - no energy to go through this just now.

#21 Updated by Lexxie L about 2 years ago

OK I start to see it's suboptimally messy no matter what way is done.

For now our discarded patch is working on FCW to resolve issues for our part of player community. Players outside of FCW, it's not for me to decide if they should have their broken rules fixed right away with a patch to the stable versions, or not.

From this stakeholder perspective, the priority #1 here is simply that a "second capital" effect that does not include spaceship/civil war, is done. Ideally it doesn't cause a major complex re-write of lots of other things with delayed time-bomb of mountains of work taking away from other things, but if it's necessary and contributes a great new value, then so be it. ;)

#22 Updated by Marko Lindqvist about 2 years ago

Lexxie L wrote:

does not include spaceship/civil war

For my patches the only change needed for this would be limiting those to named capital.

#23 Updated by Marko Lindqvist about 2 years ago

My own concern about the patch is related to the fact that capital "detection time" goes from "immediate" to "turn change". We probably don't find out how that behaves in practice until we push the patch and wait for people to use it. Luckily it's a long time to 3.1 so we can experiment and revert if it doesn't work out.

#24 Updated by Marko Lindqvist about 2 years ago

Marko Lindqvist wrote:

Lexxie L wrote:

does not include spaceship/civil war

For my patches the only change needed for this would be limiting those to named capital.

When updating this, it's probably a good idea to go from "named capital" / "secondary capital" to "primary capital" / "secondary capital" terminology.

#25 Updated by Marko Lindqvist about 2 years ago

FCW implementation is exploitable in that one can setup secondary capital with all its benefits without having primary capital, and risks related to it, at all. In my implementation there can't be secondary capital without primary one, but if one gets rid of one primary capital, secondary capital turns to an primary one.

#26 Updated by Marko Lindqvist about 2 years ago

- Limit civil_war and spaceship loss behavior to primary capital only
- Terminology update: "named capital" -> "primary capital"

#27 Updated by Lexxie L about 2 years ago

OK I guess, as long as it gets done I suppose. Seems hard to do though!

I guess you mean in a ruleset where you have to first build a Palace. Well, that's a good thought. I was probably thinking too much on existing rulesets in live games where people were complaining about it, wanting it fixed right away because freeciv actually is a live player community ;)

#28 Updated by Marko Lindqvist almost 2 years ago

  • Status changed from In Progress to Resolved

I'm going to push this now (after the usual 36h review period) to get more testing coverage for it.

#29 Updated by Marko Lindqvist almost 2 years ago

  • Status changed from Resolved to Closed
  • Assignee set to Marko Lindqvist

Also available in: Atom PDF