EtienneLamoureux / sc-trade-tools

Issues repository for SC Trade Tools
http://sc-trade.tools
23 stars 4 forks source link

Add new tool: /mining #15

Closed EtienneLamoureux closed 3 years ago

EtienneLamoureux commented 4 years ago

Mineables can be extracted from Data\Libs\Foundry\Records\entities\mineable

EtienneLamoureux commented 4 years ago

What would make this tool worthwhile to use? What do the miners want to see?

zorbulator commented 4 years ago

I recently started mining and there are a few things that would be useful:

mining locations

It's very hard to find accurate information on which planets/moons/asteroids have which resources so if this tool had such information it would be very useful

I also saw a reddit post recently that claimed that certain locations on moons or planets were better for mining than others so maybe there could be some way of reporting good mining locations?

which rocks to mine

The other thing that I would find useful is where the user could enter their ship and the amount of money they want to make and then the tool would say the maximum and average percents of those resources they would need to mine in order to make that amount

There's probably some other stuff that would be useful but those are the main ones I can think of

Kjasi commented 3 years ago

Thinking about how exactly these tools would work, I came up with these ideas:

Cross-Searchable list of Deposits

Here's a random example: Searching for Hadanite deposits, on the assumption that all Hadanite deposits have the same spawn details, it will show me that it will spawn between 1 and 12 of them in each group, with an average of 4 in each group. Hadanite deposits have a mass of between 0.5 and 1.0, with an average of 0.84. Hadanite deposits contain between 60% to 100% of the Hadanite resource, with an average of 74.87%.

The list will show me that on Ariel, Gem deposits (the hand/ROC mining icon look like gemstones) have a 21% chance of spawning, but Hadanite will make up 100% of those spawns, giving Hadanite a 21% chance to spawn on Ariel.

The example will also show that on Yela, Gems spawn at 41%, with Hadanite making up 54% of those spawns. This gives Hadanite deposits a 22.14% chance of spawning on Yela, making it the better spot to farm. However, if the spawn details are NOT the same on every planet, and Yela only spawns between 1 and 6 rocks, with an average of 3, suddenly, Ariel looks like a better spot...

However, Yela has cold temperatures that require the use of the Novikov Armor & helmet, but it doesn't exceed those ranges. Ariel, on the other hand, has min & max temperatures that is ABOVE the Max rating for the Pembroke Armor. (Pembroke has a max temperature of 225C, while Ariel is often 235C at it's coldest!) which means you can survive easier on Yela than Ariel. Of course, this is all moot if Daymar (which has an average temperature that doesn't require a special suit) has a comparable Hadanite spawn rate.

The list should be sort-able by all of these metrics.

Deposit Estimator

You enter a deposit/asteroid type, which brings up a list of possible resources. You then enter the deposit's mass, and the percentages of the resources the scanner detects. The estimator then spits out an approximate value for each of the resources in that deposit, plus a total. It should include an ability to exclude certain materials from the calculator. Say I want to exclude Tungsten, Aluminum, and Inert Material, but keep Laranite and Agricuim in the estimate. (I'm thinking a simple checkmark on the calculator, so I can turn them on or off quickly, and it dynamically updates the totals.)

EtienneLamoureux commented 3 years ago

Thanks a lot @zorbulator and @Kjasi. This feature has been voted "Next feature to be developed" by SC Trade Tools' Patreons, so I'm glad I have more experienced miners than myself to brainstorm ideas!

BlueboyZX commented 3 years ago

My understanding is that different areas on planetary bodies and in asteroid belts have different characteristics. Finding hot-spots that have a significant probability of spawning some rocks that have a high %composition of high-value ores would be a big deal. There are supposedly places that can spawn a large, high % quantanium rock that can fill a prospector on its own, but excactly where those spots are is a secret most miners (including myself) do not know. There are also some areas that spawn large asteroids that are not on the star chart at all and require stopping QT at the right timing to hit. Finding more of those via data-mining could also be a boon.

Although these types of unmarked spots on planets, moons and in space may be hard to reach the first time, it would be worthwhile for groups of players. They could stagger their return trips in their prospectors/moles so that there is always at least one person left behind who can make a beacon for the others to return easily.

Kjasi commented 3 years ago

Upon further mining and review, I'm starting to think that mining is a static spawn game. I'm finding myself returning to the same spots over and over to see the same spawns at the same places.

