Page MenuHomeWildfire Games

[gameplay] replace corral technology
Needs ReviewPublic

Authored by Nescio on Sep 3 2020, 8:21 PM.

Details

Reviewers
borg-
Feldfeld
wraitii
Silier
Group Reviewers
Balancing
Summary

As pointed out at https://code.wildfiregames.com/D1351#55435 and the subsequent post, the gather_animals_stockbreeding.json technology is a must-have for everyone who intends to gather food from batch-training animals from corrals (and useless for everyone else), therefore it's better to simply deprecate the technology and reduce the base time cost of domestic animals.
D3301/rP24527 changed the costs, time, health, and food values of domestic animals.

This patch:

  • replaces the −25% domestic animal training time with −0.1 corral batch training time;
  • renames the technology file accordingly;
  • changes the corral's default <BatchTimeModifier> from 0.7 to 0.8 (same as barracks or stable);
  • lowers the time cost of the goat, ship, and pig, but not of cattle, which are already much more profitable.

The food-to-time ratios with this patch are:

goat  :  (70 -  35) / 25 s = 1.4
sheep : (100 -  50) / 30 s = 1.667
pig   : (150 -  75) / 40 s = 1.875
cattle: (300 - 150) / 60 s = 2.5
Test Plan

Check for mistakes, agree with the changes.

Event Timeline

Nescio created this revision.Sep 3 2020, 8:21 PM
Owners added a subscriber: Restricted Owners Package.Sep 3 2020, 8:21 PM
Nescio requested review of this revision.Sep 3 2020, 8:26 PM
bb added a subscriber: bb.Sep 3 2020, 9:33 PM

Instead of nuking the tech, I think there are some other option that should be considered (also combinations):

  • Buff phase requirement to town/city
  • Buff costs (50 food one can do before the first animal, higher amounts maybe not)
  • Split in several parenting techs

One should also ask why one always does the tech: probably the answer is that building more corrals takes more resources/time than doing the simple tech. So that is where one can balance it against.

Silier requested changes to this revision.Dec 2 2020, 1:22 PM
Silier added a subscriber: Silier.

I do not see how technology be worth only to players which make use of its effect is reason to remove it.
You can say the same for whole bunch of technologies for siege, melee and ranged units.
There is also technology to speed up batch training in barracks (or so), is it also must-have and by this logic should be removed be removed because it is worth only to players using batch training?

This revision now requires changes to proceed.Dec 2 2020, 1:22 PM
borg- added a subscriber: borg-.Dec 22 2020, 6:27 PM

Any ideas on how to make it more useful?

Nescio updated this revision to Diff 15103.Jan 10 2021, 5:07 PM
Nescio retitled this revision from [gameplay] deprecate animal technology to [gameplay] replace corrak technology .
Nescio edited the summary of this revision. (Show Details)
Nescio removed a subscriber: Restricted Owners Package.
  • replace technology with one that lowers corral batch training time
Owners added a subscriber: Restricted Owners Package.Jan 10 2021, 5:07 PM
Nescio retitled this revision from [gameplay] replace corrak technology to [gameplay] replace corral technology .Jan 10 2021, 5:08 PM
Nescio removed a subscriber: Restricted Owners Package.

Build is green

builderr-debug-macos.txt
ld: warning: text-based stub file /System/Library/Frameworks//CoreAudio.framework/CoreAudio.tbd and library file /System/Library/Frameworks//CoreAudio.framework/CoreAudio are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox.tbd and library file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//ForceFeedback.framework/ForceFeedback.tbd and library file /System/Library/Frameworks//ForceFeedback.framework/ForceFeedback are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//CoreVideo.framework/CoreVideo.tbd and library file /System/Library/Frameworks//CoreVideo.framework/CoreVideo are out of sync. Falling back to library file for linking.
ld: warning: text-based stu

See https://jenkins.wildfiregames.com/job/macos-differential/2749/display/redirect for more details.

