NathaU / factorio-subsurface

https://mods.factorio.com/mod/Subsurface
MIT License
2 stars 5 forks source link

suggestion: sync underground resources, or split patch quantity even between surfaces, or add mod option to remove them please #19

Open angrypidgeon123 opened 3 months ago

angrypidgeon123 commented 3 months ago

Found the resource mirroring I proposed :), however I proposed synchronizing the resources between the surfaces as they get mined, else like this they will double, triple etc. and I'll be tempted to use them making the game way easier :) e.g. if I got a 10M iron patch, digging 10 times down I will get 110M iron ore. Basically I will never need to hunt for another iron patch again, not to mention not bothering with the enemies to get it

EDIT: Admittedly synchronizing ore patches would require some fine coding:

  1. 1st all miners and player mining events need to synchronize resource quantities of smallest gradient patches tapped
  2. 2nd resources need locking so no 2 miners or 2 players can mine the same resource, pretty tough
  3. A work around, if fixing mining down logic to go more than 1 level down, an option can be added so that surface patches quantity get divided between levels, then it's fair, one needs to dig to get the complete patch quantity. But it needs an option, not everyone will like it. Even with 1 level down resources can be divided by two tho. I kind of like this idea, gives an incentive to dig

EDIT2: Splitting resources between surfaces idea refined. Preserving resource patch location and generation by mirroring underground is fine, but unbalances the game by multiplying existing resources. The fix idea is splitting surface patches quantity between surfaces evenly, e.g. 10M split into 333K over surface and 2 levels down, up to the maximum number of surfaces that is (configurable in options). As an diversity improvement randomness can be introduced such as that splitting can vary like being split between first two surfaces leaving the third empty (which should be toggable by option), and/or, after splitting the resources between surfaces another computing pass can be made substracting a random percent like 10-30% from one surface and adding it to the next, or vice-versa, also randomly. The random percent variance should be a configurable by option as well and be disabled by 0%. Predictability is boring so not knowing where the bulk of resources is, is less boring ENDEDIT2:

EDIT3: I also thought about setting resources lower from the beginning of the game, and that is the exact issue, installing this mod during gameplay without options to manage the resource amount "destroys" the game economy or feel (which is why I removed my underground resources for now). Even starting with lowest resources, just digging 3 levels quadruples the resources which beats the intended gameplay, which splitting quantity would solve I believe ENDEDIT3:

There's a concurrent idea (I think it's nonsense because building a core miner from the start makes sense) along the same lines: https://mods.factorio.com/mod/vtk-deep-core-mining, only subsurface would literally dig to deeper levels from the start to access the ore with normal miners / mining buildings :)

Splitting of resource quantity between subsurfaces doesn't make sense for fossil fuels (oil,gas), as tapping into them gives access to the whole pouch from the surface realistically. ENDEDIT:

Or, add an option please to stop generation of resources on underground surfaces EDIT: I edited resources lua and control lua and commented out, returned nil etc. to disable all apparent resource generation, and tested. It worked / no resources or crashing, personal choice. This means all those functions can be disabled by a single condition pasted around

Screenshot 2024-04-11 192241 Screenshot 2024-04-11 192232

NathaU commented 3 months ago

So I think the best idea is splitting resources. When the mod is installed, all existing resource patches will loose some richness (e.g. keep only 30% of their current amount), deleting all below an amount of 1. Ofc this destroys the previous game economy Then they are mirrored in the underground, so you will have some kind of 3 dimensional resource patch

angrypidgeon123 commented 3 months ago

Is the mirroring underground reflected on every surface or just 1? Meaning 2 in total, 30% remain on the surface, 70% on the 1st subsurface? That can work also as an incentive to dig

If they are reflected on every subsurface then there's infinite resources. I think you can limit within the functions which subsurfaces get resources and which not. If subsurfaces don't have a meaningful index perhaps you can attach a marker to them as they get accessed / created, up to a maximum number of resource containing subsurfaces. Only problem then is it makes no sense to have more than 2-3 subsurfaces, just as I am playing with factorissimo which I regard as basements and underground levels

