Economy Crop hopper change.

Discussion in 'Server Gameplay Suggestions' started by KhalDrogo, Nov 4, 2023.

  1. KhalDrogo
    Offline

    KhalDrogo Senior Member

    Joined:
    Sep 22, 2015
    Messages:
    2,777
    IGN:
    Drogo
    It's well know that Eco TPS is not good. Much worse than Skyblock and I can only assume that is due to the large scale farms we have. In time, they are only going to get bigger and more abundant.

    Every crop has a chance to grow every tick and that needs to be calculated so for a server with many millions of crops, there must be considerable effort in calculating all that.

    The suggestion/question is, that rather than having croppers collect crops as they grow randomly and then sell them, can croppers instead, disable crop growth (of the type it collects) in the chunk they are placed in and then just use the total number of crops in that chunk, and the average growth times of crops to work out what the yield is likely to be per second or per minute and just pay the owner that amount.

    A 7x7 wheat farm of 22 layers would have roughly 275,000 crops, so rather have the server processing all the growth chances, the change in stages, etc of 275,000 crops, every tick, it just uses the number of crops in that chunk and performs one calculation per second (or per minute).

    From a player view point, it would appear almost the same as it is now except we wont see the crops changes state and there would be no variance in the income, except where croppers are not in range of the player or changes due to the fluctuating sell price of those crops. We would still have to build the farm so it would cost the same and take the same effort it does now to get established.

    I've only looked at one source for the below information so it might not be 100% accurate but the idea would be the same.
    Each wheat crop takes on average 37200 ticks to grow to maturity which is 1860 seconds if TPS is at 20.
    So if a chunk has 1860 wheat crops, we assume it will grow one every second. If it has 3720 wheat crops, it will grow 2 per second and that chunk will max out at 3 per second when it has 5580 wheat crops in it.

    So the calculation per second would simply be:
    number_of_crops/seconds_to _mature*current sell price.
    This will obvioulsy max out at 3*current_sell_price due to croppers only collecting 3 per second.

    The number of crops isn't going to change a whole lot so this would only need to be checked every 30 minutes. New crops would need some time to reach maturity anyway so no real loss to players for having newly planted crops not counted.

    We would lose some variability in crop growth due to conditions such as moisture levels and light levels but we might all care to live with that if it improves TPS.
     
    • Support Support x 1
    • Neutral Neutral x 1
    • No Support No Support x 1
  2. Skylandia
    Offline

    Skylandia Active Member

    Joined:
    Dec 31, 2018
    Messages:
    444
    IGN:
    Skylandia
    Some issues I see
    • Checking chunks for crops would cause lag
    • Ignoring data other than the number of crops in the chunk would cause significant changes in farm design
      • Sugarcane/cactus farms could have a block immediately above the crop, since it would not check for growing space
      • melon/pumpkin farms could be made from entire layers of tilled dirt, with no regard to alternating crops, surrounding farmland (significant difference for those who tile with moss), or even having an empty space for the melon/pumpkin to grow.
      • wheat farms would grow at a fixed rate, meaning rows of wheat would yield half that of a full field
    • Stifle innovative ideas such as using bonemeal or bees to advance crop age
     
  3. KhalDrogo
    Offline

    KhalDrogo Senior Member

    Joined:
    Sep 22, 2015
    Messages:
    2,777
    IGN:
    Drogo
    Yeah, I'm aware of all that, but to be honest a server based around massive farms is not a great idea and something needs to be done to improve TPS.
    Checking chunks for crops only need be done every 30 mins or so. It's already checking for maturing crops every tick I suspect and I don't know if that doesn't involve checking all crops anyway.
    I don't think anyone is using bonemeal or bees to the scale of cropper farms and improved TPS would likely outweigh any benefit of that.
     
  4. Skylandia
    Offline

    Skylandia Active Member

    Joined:
    Dec 31, 2018
    Messages:
    444
    IGN:
    Skylandia
    Given that there are already noticeable lag spikes when tax happens, and that checking crops would be a much more costly computation, there'd end up being a much larger lag spike when checking crops in a chunk.

    Instead of checking all blocks for mature crops (likely a very costly computation), it probably intercepts the growth method of certain crops in crop hopper chunks (much cheaper), which I don't think contributes to lag at all.

    Bonemeal could be a consideration when hostile (skeleton) spawners are added. Not a thing currently but we are looking at the future of the server after all.
     
  5. KhalDrogo
    Offline

    KhalDrogo Senior Member

    Joined:
    Sep 22, 2015
    Messages:
    2,777
    IGN:
    Drogo
    This could be staggered to remove spikes.


    Whether it be the crop growth, the calculations or both I suspect it contributes largely to constant poor TPS,
    One lag spike every 30 minutes is more desirable than a constantly low TPS
    I won't bother with hypotheticals, this was a questions as much as a suggestion and Dex will consider the facts.

    Maybe, I don't see this being done large scale though. The redstone to automate it would be costly.
     
  6. AJZZ987
    Offline

    AJZZ987 Active Member

    Joined:
    Sep 22, 2022
    Messages:
    225
    IGN:
    AJZZ987
    If*
     
    • Agree Agree x 1
    • Cookie Cookie x 1
  7. Timmut
    Offline

    Timmut Experienced Member

    Joined:
    Dec 30, 2012
    Messages:
    282
    IGN:
    BigChiefTim
    I put support, but honestly I don't know enough about this to understand if it would make tps/lag better or worse. What I do know is that something needs to be done about the poor server performance, because my farm is only making a fraction of what it should be. Any change seems good at the moment.
     
    • Disagree Disagree x 1
  8. KhalDrogo
    Offline

    KhalDrogo Senior Member

    Joined:
    Sep 22, 2015
    Messages:
    2,777
    IGN:
    Drogo
    I don't claim to know enough either, but if it's viable then I guess Dex will answer that.
     

Share This Page