borg- added a comment.Jan 10 2021, 9:10 PM

I prefer than removal. The changes are good, I would risk high values like 15% and cost like 200 food.

I prefer than removal. The changes are good, I would risk high values like 15% and cost like 200 food.

Due to the way batch training works, I'd rather not lower the batch time modifier below 0.7.
How about lowering the base training times of domestic animals instead? And if so, to how much?

borg- added a comment.EditedJan 10 2021, 11:01 PM

I prefer than removal. The changes are good, I would risk high values like 15% and cost like 200 food.

Due to the way batch training works, I'd rather not lower the batch time modifier below 0.7.
How about lowering the base training times of domestic animals instead? And if so, to how much?

In that case I prefer to keep 10%.

Freagarach added inline comments.
binaries/data/mods/public/simulation/data/technologies/corral_batch_training.json
3

I'd actually suggest not naming all, to avoid it being unclear/incomplete at some point. E.g. sheep, goats, etc..

borg- accepted this revision.Jan 19 2021, 5:55 PM

I prefer Cost / BuildTime instead of ProductionQueue / BatchTimeModifier, however for this patch I prefer ProductionQueue. The reason is that in a23 the players build like 10 corrals to train many animals at the same time, I think that with ProductionQueue / BatchTimeModifier the tendency is to decrease a little since to a gradual reduction.

Feldfeld requested changes to this revision.Jan 19 2021, 6:07 PM
Feldfeld added a subscriber: Feldfeld.

This patch nerfs corralling to the ground (and it was already difficult and arguably subpar against farming). There needs to be some compensation, like reducing base animal training stats by quite a bit (like the values after researching the technology that is getting removed)

This revision now requires changes to proceed.Jan 19 2021, 6:07 PM
borg- added a comment.Jan 19 2021, 6:09 PM

@Feldfeld would a reduction like 0.2 be acceptable?

Nescio updated this revision to Diff 15533.Jan 19 2021, 6:43 PM
Nescio edited the summary of this revision. (Show Details)
  • reduce domestic animal training times, per @Feldfeld
Owners added a subscriber: Restricted Owners Package.Jan 19 2021, 6:43 PM

Build is green

builderr-debug-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libsimulation2_dbg.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics_dbg.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libatlas_dbg.a(precompiled.o) has no symbols
ld: warning: text-based stub file /System/Library/Frameworks//CoreAudio.framework/CoreAudio.tbd and library file /System/Library/Frameworks//CoreAudio.framework/CoreAudio are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox.tbd and library file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox are out of sync. Falling back to library

See https://jenkins.wildfiregames.com/job/macos-differential/2973/display/redirect for more details.

It could work, although i'd prefer 25%, but I think an additionnal problem with this approach is that train time values are supposed to look good in the beginning if you see what I mean

It could work, although i'd prefer 25%, but I think an additionnal problem with this approach is that train time values are supposed to look good in the beginning if you see what I mean

Could you elaborate? I'm confused now, 25% of what? And 20 to 40 s looks better than 30 to 60 s, doesn't it?

(and it was already difficult and arguably subpar against farming)

Currently cavalry's meat gather rate is 20× (yes) infantry's grain gather rate.

Could you elaborate? I'm confused now, 25% of what? And 20 to 40 s looks better than 30 to 60 s, doesn't it?

When writing this post I didn't see that you already modified the patch, but I meant a 25% reduction from animals original training time.
Now the new values are a buff of corrals, which I'm good with. However I don't know the stance of other players about it.

Currently cavalry's meat gather rate is 20× (yes) infantry's grain gather rate.

Yeah, but naturally there are other factors to relativize this, like having to invest half the food of what an animal would provide, and other things. In general corral economy is hard and a bit slow to set up, but when it comes to the lategame it becomes quite fast and pop efficient.
In a24 before the economy tech effect reduction patch I proposed, a player could be floating food by just having something like 7 fields.
I would say in the current state in a24 it is very difficult for a player to setup a corral economy and remain competitive with it. It requires near perfect economy management. I could do it in one of the few games I played in a24, however I am not sure many players would be able to. But if a player has objections with what I just said I could understand.