Then subsurface is a generalized factorissimo and could benefit from the same features, and a better UPS perhaps. If I'ld choose between "deluxe" factories and digging and building everything from scratch, I'ld choose the latter

P.S.

https://ibb.co/qWT0X0f

About 3 million copper ore dissapeared in my game in the past 100 hours or more btw. Don't know what caused it, I tested all mods involved and all function as they should right now. Also the resource patch is missing the resources appearing in the statistic but that are not to be found anywhere, or explained.

I suspect the old subsurface because the copper ore is feried underground from the ore patch, passing thus through 4 item elevators. But also the AAI vehicles depot became inaccesible sometimes and maybe voided some ore. Now I tested the item elevators and they don't lose resource in 1 test. Not gonna install old versions to test. Other mods involved are bobminers, aai loaders, aai vehicles (hauler), factorissimo notnotmelon ports. I tested all, none lose resources right now. As seen, iron ore did not suffer this loss, and I have an almost equal number of mining power so the product shouldn't be so different

Not really an issue for me since I can do core mining, or just cheat if the game cheated too :D and give myself 3 million copper ore back...

YARM was reflecting this weird production / consumption rate, twice that or iron ore, but a mistery still

P.S. 2 Also, Factorio is scifi, but subsurface could inspire from Dungeon Keeper :D though it's too much too ask since it's a game in itself, such as attracting (logistics) engineers and scientist by building certain buildings underground, such as a lab room, an assembler room making logistics, (war) engineers with an assembler room making turrets and ammo etc.

The "engineers" and "scientists" could be modified beacons perhaps that add bonuses to production and science just like the modules...

NathaU commented 3 months ago

I meant to lower the resource patch size and richness by depth... So instead of having one 2D patch on nauvis, e.g. 10M, it will add 3D patches over nauvis and some underground layers, e.g. 300k on nauvis, 100k on underground lvl1, 20k on lvl 2. Maybe I could add some noise expression with reflects resource patch expansion in the deep

angrypidgeon123 commented 3 months ago

You don't have to complicate it each time you add a feature, it will increase development time and chance of errors. You already have the mirroring in place, all you have to do is:

  1. determine number surfaces mineral patches mirrors apply to (by default option and mod setting for players). Meaning it's preset
  2. divide amount equally between surfaces it's applied to by substracting, e.g. 2 surfaces means 1/2 or 0.5 from each surface. Means surface and 1st subsurface, not the 19th and 20th :D

I read reddit posts and players disagree on features, but all agree there should be options so each chooses how to play the mod

  1. (a little more complicated) maybe add another function pass to randomly substract from one path and add to another, preferably the next, or at least maintaining a sequence of subsurfaces tied to the surface not randomly deep. The default / player preset mod setting can easily indicate how many surfaces contain resources (e.g. 2 or 3), so then you don't substract from 0 or nil, that is if you can determine the surface / subsurface you'r applying this random pass to. The random pass thus have to target at least 2 surfaces: substracting from one, adding the same amount to another or more surfaces within the same function.

Applying a complicated mathematical formula won't benefit the game. I can prospect patch sizes using YARM so I probably won't bother with 20K patches, I'm usually going for patches above 1 million

You do it as you like but I eliminated RSO mod from my modpack because it messed up generation increasing the number of patches, thus increasing the amount of grind. I play with lowest frequency of patches for a reason: least grind :) Don't want to run around getting resources all my game, which spans hundreds of hours. I'm ok-ish with doing an infrastructure once about tapping an ore vein in one place, or doing logistics to a far patch, or mine for it underground, just not often

Also I spoke to quite a lot of players and they don't like many mods, meaning spending too much energy in any particular mod unless it's an overhaul or expansion like K2 or SE. People like the vanilla feel expanded. I never saw one stream using something like RSO mod even though it's got 135K downloads, so it would be a mistake straying from the vanilla generation. Most streams are either vanilla deathworld (difficult), or SE, or SE+K2, with a bunch of quality of life mods attached. So mods should absolutely expand vanilla to be succesful, and keep things simple and clear