TechReborn / RebornStorage

Adding some long lost things back into RefinedStorage
MIT License
29 stars 21 forks source link

New crafting speed scaling doesn't feel good. #136

Closed DarkHelmet433 closed 2 years ago

DarkHelmet433 commented 5 years ago

While I greatly appreciate the new speed options, the default tuning seems alarminglyout of sync with previous behavior/costs and is quite a long way behind the baseline refined storage counterparts.

I can take a pattern and add it to a crafter with 4 x speed upgrades and get a similar crafting speed to a 6x6x7 multiblock with 60-70 cpus. The material and space cost of the Reborn Storage way doesn't feel good to somebody who has used the previous versions of the mod. I concede that the old structure was too cheap for its speed, but this feels like a substantial over-correction.

Reborn Storage with 1 cpu is 1.5 times slower than a stock RS crafter. With 4 cpus, it is only 1.1x slower than a non upgraded RS crafter. 4 cpus use 8 speed upgrades in their construction. Meanwhile 4 of those 8 upgrades placed into a regular RS crafter results in 5 crafts every 2 ticks, or ~50 crafts per second. The multiblock's speed of less than 2 crafts per second with a significantly greater material and power cost seems quite unreasonable in comparison.

I would like to be able to control the relationship of number crafting cpus to the interval separately to the ratio of cpus to maximumcraftingupdates. Could the craftingSpeed setting be split into two values please?

I personally would like to tune my worlds so that 4 cpus is comparable to a 4-speed-upgrade crafter, and each multiple of 4 cpus increases the concurrency by one. I'm thinking that I'd like 16 cpus to be comparable to one fully upgraded crafter.

Another option might be to add higher tier cpus. Perhaps a compressed crafting cpu, made from 3x3 crafting cpus that functions as 9 regular ones? The cost with the current recipes would still be prohibitively more expensive than regular RS crafter recipes but at least it wouldn't lead to as much of a gigantic multiblock.

I'll experiment with the code and see if I can find something that I like.

raoulvdberge commented 5 years ago

Do you have any suggestions for new calculations for RebornStorage?

modmuss50 commented 5 years ago

Thanks for opening an issue about this. Sadly I dont have enough time to play test stuff like this. I am totally open to suggestions for new calculations for this. I did add a config setting that can be changed if you do want to test out some quick changes.

I look forward to hearing your suggestions.

drunkripper commented 5 years ago

137 One of my ideas for it would be a exponential increase to decrease the amount of blocks needed.

yurikus commented 5 years ago

What we need here as faster than polynomial but slower than exponential growth for each CPU added. Let's consider this: Base single-cpu multiblock crafter would be slightly better than 1 regular crafter with 4 speed upgrades due to resources required: Update interval is frozen at 1, which doesn't skip turns. Max crafting updates becomes (we round up): e^(sqrt((cpu_count+1) * 2)) = 2.78^(sqrt(4)) = 8

With this in mind, here's what excel gives me, IMHO a very nice balanced progression:

Core count: 1 2 3 4 5 6 7 8 9 10
Crafts: 8 12 17 24 32 43 55 70 88 109

Also gain (*2) and bias (+1) should be in config

See code refs below.

Reborn: https://github.com/TechReborn/RebornStorage/blob/73be497364002968dd01a7ec7862fc7c1b1681ee/src/main/java/me/modmuss50/rebornstorage/tiles/CraftingNode.java#L281-L293

Refined:

@Override
    public int getUpdateInterval() {
        switch (upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED)) {
           ............
            case 4:
                return 2;
           ............
        }
    }

    @Override
    public int getMaximumSuccessfulCraftingUpdates() {
        switch (upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED)) {
           ............
            case 4:
                return 5;
           ............
        }
    }
yurikus commented 5 years ago

Ping @raoulvdberge @modmuss50, what's the verdict?

modmuss50 commented 5 years ago

I am aware of this, how ever I have been busy with other things, I will get to it soon.

techied commented 5 years ago

+1 for this change. I just built a near-max size crafter in my survival world (16x14x16) with only 9 crafting storage, all the rest CPUs, and it feels painfully slow with all the resources and power that are going into it.

adam6806 commented 5 years ago

+1 for this change. I just built a near-max size crafter in my survival world (16x14x16) with only 9 crafting storage, all the rest CPUs, and it feels painfully slow with all the resources and power that are going into it.

Totally agree! I got finished building this huge multiblock (within the prescribed limits of course) and spending all this time bootstrapping up to it and was like.... But where is the speed? I thought I had messed something up so I rechecked everything and ran around putting speed and stack upgrades on everything I could find but alas the joy was nowhere to be found. I was hoping to see something in the changelogs about it but I'm glad to see that it's been acknowledged. Just tell me how big I need to make it for insane crafting speed and I'll do it!

zhykzhykzhyk commented 5 years ago

I think the default configuration is the problem. According to the default setting, every 75 cpu gives the speed of 1 crafter with 4 speed upgrade, and change the crafting speed to 1 still have a 5x gap compare with the resource spent on the cpus. The exponential formula given by @yurikus would give the speed of 2e39 crafters at the maximum size, and would cause problem (likely crashing) when users’ computer trying to simulate this.

zhykzhykzhyk commented 5 years ago

Just apply the 75x change could make the 4x4x4 array of cpus have the faster speed compare to 16x16x16 cpus on current default settings.

MCdonut commented 3 years ago

The craftingSpeed setting defaults at 15. Does anyone know a good setting to put it at to have behavior similar to the 'old' way? I want it to be speedier but reasonably so.

gigabit101 commented 2 years ago

These values have been adjusted in the 1.18.2 version (Coming soon)