Open evgengoldwar opened 6 months ago
31 31 0 wheat gives ~1.3/sec vanilla wheat seeds gives 155/sec kobold in EEC gives ~12/sec
each mechanism is powered by luv amp eec have sword with 4 looting and 4 sharpness greenhouses without fertilizers (eec doesn't consume anything else either)
Why is the hardest path through deducing the best stats for crops the most useless?
Try vanilla wheat seeds in the eig at an luv amp. That'd be 4 stacks of wheat seeds on a luv amp, iirc. It should produce way more than ic2.
Ic2 crops aren't necessarily for crops like wheat or barley or redstone or wood, they have better alternatives in vanilla crops or in a whole different multi. Instead the eig is more for metal crops like Argentina or coppon that 4x your ores for mere water and power. Or even for salty root when you don't have access to pumping salt water or chloro benzene. Black granite too and endstone too. Eig has its niches, and so does the eec.
30 minutes test Greenhouse , WorldAccelerator and Crop Manager all luv tier .
iv WA , lv crop manager and crop wheat 1 1 1
iv WA , lv crop manager and crop wheat 23 31 0
Luv greenhouse and 4 crop 1 1 1
Luv greenhouse and 4 crop 23 31 0
Luv greenhouse and vanilla wheat 64
Luv greenhouse and vanilla wheat 256
Luv crop manager crop 1 1 1
Luv crop manager crop 23 31 0
Why is it that when I up tier, a greenhouse opens for me, I use it but get worse efficiency than with the field and spend 10 times more energy. Using world accelerator I will get more output than with greenhouse
out of curiousity, in term of lag, what's the tick time of each? (check with the portable scanner)
out of curiousity, in term of lag, what's the tick time of each? (check with the portable scanner)
All crop manager -- +- 1100ns
WA crop 23 31 0 -- +- 17100ns WA crop 1 1 1 -- +- 8100ns
Greenhouse crop 23 31 0 -- +- 2000ns Greenhouse crop 1 1 1 -- +- 6000ns
Greenhouse vanilla crop 256 -- +- 900ns Greenhouse vanilla crop 64 -- +- 900-2500ns
https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/12064 I'll put this here
Non-ic2 crops are always faster than ic2 crops. This is not specific to the Greenhouse. Its the same without Greenhouse.
The point of ic2 crops is that it can get a lot of stuff that regular crops cant do. various metals, sticky resin, salty roots, uum berries, ghast tears, primordial pearls, etc. But if you have a regular crop that does the same, you should always pick that one over the ic2 option if you are optimizing the speed. This has nothing to do with EIC.
Non-ic2 crops are always faster than ic2 crops. This is not specific to the Greenhouse. Its the same without Greenhouse.
The point of ic2 crops is that it can get a lot of stuff that regular crops cant do. various metals, sticky resin, salty roots, uum berries, ghast tears, primordial pearls, etc. But if you have a regular crop that does the same, you should always pick that one over the ic2 option if you are optimizing the speed. This has nothing to do with EIC.
Why is greenhouse the worst way to grow ic2 crops even though it spends 10 times more eu and fertilizer and available from luv tier -_-
WA is not an option if you want to optimise your base lag. crop manager is here for the breeding part, greenhouse is here for the industrial scaling of crop farming. You can compare 1 crop in all the scenarii, but i assure you that when you start to spam crops on a very large scale, the greenhouse wins easily. So we are not going to change the balance because someone wants to exploit the greenhouse in its weakspot.
WA is not an option if you want to optimise your base lag. crop manager is here for the breeding part, greenhouse is here for the industrial scaling of crop farming. You can compare 1 crop in all the scenarii, but i assure you that when you start to spam crops on a very large scale, the greenhouse wins easily. So we are not going to change the balance because someone wants to exploit the greenhouse in its weakspot.
WA was taken for testing because even it is better than greenhouse. the greenhouse is worse than anything there is for crops
As said, you only compare for a handful of crops, do it on thousand of crops simultaneously, and you'll see the greenhouse is far superior.
As said, you only compare for a handful of crops, do it on thousand of crops simultaneously, and you'll see the greenhouse is far superior.
space plant crop gave me 3 seeds per luv tier in an hour -_-
a greenhouse with top stats 23 31 0 worse than a field with stats 1 1 1
As said, you only compare for a handful of crops, do it on thousand of crops simultaneously, and you'll see the greenhouse is far superior.
So you are saying EIG is supposed to be used for ic2 crops past UEV because that's when it gets 1024 crop capacity. EIG in IC2 mode is terrible when compared to other methods of resource generation. I can't speak for late game tiers but it is very underwhelming in IV and LuV tiers. Giving it 32k eu/t in IV tier just to get 8 endstone dust in 5 seconds, with 31 31 0 stats.
As said, you only compare for a handful of crops, do it on thousand of crops simultaneously, and you'll see the greenhouse is far superior.
So you are saying EIG is supposed to be used for ic2 crops past UEV because that's when it gets 1024 crop capacity. EIG in IC2 mode is terrible when compared to other methods of resource generation. I can't speak for late game tiers but it is very underwhelming in IV and LuV tiers. Giving it 32k eu/t in IV tier just to get 8 endstone dust in 5 seconds, with 31 31 0 stats.
ic2 mode was balanced very cool )))))))
Every time it comes up, endgame players say it's OP and it doesn't need a buff with their 16k crop capacity EIG but they don't consider early tiers
Every time it comes up, endgame players say it's OP and it doesn't need a buff with their 16k crop capacity EIG but they don't consider early tiers
Crops are useless after UV-UHV
They are useless past EV thanks to EIG being slow
They are useless past EV thanks to EIG being slow
If you use a crop manager, then the products are normal, but because of this you need to spam the fields, which is why the greenhouse was made to get rid of the spam of the fields, but no one gives a damn and its balance tends to 0
It seems to me that this can also be a problem for high tiers. I have a hypothesis that one uv crop manager may be better than an EIG of the same or higher tiers, I’ll try to check this now And therefore, nothing can stop players from spamming laggy fields, or WA to grow crops because they are more efficient, and I believe that simply banning a more laggy option (on servers for example) is rather incorrect game design, and we have to do something with EIG I apologize in advance if I'm wrong and talking nonsense, I need to check first
I agree with this, crops would have great potential with a well balanced greenhouse, but that balance just kills them compared to bees or meteors
@boubou19 I think this is worthy of your attention 0.5 h test , 23 31 1 steelleaf crop 1) Uv Tier EIG , 64 seeds 2)Uv Tier crop manager , 1520 seeds You can easily increase your production x2 by simply building another field on top (I was too buzy, but it’s possible) 3) Uev tier EIG , 1024 seeds (Ignore the seeds in the output chest )
As we can see, even UEV greenhouse cannot achieve output like one UV crop manager with two fields
We do not save space, because it is endless in the world of Minecraft, we do not save seeds, since they only cost UU-matter Doesn't the idea of a more productive source of resources, but which causes a huge amount of lag, seem like a game design mistake?
Because the only thing that limits players from doing uv crop manager is a direct ban (for example on servers), because any other options with eig are either more expensive (we need to spam a lot of multi-blocks with uv-tier energy hatches and glass), or unattainable (not many can get to uev energy hatch just for eig)
As said, you only compare for a handful of crops; do it on thousands of crops simultaneously, and you'll see the greenhouse is far superior.
I think you are failing to see the actual issue at hand:
EIG stats
tier: 7 | gr: 21 | ga: 31 | re: 0 | nu: 8 | hu: 12 | aq: 6
growth rate: 32
stats most people would try to go for for a viable crop manager setup tier: 7 | gr: 21 | ga: 31 | re: 0 | nu: 13 | hu: 20 | aq: 8 growth rate: 48
## It still assumes that all crops regrow from stage 1 and that all growth stages take the same amount of time as the final stage.
- https://github.com/GTNewHorizons/KubaTech/blob/075b8f644054e6684fc9682f6d07a0eb671ce1b5/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java#L1314
- Both assumptions are incorrect for a large number of crops and can significantly slow down some of them.
- A large number of crops have a significantly faster final stage as they only serve as a "do I have this block under me?" check.
- To determine the accurate amount of grow time, it should use `getSizeAfterHarvest` and properly cycle through every stage until it reaches the maximum size.
- I pointed this out to Kuba in Discord DMs 4 months ago.
![image](https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/assets/17766417/f7da65e4-3e31-4bc5-afcb-627076f8591c)
## At lower tiers, it has a pretty good chance of screwing you over because of how the EIG generates its outputs in IC2 Mode:
I have a plan to fix this issue, but I lack the interest to implement it. I don't see anyone ever OKing changes to the EIG that could benefit it and make it worth using.
Here is the rant I gave to Kuba a couple of months back about this issue:
- A player can, through no fault of their own, get completely screwed by RNG when inputting crops into an EIG for the following reasons:
- A seed may produce 0 drops due to rolling 0 as the drop count for all pre-generated harvests.
- A seed may never drop a secondary harvest if none of the pre-generated harvests ever hit it.
- A seed may only drop very low or very high amounts of a drop if the amount generated by getGain is random.
- A seed may drop 2 to 3x more items if it is lucky during the simulated harvests.
- Due to the random calls in CropTileEntity.calcGrowthRate(), a seed may grow slower or faster than expected.
- This is way more pronounced on higher-tier crops
- Since calcGrowthRate is not a function that should be changing anytime soon, we can use decompilations of IC2's code to make a version that averages out the randomness and correctly detects if a crop should be able to grow
it's still possible for a crop to succeed in growing even though, in the long term, it may die/reset due to just barely meeting the growth threshold
- **Due to the current implementation, players at lower tiers are much more likely to be affected by the issues mentioned above. due to the lower crop count**
---
# And here are more reasons why the EIG is just bad in general when using IC2 Crops
## It's actually dangerous in terms of NBT density and doesn't batch identical seeds together, Leading to a lot of wasted computations:
The EIG is incredibly NBT dense when using IC2 Crops, especially when it comes to higher tier ones:
Each item generates about 10 to 15 fake items worth NBT.
- A 16-slot (ZPM) EIG results in over 240 unique items stored in the EIG.
- This is because each seed needs to cache 10 outputs and create ~5 output trackers.
- This issue can be easily solved by more efficiently pooling identical crops into buckets and treating them as a single crop growing at a speed of `average_growth_rate * seed_count`
Again I have a good idea of how to fix this but lack the motivation for the reasons explained before.
---
# Appendix 1: Crop Growth Rate Calculator:
Here is the code used to calculate the minimum growth rate for a given seed given specific environmental variables. It was obtained by decompiling IC2. I removed the RNG and replaced it with minimum values since I was testing the minimum stats for a crop to grow:
```java
public class IC2Tester {
public static void main(String []args) {
String out = "";
out += "\n\n" + "EIG stats";
out += "\n" + check( 7, 21, 31, 0, 8, 12, 6);
out += "\n\n" + "stats most people would try to go for for a viable crop manager setup";
out += "\n" + check( 7, 21, 31, 0, 13, 22, 8);
System.out.println(out);
}
public static String check(int tier, int gr, int ga, int re, int nu, int hu, int aq) {
String out = String.format("tier: %2d | gr: %2d | ga: %2d | re: %2d | nu: %2d | hu: %2d | aq: %2d", tier, gr, ga, re, nu, hu, aq);
out += "\ngrowth rate: " + calcGrowthRate(tier, gr, ga, re, nu, hu, aq);
return out;
}
public static int calcGrowthRate(int tier, int gr, int ga, int re, int nu, int hu, int aq) {
int have;
// remove random and use average value to calculate, use 0 if you want to check if it can grow
int base = gr;
int need = (tier - 1) * 4 + gr + ga + re;
if (need < 0) {
need = 0;
}
if ((have = influ(nu, hu, aq) * 5) >= need) {
base = base * (100 + (have - need)) / 100;
} else {
// this only happens if we don't have enough
// resources to grow properly.
int neg = (need - have) * 4;
// if the negative is above 100, and the resistance fails
// the resistance stat check, the crop dies
if (neg > 100 /*&& IC2.random.nextInt(32) > this.statResistance*/) {
// crop stick is cleared, 0 is usually returned
// i'm returning -1 to indicate total failiure
return -1;
}
base = base * (100 - neg) / 100;
if (base < 0) {
// this simply prevents the crop from growing during the tick
return 0;
}
}
return base;
}
public static int influ(float nu, float hu, float aq) {
// Requires Tons of everything
return (int) ((double) nu / 1.0d + (double) hu / 1.0d + (double) aq / 1.0d);
}
}
As said, you only compare for a handful of crops; do it on thousands of crops simultaneously, and you'll see the greenhouse is far superior.
Nobody cares, even the ticket was closed
As said, you only compare for a handful of crops; do it on thousands of crops simultaneously, and you'll see the greenhouse is far superior.
I think you are failing to see the actual issue at hand:
At base, in IC2 mode, It spends 1A LuV of power and gets significantly outpaced by an MV crop manager with a ULV solar panel and an LV battery buffer.
- This means that in IV, where you unlock the ability to use the IC2 mode, using the IC2 is just a straight-up waste of power. From my in-game testing, I see that you need a UV tier EIG even to be able to compete with that MV crop manager.
- By the time you become able to use thousands of seeds, you usually have access to the Space Elevator and an highly over-clocked EIG, which will easily outpace it in every single resource generation scenario, except those that are crop-only that do not have a regular crop alternative like vines.
This means using IC2 crops in an EIG is always a severe waste of power regardless of your stage in the game.
Here are all the reasons why those issues exist:
It has environmental stats that are so bad that they actively hamper production speeds.
- https://github.com/GTNewHorizons/KubaTech/blob/075b8f644054e6684fc9682f6d07a0eb671ce1b5/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java#L1306
- See this post on the discord for a breakdown of all the stats and how to maximize them: https://discord.com/channels/181078474394566657/1206042280582975488/1206745238291611668
- A crop with the bare minimum stats given by the EIG might end up growing about 2x slower ( see the end of the post for the code I used to calculate this):
EIG stats tier: 7 | gr: 21 | ga: 31 | re: 0 | nu: 8 | hu: 12 | aq: 6 growth rate: 32 stats most people would try to go for for a viable crop manager setup tier: 7 | gr: 21 | ga: 31 | re: 0 | nu: 13 | hu: 20 | aq: 8 growth rate: 48
It still assumes that all crops regrow from stage 1 and that all growth stages take the same amount of time as the final stage.
- https://github.com/GTNewHorizons/KubaTech/blob/075b8f644054e6684fc9682f6d07a0eb671ce1b5/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java#L1314
- Both assumptions are incorrect for a large number of crops and can significantly slow down some of them.
- A large number of crops have a significantly faster final stage as they only serve as a "do I have this block under me?" check.
- To determine the accurate amount of grow time, it should use
getSizeAfterHarvest
and properly cycle through every stage until it reaches the maximum size.- I pointed this out to Kuba in Discord DMs 4 months ago.
At lower tiers, it has a pretty good chance of screwing you over because of how the crop manager generates its outputs in IC2 Mode:
I have a plan to fix this issue, but I lack the interest to implement it. I don't see anyone ever OKing changes to the EIG that could benefit it and make it worth using. Here is the rant I gave to Kuba a couple of months back about this issue:
- A player can, through no fault of their own, get completely screwed by RNG when inputting crops into an EIG for the following reasons:
- A seed may produce 0 drops due to rolling 0 as the drop count for all pre-generated harvests.
- A seed may never drop a secondary harvest if none of the pre-generated harvests ever hit it.
- A seed may only drop very low or very high amounts of a drop if the amount generated by getGain is random.
A seed may drop 2 to 3x more items if it is lucky during the simulated harvests.
Due to the random calls in CropTileEntity.calcGrowthRate(), a seed may grow slower or faster than expected.
This is way more pronounced on higher-tier crops
- Since calcGrowthRate is not a function that should be changing anytime soon, we can use decompilations of IC2's code to make a version that averages out the randomness and correctly detects if a crop should be able to grow it's still possible for a crop to succeed in growing even though, in the long term, it may die/reset due to just barely meeting the growth threshold
- Due to the current implementation, players at lower tiers are much more likely to be affected by the issues mentioned above. due to the lower crop count
And here are more reasons why the EIG is just bad in general when using IC2 Crops
It's actually dangerous in terms of NBT density and doesn't batch identical seeds together, Leading to a lot of wasted computations:
The EIG is incredibly NBT dense when using IC2 Crops, especially when it comes to higher tier ones: Each item generates about 10 to 15 fake items worth NBT.
- A 16-slot (ZPM) EIG results in over 240 unique items stored in the EIG.
- This is because each seed needs to cache 10 outputs and create ~5 output trackers.
- This issue can be easily solved by more efficiently pooling identical crops into buckets and treating them as a single crop growing at a speed of
average_growth_rate * seed_count
Again I have a good idea of how to fix this but lack the motivation for the reasons explained before.
Appendix 1: Crop Growth Rate Calculator:
Here is the code used to calculate the minimum growth rate for a given seed given specific environmental variables. It was obtained by decompiling IC2. I removed the RNG and replaced it with minimum values since I was testing the minimum stats for a crop to grow:
public class IC2Tester { public static void main(String []args) { String out = ""; out += "\n\n" + "EIG stats"; out += "\n" + check( 7, 21, 31, 0, 8, 12, 6); out += "\n\n" + "stats most people would try to go for for a viable crop manager setup"; out += "\n" + check( 7, 21, 31, 0, 13, 22, 8); System.out.println(out); } public static String check(int tier, int gr, int ga, int re, int nu, int hu, int aq) { String out = String.format("tier: %2d | gr: %2d | ga: %2d | re: %2d | nu: %2d | hu: %2d | aq: %2d", tier, gr, ga, re, nu, hu, aq); out += "\ngrowth rate: " + calcGrowthRate(tier, gr, ga, re, nu, hu, aq); return out; } public static int calcGrowthRate(int tier, int gr, int ga, int re, int nu, int hu, int aq) { int have; // remove random and use average value to calculate, use 0 if you want to check if it can grow int base = gr; int need = (tier - 1) * 4 + gr + ga + re; if (need < 0) { need = 0; } if ((have = influ(nu, hu, aq) * 5) >= need) { base = base * (100 + (have - need)) / 100; } else { // this only happens if we don't have enough // resources to grow properly. int neg = (need - have) * 4; // if the negative is above 100, and the resistance fails // the resistance stat check, the crop dies if (neg > 100 /*&& IC2.random.nextInt(32) > this.statResistance*/) { // crop stick is cleared, 0 is usually returned // i'm returning -1 to indicate total failiure return -1; } base = base * (100 - neg) / 100; if (base < 0) { // this simply prevents the crop from growing during the tick return 0; } } return base; } public static int influ(float nu, float hu, float aq) { // Requires Tons of everything return (int) ((double) nu / 1.0d + (double) hu / 1.0d + (double) aq / 1.0d); } }
Nobody cares, even the ticket was closed
I genuinely just want to have something to refer to for the next time I have to tell someone not to use the eig.
I genuinely just want to have something to refer to for the next time I have to tell someone not to use the eig.
I will believe that someone cares and this shit will be fixed
I will believe that someone cares and this shit will be fixed
I genuinely have 90% of the code already written for that, and all that's missing is about 1 or 2 days of work to finish, polish, and test the EIG properly. I just have 0 reason to believe making the EIG not a stinking pile of trash is something that will be allowed as a PR.
I will believe that someone cares and this shit will be fixed
I genuinely have 90% of the code already written for that, and all that's missing is about 1 or 2 days of work to finish, polish, and test the EIG properly. I just have 0 reason to believe making the EIG not a stinking pile of trash is something that will be allowed as a PR.
No one even gave a clear argument why the ticket was closed, you should write to Dream and discuss everything normally and not just stupidly close the ticket
you should write to Dream and discuss everything normally and not just stupidly close the ticket
The joke is I've already talked to Dream about that when I updated the majority of crops++ to use proper growth multipliers.
Though I doubt Dream has ever used the EIG in IC2 Mode and therefore would likely not have any good feedback or knowledge of it:
you should write to Dream and discuss everything normally and not just stupidly close the ticket
The joke is I've already talked to Dream about that when I updated the majority of crops++ to use proper growth multipliers.
I asked him, waiting for an answer ;)
@C0bra5 it would be nice to ask me first when published private chat with me. I have no secrets but a private chat is not a public chat.
@evgengoldwar crops will not be changed before 2.6.0 because we are in a feature freeze rn. After this, we can have a discussion how and if we want to change stuff.
@evgengoldwar crops will not be changed before 2.6.0 because we are in a feature freeze rn. After this, we can have a discussion how and if we want to change stuff.
Yes, I know, it’s just strange that the ticket was closed without any reasoning when there’s such a problem here
@C0bra5 it would be nice to ask me first when published private chat with me. I have no secrets but a private chat is not a public chat.
If you don't want these DMs to be public, you can say so right now.
@evgengoldwar crops will not be changed before 2.6.0 because we are in a feature freeze rn. After this, we can have a discussion how and if we want to change stuff.
This specific issue has been brought up multiple times in the past and has always been completely ignored or immediately dismissed on the spot. The EIG for IC2 crops is practically a meme in the NH discord at this point because of how bad it is.
The fact that this issue was closed by a dev who made statements disregarding the issue with what seems to be completely incorrect assumptions without even bothering to verify them in-game needs to be looked at more at this point, IMHO.
@C0bra5 @evgengoldwar i would suggest put the topic to Discord and lik this issue. We can do a propper discussion there.
@C0bra5 @evgengoldwar i would suggest put the topic to Discord and lik this issue. We can do a propper discussion there.
And Done https://discord.com/channels/181078474394566657/401118216228831252/1222279826396942386, Let's hope something actually happens this time.
if the discussion get heated again i lock this issue :trollface:
Kuba posted some changes to the EIG that make it simulate a more accurate growth rate and use the environmental stats of the environment it's in. I did some quick testing with that version, and well, it's still the least efficient way to do crops, and it's not even close.
If you get lucky when you insert the seeds, it may outpace a crop manager limited to a number of seeds comparable to the number of seeds in the EIG multiplied by its acceleration, but the fact remains that it's using that much power for something that an other machine can easily do while consuming almost 4000 times less power.
These are the results of letting each field and EIG run for 2 hours
I used reed seeds with 23/31/0 stats for my tests and used a jungle biome at y=64
As I've said before, I already have a good idea of how to fix most of these issues, I'll make a PR with the goals of:
And here is that promised PR: https://github.com/GTNewHorizons/KubaTech/pull/122
It was said that until 2 6 0 while suspended discussion and now 2 6 0 long ago came out can reopen the discussion to fix greenhouse
Waiting for the miracle
Your GTNH Discord Username
EvgenWarGold
Your Pack Version
Nightly 395
Your Proposal
Balance ic2 mode in greenhouse
Your Goal
Crops are useful +- up to uv tier. Now ic2 mode opens on luv tier and it has a dead balance that no one uses it. Example: EEC luv tier and Greenhouse luv tier, EEC gives more wheat than the greenhouse which is adapted for this. I propose to make the slots for ic2 crops count like vanilla crops.
Your Vision
People will be able to place a greenhouse and abandon regular fields, thereby increasing TPS and FPS
Final Checklist