If we had an easy way to mark these spots, I think we could easily map planets/moons and say "At co-ords 12dNorth, 36.5dWest, you can find 6 Hadanite nodes", but we don't have that yet. Best we can do now is say "At 1020m from OM1, 5326m from OM3, and 749m from OM6, you can find [these nodes]." I'm not sure that would be useful or beneficial in the long run. Plus, automating that data might be hard to do.

Besides, half the fun of mining is the discovery! Of finding your favorite spots and going mining. Narrowing things down to the planet/moon or even the closest OM (as I mentioned in my post above) would be helpful, but wouldn't take away the thrill of the exploration aspect.

As @BlueboyZX said, knowing if these supposed high % rocks spawn through datamining, would be very helpful, and if they DO exist, narrowing their spawn locations down to a planet/moon/OM point would be very appreciated, but I'm just not sure I want to know exactly where it spawns. Even if we narrowed it down to the nearest 3/4 QT points on the planet/moon, that's still a huge area to search, which would keep that thrill of discovery I want to have.

I stand by my recommendations above, but I'm no longer certain that the spawns are random. In fact, I'm quite sure it's the opposite... That said, knowing respawn timers (if available) would be useful.

BlueboyZX commented 3 years ago

@Kjasi I was given the impression by some dev videos and the 'sneek peek screenshot' that the game stores the points as probability fields, not explicitly enumerated lists of every rock in the 'verse. Consistency would be achieved via using a consistent random seed. What that means for datamining is that it will be impossible to find the perfect rock through data mining but will be possible to find a lot of candidate spots. The Aaron Belt alone is practically the diameter of the diameter of the solar system, so there should be no candidate shortage. What the tool would do is change prospecting from random flight to evaluation of multiple candidate sites to find one that meets your personal (or organization) needs. Ease of finding the spot repeatedly (such as using landmarks on planetoids or the huge non-minable asteroids in belts), distribution of rocks, concentration/layout of rocks and whether someone is already working that spot are all things that would have to be confirmed manually in-game. I think/hope this will not detract from discovery so much as make prospecting more organized and have a higher liklihood of good return. This would be akin to randomly searching the globe IRL for minerals vs studying geology and surveying places that have features known to be associated with the mineral you are looking for.

EtienneLamoureux commented 3 years ago

Very good discussion! Here's what I can tell you about what's in the files: it's a lot of probability.

Since I don't have access to the RNG equations (those seem to be defined in code, not in the data files), I was thinking about providing a way to answer the all-too-frequent "Where is the best place to mine?" question by assigning some sort of Ore Value Index to every planet, moon, asteroid field, etc. This index would take into account possible ore concentration and distribution in a deposit and how few and far between the deposits themselves are. Of course this will be filterable by mineral, so people can view the index value only for Laranite, for everything except the lowest 5 valued minerals, etc.

The drill-down view could provide deposit-level information (similar to what's already available online), but I don't see how that's really useful. There is a bit more information than that to show, like the re-spawn timers, but not much more.

To address some of the points above:

Let me know what you think!

BlueboyZX commented 3 years ago

https://youtu.be/kcaCEYZS1eE?t=2537 This video shows how the current Planet V.4 generates rocks, trees and other objects. Moons are not just one big object volume anymore. Earlier in this video they mention V.3 using planet-wide volumes for object generation. I think you are datamining old Planet V.3 files. I am having trouble finding the video where they mention minables specifically, but you can go to places like Yela and see lots of one type of minable in light areas and another in dark areas, and a ton of Roc minables in dark, high altitude areas.

On Tue, Sep 15, 2020 at 8:46 AM Etienne Lamoureux notifications@github.com wrote:

Very good discussion! Here's what I can tell you about what's in the files: it's a lot of probability.

  • deposit composition is random
  • deposit cluster presence in a given volume is random
  • cluster definition (how many deposits, how far apart they are, etc.) is random

Since I don't have access to the RNG equations (those are probably defined in code, not in the data files), I was thinking about providing a way to answer the all-too-frequent "Where is the best place to mine?" question by assigning some sort of Mineral Value Index to every planet, moon, asteroid field, etc. This index would take into account possible ore concentration and distribution in a deposit and how few are far between the deposits themselves are. Of course this will be filterable by mineral, so people can view the index value only for Laranite, for everything except the lowest 5 valued minerals, etc.

The drill-downed view could provide deposit-level information (similar to what's already available online https://www.gallog.co/mining/deposits/GraniteDeposit/), but I don't see how that's really useful.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/EtienneLamoureux/sc-trade-tools/issues/15#issuecomment-692690582, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQ7HI3ELI5XXFI2F5JX6MSLSF5O2NANCNFSM4OWWQSBQ .

EtienneLamoureux commented 3 years ago

@BlueboyZX Thanks, I'll give it a look! I am datamining 3.10.2 though, so maybe I'll have to wait until 3.11. It also may be possible I haven't figured out all the data files yet.

Edit: there is additional info in the deposit files I hadn't seen yet:

minSlope="0" maxSlope="90" minElevation="-10000" maxElevation="10000"
BlueboyZX commented 3 years ago

The additional info looks like parameters it can spawn in, and the values you put are basically saying that deposit can spawn anywhere. They mentioned changing slopes, humidity and altitude in the video. Different combinations of height/humidity info can be tied to different bioms and object spawns; they demonstrate manipulating this in detail in the video I linked.

BlueboyZX commented 3 years ago

The video (near the end) mentions they are demonstrating 'a 3.8 build'

On Tue, Sep 15, 2020 at 3:08 PM Etienne Lamoureux notifications@github.com wrote:

@BlueboyZX https://github.com/BlueboyZX Thanks, I'll give it a look! I am datamining 3.10.2 though, so maybe I'll have to wait to 3.11.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/EtienneLamoureux/sc-trade-tools/issues/15#issuecomment-692919415, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQ7HI3H4IINB4MX5FX5TSITSF63TRANCNFSM4OWWQSBQ .

EtienneLamoureux commented 3 years ago

Yes, I did look at the video you linked. It was quite informative! I can add that location info to the data.

Kjasi commented 3 years ago

While interesting, I think the Min/Max Slope and Elevation shouldn't be included by default, unless they're different than the defaults you showed. Maybe in a Details page/popup/mouseover?

@BlueboyZX Stanton is currently running on V3, and won't be V4 until at least 3.11. (Possibly into 3.12 if it gets pushed back.) But the video you showed didn't seem to cover mining rocks, just decoration rocks. Right now, we don't know if that will change, or even effect rock placement/generation.

@EtienneLamoureux If things are random, then most/all of my original suggestions would still be viable, even if the variables are limited to a single planet/moon per setting. I know that rocks are in deposit types, at least by name (Shale Deposit, Quantainium Deposit, Quartzite Deposit) so my thought was to have the list of known resources for each of those deposits listed, with the min/max composition values for that location. (On the assumption that the min/max for each deposit type changes per moon/planet.) We'll use the calculator for the exact rock values.

As far as distribution, I know Yela is rather clustered, at least near the northern pole, but it seems sparse around the center. Daymar often has nice deposits, but they are far and few between. I'm wondering if each planet is made of chunks, or quarters, or sectors, or what-have-you, and the distribution for each sector is even. Example: let's say Yela is broken into 16 sectors, 4 on top, 8 for the middle (4 for each side of the equator), and 4 on the bottom. Each sector is given 100 deposits to spawn randomly, and they are evenly distributed. The sectors at the top and bottom will be denser than the middle 8 because they are closer together. In fact, each sector on the top and bottom is really more of a triangle, which has FAR less surface-space on a globe than the middle sectors, which form a rectangle. This means along the center of the planet, it will take longer to find a good node than mining near a pole. If any of this is true, then having that information would be highly useful to miners. It's wild speculation, but maybe a form of distribution map, showing spawn densities?

EtienneLamoureux commented 3 years ago

So far all deposits can spawn anywhere (all elevations, all slopes), but since the /mining tool won't be ready before 3.11, I'll still parse the terrain info and see what I can do to be ready for planets V4.

And to reiterate, each planet really does seem to have a uniform probability distribution. Maybe the volumes are smaller at the poles, but nothing indicates a disparity anywhere that I could find. Of course there might be more than meets the eye...

EtienneLamoureux commented 3 years ago

Deposits location will probably be described as such:

Kjasi commented 3 years ago

This is a fascinating Mining bug/exploit: https://www.youtube.com/watch?v=TwLGRZjuSpw

It hints about some of the probabilities when data-mining these rocks.

EtienneLamoureux commented 3 years ago

Interesting bug. Looks like going far away rerolls the MineableComposition without rerolling the cluster, ignoring the elementClusterFactor since the rocks are already spawned.

The thing with quantanium is that it resides in its own deposits: there is a type of rock that will always spawn quantanium in it, with a percentage of y=1+19x^4 where x ∈ [0, 1]. So of course rerolling those a lot will eventually get you a good one. The duplicated elements are certainly not intended.

It all makes sense data-wise :D