(also not relevant since already a few things changed in a24, like the introduction of new animal types, but corrals were almost never used in a23 multiplayer)

Thank you for the clarification!
So the new values are acceptable to you?

For the record, the new food-to-time values for single animals are:

goat  :  (70 -  35) / 20 = 1.75
sheep : (100 -  50) / 25 = 2
pig   : (150 -  75) / 30 = 2.5
cattle: (300 - 150) / 40 = 3.75

Maybe cattle time ought to be raised to 45 s (i.e. a 3.333:1 ratio).

Indeed they are, I rather like it, but since this patch goes a little bit against my policy which is to be careful of patches that could change balance in a not 100% known way just before balancing freeze, I would invite other players to state if they feel it's dangerous

Oh and yes, I think it would be a good call to raise cattle time like you said

Nescio updated this revision to Diff 15540.Jan 19 2021, 8:26 PM
  • cattle time to 45 s, as discussed with @Feldfeld
Silier resigned from this revision.Jan 19 2021, 8:30 PM

Build is green

builderr-debug-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics_dbg.a(precompiled.o) has no symbols
ld: warning: text-based stub file /System/Library/Frameworks//CoreAudio.framework/CoreAudio.tbd and library file /System/Library/Frameworks//CoreAudio.framework/CoreAudio are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox.tbd and library file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//ForceFeedback.framework/ForceFeedback.tbd and library file /System/Library/Frameworks//ForceFeedback.framework/ForceFeedback are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//CoreVideo.framework/C

See https://jenkins.wildfiregames.com/job/macos-differential/2978/display/redirect for more details.

Feldfeld accepted this revision.Jan 20 2021, 8:41 AM

Good for me.
The reason I want to see this in a24 is that it will act as a buff to corraling, encouraging players to consider this option.

This revision is now accepted and ready to land.Jan 20 2021, 8:41 AM

I had this error on applying the patch:

ERROR: File 'simulation/data/technologies/corral_batch_training.json' does not exist

ERROR: Errors executing script event "SelectionChange"

ERROR: JavaScript error: gui/reference/common/TemplateLoader.js line 267 this.loadTechnologyTemplate(...) is undefined isPairTech@gui/reference/common/TemplateLoader.js:267:17 deriveProductionQueue@gui/reference/common/TemplateLoader.js:142:14 deriveTemplateListsFromTemplate@gui/reference/common/TemplateLister.js:121:43 compileTemplateLists@gui/reference/common/TemplateLister.js:39:21 setActiveCiv@gui/reference/common/ReferencePage.js:26:51 selectCiv@gui/reference/structree/StructreePage.js:47:8 onSelectionChange@gui/reference/common/Dropdowns/CivSelectDropdown.js:26:11 CivSelectDropdown/this.civSelection.onSelectionChange@gui/reference/common/Dropdowns/CivSelectDropdown.js:18:52 selectFirstCiv@gui/reference/common/Dropdowns/CivSelectDropdown.js:58:3 init@gui/reference/structree/structree.js:13:23 onPress@gui/pregame/MainMenuItems.js:32:13 performButtonAction@gui/pregame/MainMenuItemHandler.js:77:9 pressButton@gui/pregame/MainMenuItemHandler.js:63:10

I don't know if I did something wrong or if this needs a rebase.

It seems it missed the file rename. How did you apply the patch? arc patch D2988 works fine on my end, I'm not experiencing any errors.

I used svn's context menu on windows.
I asked someone else and they also could apply the patch just fine so no problem.

wraitii added a subscriber: wraitii.EditedJan 20 2021, 6:49 PM

Here's the math for the base gather rate:
Cav 5/s gather rate & good dropside ~ 3/s real gather rate -> +150f in 100s -> 1.5f/s/cav.

This is higher than what can be achieved with fields by a certain distance, since those top-out at 0.76 right now.

A single corral producing at 2 cows batch can provide continuous food for 2 cav per the above maths, which means you can get a real gathering rate of 1.5f/s with a food buffer starting at 300F (one corral, 2 cows), and then expand from there. You don't really have to do much expect make sure the corral is regularly topped up, which can be done somewhat easily with a control group.

If we batch, let's say, 10 cows, we get a 50% training time reduction which bumps the # of cav to 4 per corral, or a total per-corral rate of 6f/s. Above that, I think pathfinder concerns will decrease efficiency sufficiently that it's no longer worth it.

Here's a nifty little setup I get 1.56f/s/cav here (+750F in 2 minutes)


If you use that and manage to never let go, you basically double your food efficiency over fields.


I guess I'm not sure this patch really changes much, but I think corrals might actually be overpowered, just tricky to use right.

wraitii requested changes to this revision.Jan 20 2021, 7:27 PM

Given that fields were comparatively weakened in A24 with the last-tech gather-rate reduction, I don't think it's a good idea to buff corral further, TBH.
They're arguably much more efficient than fields, just hard to setup because they require a rather stable economy (they're basically a ponzi scheme).

I fear this might make them viable, and then we'll end up having to micro corrals to play 0 A.D. properly, which just sounds frustrating.

This revision now requires changes to proceed.Jan 20 2021, 7:27 PM
Nescio added a comment.EditedJan 20 2021, 8:45 PM

The initial version of this patch just replaced the technology, without lowering the animal time. At the request of @Feldfeld, animal times were later reduced by 25% (cattle) to 40% (pig). The profitability after researching the technology is effectively the same what is right now, without this patch.

(they're basically a ponzi scheme)

That's something quite different.

Nescio edited the summary of this revision. (Show Details)Jan 20 2021, 8:55 PM
Nescio removed a subscriber: Restricted Owners Package.

For comparison, the numbers in A23:

without technology:
  domestic animal: (100 - 50) / 35    s = 1.43

with technology:
  domestic animal: (100 - 50) / 26.25 s = 1.9

Currently the numbers in A24 are (without this patch):

without technology:
  goat  :  (70 -  35) / 30   s = 1.167
  sheep : (100 -  50) / 40   s = 1.25
  pig   : (150 -  75) / 50   s = 1.5
  cattle: (300 - 150) / 60   s = 2.5

with technology:
  goat  :  (70 -  35) / 22.5 s = 1.556
  sheep : (100 -  50) / 30   s = 1.667
  pig   : (150 -  75) / 37.5 s = 2
  cattle: (300 - 150) / 45   s = 3.333

How about keeping cattle at 60 s, but lowering the rest slightly?

goat  :  (70 -  35) / 25 s = 1.4
sheep : (100 -  50) / 30 s = 1.667
pig   : (150 -  75) / 40 s = 1.875
cattle: (300 - 150) / 60 s = 2.5
Nescio updated this revision to Diff 15771.Jan 29 2021, 5:37 PM
Nescio edited the summary of this revision. (Show Details)
  • keep cattle at 60 s
Owners added a subscriber: Restricted Owners Package.Jan 29 2021, 5:37 PM

Build is green

builderr-debug-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libnetwork_dbg.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/liblobby_dbg.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libengine_dbg.a(precompiled.o) has no symbols
ld: warning: text-based stub file /System/Library/Frameworks//CoreAudio.framework/CoreAudio.tbd and library file /System/Library/Frameworks//CoreAudio.framework/CoreAudio are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox.tbd and library file /System/Library/Frameworks//AudioToolbox.framework/AudioToolbox are out of sync. Falling back to library file

See https://jenkins.wildfiregames.com/job/macos-differential/3119/display/redirect for more details.