Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@bunnybot
Copy link

@bunnybot bunnybot commented Jan 12, 2025

tothxaMirrored from Codeberg
Created on Sun Jan 12 02:08:54 CET 2025 by Tóth András (tothxa)


Type of Change

Balancing

Issue(s) Closed

Fixes extreme buildcosts of some Empire buildings

Replaces #6530

New Behavior

Make the Empire more competitive with the other tribes:

  • The cost of marble columns was decreased to 1 marble. This makes the warehouse, the trainingsites, the fortress/castle, the armor/weaponsmithies and the barracks comparable in overall cost to other tribes. (the colosseum is still more expensive, so still no unfair advantage with the cheap evade training)
  • only advanced buildings use marble columns (most notably the farm and the piggery only use marble blocks), but all buildings using it return only marble blocks on dismantle to compensate
  • the farm was made to use simpler wares: logs instead of planks, more granite and marble instead of marble columns
  • the piggery was made to produce 2 pieces of meat for 1 wheat and 1 water (3 of the 4 other tribes only need 2 small buildings for renewable fish/meat. I'll propose doubling the output of the Frisian aqua farm too.)

Some relative buildcost anomalies within the tribe were also corrected:

  • piggery got cheaper and sheep farm more expensive to make them cost the same
  • vineyard was made cheaper and winery more expensive to match the graphics
  • brewery was made more expensive to match other medium sites, most notably the bakery. 1 marble was added to both.
  • weaving mill got more expensive, closer to advanced production buildings

Adjustments to marble production:

  • The basic marble mine was fixed to only produce 3 stones for 1 ration, and made to respect economy needs in exchange. It was slowed down to the speed of the coal and iron mines too.
  • the deep marble mine was made to respect economy needs too, and to roughly match the deep iron mine in speed and in outputting 4 wares for 1 food+drink (marble time is exactly the old one if only marble is needed)
  • empty mines produce marble with slightly increased probability to decrease disadvantage on maps without stone resource
  • the quarry program is simplified to always produce 1 marble to 3 granites (slightly worse efficiency for marble to make it depend more on mines)

The blockhouse was made cheaper, only uses 2 planks. (this is equivalent with the cost of the Barbarian sentry)

Possible Regressions

Empire economy and balance against other tribes

@bunnybot bunnybot added this to the v1.3 milestone Jan 12, 2025
@bunnybot bunnybot self-assigned this Jan 12, 2025
@bunnybot
Copy link
Author

Assigned to tothxa

@bunnybot bunnybot added tribes Buildings, wares, workers, ships, ... empire One of our tribes balancing & gameplay Tribes' statistics & mechanics economy Ware priority & transport, worker creation & assignment, requests & supplies, trading & markets under discussion There is no consensus about a critical point yet ci:fail CI checks failed labels Jan 12, 2025
Copy link
Author

@bunnybot bunnybot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NordfrieseMirrored from Codeberg
On Sun Jan 12 09:19:46 CET 2025, Benedikt Straub (Nordfriese) commented.

purpose = pgettext("empire_building", "Carves marble columns out of marble.")
purpose = pgettext("empire_building", "Carves marble columns out of marble."),
-- TRANSLATORS: Performance helptext for an Empire production site: Stonemason’s House
performance = pgettext("empire_building", "The stonemason needs %s on average to produce one marble column"):bformat(format_minutes_seconds(1, 36))
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NordfrieseMirrored from Codeberg
On Sun Jan 12 09:22:56 CET 2025, Benedikt Straub (Nordfriese) wrote:


Missing period at end of sentence

@bunnybot bunnybot added ci:fail CI checks failed ci:success CI checks succeeded and removed ci:fail CI checks failed labels Jan 12, 2025
@hessenfarmer
Copy link
Contributor

Well, sorry to say that but we already had some discussions in the other PR, and from my point of view we already had some consensus on a lot of points while only having some points left to discuss. This PR is completely throwing everything we discussed away to start from the beginning. Furthermore it does even propose a lot more changes and thus altering the tribe and its play much more fundamental.
As fond as I am for better balancing, I detest such big changes.
I always stated my opinion, that we should go for the least invasive way of such changes.
This is really tiring me out..

@bunnybot
Copy link
Author

tothxaMirrored from Codeberg
On Tue Jan 14 00:55:01 CET 2025, Tóth András (tothxa) wrote:


I'm sorry for that, but I mentioned in the other PR that I wasn't satisfied by it and that I was looking into solving the marble issue from the demand side instead.

It took me quite some time to evaluate the relative buildcosts of building classes between tribes, and it led to the realisation that the main problem was the extreme cost of marble columns, hence the big change of direction. I was even quite surprised when I saw that just changing marble columns to use only 1 marble fixed most of the problematic buildcosts.

I ended up writing scripts to gather the data and create some diagrams to visualise the buildcosts, so I'll do the last steps to make it all more presentable, and I'll post them here for explanation.

As for the extent of this PR: if you look at them, you'll see that there are not even that many changes: of the 24 changed files 6 are just external updates, and another 4 are only changing dismantle returns. BTW that point is completely up for debate, because I'm not entirely sure whether it's a net positive or negative: turning columns back to marble means they have to be processed again for reuse in advanced buildings, but it makes more marble available for medium level buildings from dismantling advanced ones.

Then blockhouse is a much needed and not very big adjustment, and bakery and warehouse are only small tweaks. Plus you agreed with removing 1 marble column from vineyard in the other PR.

Of the 4 that are changing marble production sites, stonemason's house is the most substantial, implementing the big change of the cost of marble column. Quarry is a minor simplification just like in the other PR, but in the other direction, and mines are doing the fix that was agreed before for costs, and adding harmonisation of production times with the other mines on top of that, which I also consider a fix. (made possible by the marble column cost change)

So that leaves us with only 6 bigger changes, all with strong justification:

  • farm was already discussed in the other PR
  • piggery buildcost is harmonisation with farm, and not so substantial with the reduced cost of marble columns, while the need for the production change is explained in the cover post
  • sheepfarm is harmonisation with piggery and farm, and it really made no sense why it was so much cheaper when it's only needed for advanced production, while the 2 others are more basic. The final change is not even that big in the end, replacing the 2 planks with 2 marble.
  • weaving mill is also harmonisation: it really made no sense why a semi-advanced production building had been so cheap
  • winery adds some extra cost above your suggestion in the other PR, also for harmonisation of the number of building materials with other medium buildings
  • and finally, brewery is another one that shouldn't have been so dirt cheap, so it got a little more extra in harmonisation

@bunnybot
Copy link
Author

tothxaMirrored from Codeberg
On Wed Jan 15 00:23:11 CET 2025, Tóth András (tothxa) wrote:


So here are the calculation scripts. Copy the files from buildcosts_lua.zip to your .widelands dir. Create a working dir for the files in buildcosts_scripts.zip. Edit the included generate_buildcosts.sh to match the paths of your github worktrees, or just run the commands manually. (I hope they work in mingw too...) Graph creation requires gnuplot. The gnuplot script includes some documentation in comments.

I also attached the generated CSV file which can be imported into a spreadsheet if you prefer doing your comparisons that way.

The building material costs are as described in my forum post.

@bunnybot bunnybot removed the ci:success CI checks succeeded label Jan 15, 2025
@bunnybot
Copy link
Author

tothxaMirrored from Codeberg
On Wed Jan 15 01:52:54 CET 2025, Tóth András (tothxa) wrote:


And an afterthought, with consequences to this PR:
Weaving mills:
all_buildcosts_weaver_combined.png

This shows that it may be better to not increase its cost so much after all. Also its image is more like the vineyard, so I adjusted it accordingly. See next commit.

@bunnybot bunnybot added the ci:success CI checks succeeded label Jan 15, 2025
@bunnybot
Copy link
Author

tothxaMirrored from Codeberg
On Wed Jan 15 02:03:28 CET 2025, Tóth András (tothxa) wrote:


Updated graph and all_buildcosts.csv for weaving mill:
all_buildcosts_weaver_combined.png

@bunnybot bunnybot added ci:success CI checks succeeded and removed ci:success CI checks succeeded labels Jan 15, 2025
@bunnybot bunnybot added ci:success CI checks succeeded and removed ci:success CI checks succeeded labels Jan 15, 2025
@bunnybot
Copy link
Author

bunnybot commented Jan 16, 2025

tothxaMirrored from Codeberg
On Thu Jan 16 02:13:01 CET 2025, Tóth András (tothxa) wrote:


There are a few points where I'm undecided:

  • the above question of returning marble columns or marble blocks only (went for minimal change)
  • blockhouse radius: with 5 it's a bit expensive again, with 6 it feels like an unfair advantage that they get to be so fast with small sites too... Maybe the cost should be changed to 1 planks and 2 logs instead? Returns 1 planks and 1 log? But then enhancement should only cost 1 granite (also returned). Is that OK? But 2 planks looks more logical and makes enhancement and returns straightforward.
  • brewery: my thinking was that the difference from bakery would be 1 granite less and 1 planks more for oven→barrel. But that makes it almost the most expensive of bakeries and breweries (bakery is near or just above average), so I changed it to 1 log more instead. But that's not right for the barrel.

@bunnybot
Copy link
Author

frankystoneMirrored from Codeberg
On Thu Jan 16 11:50:48 CET 2025, frankystone wrote:


I am not really familiar with the subject but want to give my 2 cents anyway:

<@>tothxa you spend a lot of time into this. I didn't looked in detail at your calculations, so i can't say if all circumstances which affect balancing are taken into account. Balancing in regard to "create soldiers" is a task of it's own and balancing in regard to "train soldiers" is another task of it's own. Anyway both tasks are standing at the end of a more or less complicated production chain and i guess this needs probably a bit more than comparing buildcosts.

Since i always play Empire and never felt it was not balanced (my tournament results were always satisfying for me), and i can't remember anyone complaining about the Empire tribe i wonder why it suddenly should not be balanced. As already mentioned elsewhere balancing is also map specific: If i play empire although the map, or the starting position, does not apt for Empire, it's my fault if i loose the game, not the fault of the tribe.

I fear such a big change like in this pr will sooner or later produces a "balancing war", where a change in this tribe will need a change in tribe y which then needs a change in tribe x which then needs a change in tribe z, and so on. So i am more on <@>hessenfarmer s side to make small changes and see how this change affects balancing.

@hessenfarmer
Copy link
Contributor

In fact this PR would create a new tribe, as it changes that much of the empire. We were always very cautious by changing our "legacy" tribes in a fundamental way for good reasons.
Furthermorte from my perspective it mixes the economic balance topic with personal felt harmonistaion needs in the tribe and towards other tribes. To solve this finally we easily might end up eith the situation of Settlers2 where the differences between the tribes were only in graphics, which we explicitly didn't want in the past.
So for me the only issue which might need some improvement might be the demand for marble due to marble being somewhat difficult or expensive to obtain.
So I might agree to reduce the cost of marble columns to 1 marble. and skip all other changes except making the marble mines respecting the economy settings properly.

@bunnybot
Copy link
Author

tothxaMirrored from Codeberg
On Thu Jan 16 19:33:53 CET 2025, Tóth András (tothxa) wrote:


OK, I'm already working on breaking this down to several separate PRs for easier reviewing. Though they should be evaluated together (this PR ;) to assess the overall effect on balancing, and also to not have to do it all over again for each one separately.

In fact this PR would create a new tribe, as it changes that much of the empire. We were always very cautious by changing our "legacy" tribes in a fundamental way for good reasons.
[...] I might agree to reduce the cost of marble columns to 1 marble. and skip all other changes except making the marble mines respecting the economy settings properly.

Uh... The marble column change is the most "fundamental" one here. (and 90% of the rest is cleanup made possible by it, most of it actually strengthening the character of the tribe)

Please have a look at the diffs (commit by commit makes it easier already) before dismissing this PR as too big, or as:

To solve this finally we easily might end up eith the situation of Settlers2 where the differences between the tribes were only in graphics, which we explicitly didn't want in the past.

because this is nowhere near that.

What I'm trying to achieve with my balancing PRs is that the choice of tribes shouldn't put neither player at an obvious advantage or disadvantage in tournaments, so that we could see bigger variety in the use of the tribes.

@bunnybot
Copy link
Author

tothxaMirrored from Codeberg
On Thu Jan 16 22:48:40 CET 2025, Tóth András (tothxa) wrote:


As you can see, the partial PRs are up. (except for the blockhouse, which is way too tough to solve for the building's importance, but also too annoying to leave alone)

I also created a branch merging all of them, so you can check that they stay in sync with this one. I'd rather not pollute our PRs further with it though...

@bunnybot
Copy link
Author

tothxaMirrored from Codeberg
On Thu Jan 16 23:27:21 CET 2025, Tóth András (tothxa) wrote:


i can't say if all circumstances which affect balancing are taken into account. Balancing in regard to "create soldiers" is a task of it's own and balancing in regard to "train soldiers" is another task of it's own. Anyway both tasks are standing at the end of a more or less complicated production chain and i guess this needs probably a bit more than comparing buildcosts.

It's already known that Empire soldiers are among the more expensive ones, and still they are the second weakest. So it's really unfair that the buildcosts of the Empire are so extremely bad too. (not even speaking of the number and total cost of all buildings needed to be able to start mining, where the Empire is among the harder tribes too)

But the differences of soldier costs and strengths are much smaller, so acceptable. (the strength balance is also way too delicate, as the fight simulator shows)

Since i always play Empire and never felt it was not balanced (my tournament results were always satisfying for me),

But you can also see from the tournaments that players who pick their tribe for strength only choose the Empire when an early colosseum can be decisive.

and i can't remember anyone complaining about the Empire tribe

I believe there had been a lot of discussion of the very high demand for marble, and that it's a serious drawback of the Empire.

As already mentioned elsewhere balancing is also map specific: If i play empire although the map, or the starting position, does not apt for Empire, it's my fault if i loose the game, not the fault of the tribe.

These changes certainly don't eliminate the need for good stone resources, only lessen it a little. :)

I fear such a big change like in this pr will sooner or later produces a "balancing war", where a change in this tribe will need a change in tribe y which then needs a change in tribe x which then needs a change in tribe z, and so on.

I made sure to keep them still depend on marble (preferably from mines, otherwise requiring a lot of rocks) and to keep their buildcosts still among the more expensive ones for each category, exactly to avoid starting such a "balancing war".

Just like the Amazon PR tries to lessen a huge unfair advantage, this one tries to lessen a huge unfair disadvantage. Neither one wants to eliminate it altogether.

purpose = pgettext("empire_building", "Carves marble columns out of marble.")
purpose = pgettext("empire_building", "Carves marble columns out of marble."),
-- TRANSLATORS: Performance helptext for an Empire production site: Stonemason’s House
performance = pgettext("empire_building", "The stonemason needs %s on average to produce one marble column."):bformat(format_minutes_seconds(1, 36))
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NordfrieseMirrored from Codeberg
On Sun Jan 12 09:22:56 CET 2025, Benedikt Straub (Nordfriese) wrote:


Missing period at end of sentence

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

balancing & gameplay Tribes' statistics & mechanics ci:success CI checks succeeded economy Ware priority & transport, worker creation & assignment, requests & supplies, trading & markets empire One of our tribes tribes Buildings, wares, workers, ships, ... under discussion There is no consensus about a critical point yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants