Talk:Planet landing risk-reward formula
This is an idea that has been on my mind since I first played SC2 in July 1994. I always wanted to come up with a "simple" formula for calculating whether gathering valuables on a dangerous planet was worth it. Also, planets with no lander damaging threats but poor return on fuel spent (for example, a planet full of commons or sometimes trace or light amount of corrosives or base metals) may not be worth your time and effort. I admit, this is a bit ambitious, and someone may have already done something similar for this game, but I thought it could be a fun exercise, especially since we have access to how the game values certain lander damage, as well as hard numbers for all planetary data within the game. If the template idea is a bit much, a program could be written (I'd be willing to try if provided with the data) to read all of the game's raw planetary data (which is static) and construct a list of the top 100 most valuable planets, star systems, areas of the hyperspace map which we could then use to construct a wiki table. This program could also produce wiki table formatting for easy modifications/updates to the formula, if deemed necessary. Part of this idea was briefly mentioned while I was discussing the feasibility of the StarBox template with Svdb here.
Before jumping in and modifying the formula (which doesn't exist as of yet), I ask that we discuss some of the ideas behind it here first. For instance, I believe that the formula should produce both negative (very bad) and positive (very good) values, and that it should not simply consider 0 (zero) its lowest possible value. Rather 0 (zero) would be considered "breaking even". It's my opinion that the positives of this formula are fairly straightforward with the exception of the various Alien Artifacts. Most likely, as a group, those should be given a high positive skew since the rewards of collecting them often far outweigh most dangers. Coming up with a reasonable formula for calculating the negatives is going to be a lot more difficult. There are also other factors that may affect planet landing that I am not aware. For instance, I would like to know if a planet's tilt, atmospheric thickness, rotation rate somehow affect how closely the lander lands next to the destination initially chosen. There is always a bit of landing "drift" that the lander suffers. If this is not purely random, it may be slightly important in a more complete formula in how much it affects how quickly certain minerals can be collected. The trick about landing on an extremely violent world to get one huge exotic piece and leave immediately comes to mind. Obviously someone who is intimately familiar with the source code, such as Svdb, would play a vital role in answering many of these questions, providing insight, and showing us how to access the raw game data (though I'm sure it's been mentioned repeatedly somewhere else, such as the various forums). Thanks in advance for any interest (even if you tell me this is a really bad idea), and your participation. --PsiPhi 15:49, 16 October 2007 (CEST)
Excellent idea in my opinion, maybe when I'm not quite so busy I'll be more helpful, for now my only suggestion is to put it in the game mechanics category, like the Lander Hints page. - Zeracles October 17 2007
Any help would be appreciated Zeracles. I have looked over your website, so I can say with confidence that you are more experienced with mathematics than myself. Formula derivation has never been one of my strengths. My initial thought was that this was more in line with actuarial work, based on what little I know of that profession. This formula does not have to be perfect. A half decent formula that gives a good idea about the risk involved would be useful. It doesn't need to include all the terms I listed either. I just wrote down all the possible factors I could think of that could affect the final value, ignoring harder to quantify values, such as player's skill (driving the lander).
Formula Creation and Conversion Issues
I was also not sure if the final value should be assigned a specific unit, such as "fuel units" (since both Minerals and Bios can be converted to fuel), or something arbitrary instead, such as "points". The difficulty is comparing the value of Minerals to the value of Bio data. In the early game, Bio data is extremely vital, perhaps more so than Minerals, but towards the end of the game, especially after you have exhausted all of the Melnorme tech (and info), Bio data essentially becomes an emergency fuel supply. However, by that point in the game, Mineral collecting is no longer necessary either (since you can collect RUs directly from your many battles). Therefore, if this formula is most useful in the early game, when you do not have any Melnorme tech, and you are starved for RUs, it may not require any of the modifiers, which makes the process of creating the formula much easier. If we build the formula with the assumption of no lander upgrades, and Minerals and Bio data being equally important (given their respective conversion to a common fuel unit), then we can ignore the modifiers completely, and focus strictly on the Positives minus the Negatives. What do you think? --PsiPhi 14:57, 17 October 2007 (CEST)
- Sounds interesting, but I think you are trying to cover too many bases by including minerals, bio and energy in the same formula. Devices, I'd say, should be left out, since they only have a plot-advancing value, not a RU value, and bio should be treated separately from minerals. So we should have one "risk" indicator and two "reward" indicators, one for minerals, another one for biodata. Valaggar 16:41, 17 October 2007 (CEST)
- I'd be willing to ignore devices. I only included them for completeness with the idea that they'd be given a high skew value, but upon thinking it over, those worlds fall under the "no-brainer" category. You should not have to think "should I land here?" when there is an energy signature. As for minerals and bio, I'd really like a unified formula, but I'd be willing to create two separate formulas at first, and if possible, marry them later. The issue is, it's relatively easy to equate the value of minerals to the cost of crew/shuttle/fuel used. The more difficult aspect would be comparing the importance of bio data to those three potential expenses. This is why I proposed a series of equivalences based on real game values. The problem with bio data is that Credits to Fuel is a one way street ... once credits are spent, there is no way to get them back via trade-in. So when it comes to comparing the value of bio data to crew and shuttle cost, we have a slight problem. Given the level of importance of bio data in the early game, we could just ignore this inequality and treat it as if it is a two-way transfer ... see how that goes. If later, we find that this does not work well ... the results don't look right, we can find a way to "fudge" them a bit. Also, since it is possible to acquire credits through other means (rainbow worlds, the Umgah), this does slightly downplay the importance of bio data collecting. But we must keep in mind that this formula is intended for players who are at the beginning of the game, when the Umgah and most of the Rainbow Worlds are very hard to reach on limited fuel supplies. Regardless, the mineral-risk formula should be somewhat straightforward. Perhaps we can start with that initially and build from there. --PsiPhi 17:53, 17 October 2007 (CEST)
- mineral_reward=total RU value of all the minerals (duh)
- bio_reward=total bio value or (bio value)*40 to convert to RUs
- Costs (and cost related)
- landing_cost=(fuel to land)*(times to collect everything (may differ if collecting bios))*20 RUs
- time_mineral=not a cost, but dependent on the distribution of minerals
- time_bio=dependent on distribution, total hit points, and mobility (and maybe attitude) of the bios
- bio_hazard=time*(danger weighted by mobility and attitude)*crew cost RUs
Star System Mineral Totals Biological Totals Bio. * 40 + Min. (RUs) Delta Aurigae 11005 256 21245 Beta Carinae 7982 304 20142 Beta Scorpii 12680 178 19800 Beta Circini 6897 248 16817 Delta Sextantis 5901 322 18781 Beta Tauri 5747 277 16827 Alpha Olber 6940 241 16580 Epsilon Draconis 7298 230 16498 Zeta Scorpii 4134 309 16494 Gamma Tauri 7307 219 16067 Gamma Geminorum 2388 341 16028 Epsilon Scuti 8365 175 15365 Lambda Hyades 1949 329 15109 Beta Vulpeculae 6208 214 14768 Gamma Circini 4903 247 14783 Delta Chandrasekhar 4299 259 14659 Aldebaran 6488 201 14528 Kappa Hyades 4736 186 12176 Fomalhaut 4158 191 11798 Alpha Chandrasekhar 4799 175 11799
Just some thoughts. There's so many things which if done properly would make this really hard, but I like the simplifying assumptions thus far (we can be cheap and nasty, no hard core mathematicians here I hope). I think Fyzix has pretty much nailed the basic form.
Fyzix's time_mineral variable, to do this rigorously would I think be a too-difficult graph theoretic MST type thing, but we could fudge it by assuming even distribution of goodies, and calculating the average separation between them. This would give the time_mineral for each one. If we decide this is the way to go I could probably find how this mean separation varies with number (I work with code which does similar stuff).
Also, where do we assume that the player bails and returns the lander for more crew? I mean, when crew is down to three? We all know it varies. If we assume a player reaction time of a second or so, the ideal player bails when the lander is within a second or two of biting it. Probably three seconds for a bit of a cushion. So the crew escape threshold would be Fyzix's hazard variable with 3 seconds or so. This affects landing_cost in the way Fyzix describes. Again, this is a problem which is probably too difficult to solve properly, I think we would have to model the hazards as a Poisson process and take into account how much these different hazards hurt to really find out where the optimum escape threshold is.
If we don't decide to just ignore this aspect, just for the record I propose the name bailout_crew for this variable. If someone has a better name please go ahead!
If the bios are reasonably mobile, bio_hazard decreases with time as the player picks up kills, as the frequency of encounters falls. This means that bailout_crew changes with time, as well as changing bio_hazard over time. I guess we need to decide how properly we want to do this. We could maybe take the simplest approach, assume these things will change linearly, and for example just halve bio_hazard to model its fall to zero.
With the lander's dual mineral / bio capacity, I assume we assume (heh) for simplicity that it returns to offload when one of these is full? So this makes the number of trips easy to figure out. Otherwise it would be more correct to do the formula in stages.
One last thing, there's been talk of not taking into account the Melnorme lander upgrades, but it looks like the proposed formula is sufficiently general to handle this - just change some of the values.
BTW noticed Fomalhaut in that list, anyone else remember sc3's goof in putting this in a different quadrant? I don't remember it being quite so bountiful then, heh.
Cheers everyone --Zeracles 19:40, 18 October 2007 (CEST)
- Thanks Zeracles for this contribution. I respectfully suggest in the future that you explain or at least link to an explanation for things such as MST and Poisson process so that others can get an idea what these concepts mean. Having studied things like MSTs, your mention of it got me thinking that optimal mineral collection is likely closer to a Travelling Salesman Problem minus the need to return to the origin. As part of complexity theory, this problem is definitely computationally complex and would be hard, even for a computer to solve efficiently, especially given enough data points (mineral deposits). Personally, I'm not seeking that level of sophistication. Although, I cannot deny that Fzyix has a good point about time mattering in terms of increasing the probability of crew loss because the planetary dangers are time dependent, based on both direct exposure (how long the lander is touching a hazard), and how long a lander must spend on the surface to complete its mission, increasing its overall exposure to potential dangers. We may have no choice but to assume certain things as even distribution to avoid this level of complexity.
- In terms of human actions, as in when to choose to flee, I wouldn't dare to guess. Adding a human element to the equation adds another level complexity I was hoping to avoid, if possible. We would need to come up with "reasonable" standards. No small task, I know.
- Speaking of renaming things, if anyone has a better suggestion for naming this formula, I'd like to hear it (aside from "Impossibly complex thing PsiPhi dreamed up"). ;-)
- In terms of the lander returning when one of the two (bio or mineral) is full, I must say, that's not how I play, or would play. I always try, if possible, to fill both to near capacity before returning, in order to ensure least amount of fuel used. Keep in mind, at the start of the game, 1 fuel unit equates to nearly 7 crew members (as horrible as that is to admit), so as long as your shuttle is still half full of crew (given the landing takes 1 fuel unit -> 0.5g), you might just risk it, but I guess that would be part of what this formula could determine.
- The reason I did a reversal on the Melnorme upgrades is that I meant for this formula to be of the most use to someone at the start of the game, i.e. no upgrades. If you think they can be factored in without much effort, that would be great!
- As for SC3 and Fomalhaut ... that sounds familiar ... I don't recall the condition of that star system.
- In summary, I think I am seriously starting to regret ever suggesting this idea in the first place. What a nightmare! hehehe! :-D What a disaster all this would be if we finally created a working formula only to realize "Hmmm, this isn't really as useful as we had wished." Part of me is thinking that maybe I should have started with the idea of calculating the return on all "safe" worlds (Class 2 or below and 100°c or less; bios would be OK since they are arguably the easiest to avoid of all hazards). This would have the effect of significantly reducing our list of data to be processed and we could focus purely on mineral + bio values - fuel used (assuming player plays optimally avoiding all bio damage). One last thing about this formula ... I was wondering about distance from Earth (ignoring the Portal Spawner), in terms of fuel used for a round trip. What would be the point of spending 200-250 fuel units (4000-5000 RUs) if you don't make a significant return. It's times like this I get to thinking, "hey, forget all this ... here's the alternative":
- max out your thrusters ASAP
- fill two fuel tanks and fly to A. Pavonis to get the Warp Pod
- fly to the Quasi Space opening, get the Portal Spawner
- systematically fly to all the Rainbow Worlds (maybe even get the Taalo Shield, free the Umgah)
- Find Trademaster Greenish, get all upgrades
- focus on making the Flagship into a death dealing machine, by collecting RUs from VUX, Ilwrath, Thraddash, Mycon, etc.
- forget all this resource collecting nonsense!
- And then I think, "Oh, right, as a new player I probably wouldn't know all this". If anything, this says a lot about the complexity and open-endedness of the game. You have options! --PsiPhi 21:55, 18 October 2007 (CEST)
- Sorry about leaving out links for MST and Poisson process, it hadn't occurred to me that people would be interested, especially since I was suggesting that we not go down these paths. Ah, but SC fans live for concepts, and are interested in many such things. By the way, you say you've studied MSTs, I may be working with them before too long for characterising galaxy distributions. Another technique for doing same is Voronoi tessellation. Maybe I'll work with this too, but I mention this because you said you loved . If you look at the Voronoi tessellation article you'll see why I bring it up. For what it's worth, I like it too ;) Nice going.
- I agree that we should assume uniform distribution rather than tackle things like the Travelling Salesman Problem. Although, what initially excited me about your idea was its difficulty. Well, for the article anyway, you're definitely right that we can't do it in all its complexity, what a shame.
- You speak of reasonable standards for human actions, I think at least for what I was saying about bailout_crew, this is something which wouldn't be too difficult, it's just that because this only applies in rather hostile environments, when to return the lander is the least of: time to fill bio capacity, time to fill resource capacity and time to get down to bailout_crew. So our formula could be conditional in places, or, if one prefers, includes terms which play no role in many cases. So I guess (and as you and others have probably seen) the control structure of the formula might not be as simple as Fyzix's starting point.
- About returning the lander when one of either bio and minerals is full, I don't think anyone plays like that, I was just saying it might be easier for the formula.
- You mention "forget all this resource collecting nonsense!", I've thought this often and rather than think it over I often go looking for kills and rainbow worlds (this last one is kind of cheating one must say). But it does get boring. Quicker in Ur-Quan space though of course (this makes Fwiffo my ultimate hero at the beginning).
- You bring up another significant question, that of whether to visit a star system in the first place. In my eyes this is just a scaled-up version of the same problem, where fuel to get there is like fuel to send the lander. It's just that fuel to get there obviously depends on how far away one is. If we work out the rewards of visiting a star system though, we would be able to say how close one would have to be to make a resource-gathering detour worthwhile. I think this could be worth considering while or after we discuss this planet-landing formula. I know I might use it. What do we think?
- Do not despair yet, PsiPhi, it's a great idea and I reckon it can work, I like your style! --Zeracles 20:54, 19 October 2007 (CEST)
- I don't know if assuming an even distribution is that good of an idea. To me that seems like it would flatten out the time such that the total time is the same for any number of deposits. However, I'd be interested to see what you get Zeracles by running it through some code and seeing how the total time varies with number. I was thinking of just having time_mineral be some standard dt times the number of minerals, scaled by the standard deviation to handle how the deposits clump, in other words T=N*sigma/v - dirty and cheap I know, but simple. To me there's a big difference between a close cluster of deposits on a hostile planet, and several scattered deposits on a similar planet.
- As to the crew_bailout, I'd say that the easy way to factor that in would be to take the calculated total crew lost from all the hazards and divide that by the amount of crew you're willing to let die (12-crew_bailout) to get the number of trips someone will take. A similar thing can be done with the minerals and bios where the number of trips is the max(bio_total/capacity,mineral_total/capacity). The sum of the hazard and mineral/bio trips would give a high end estimate of the total number of trips. No idea though on the best value of crew_bailout, 3 maybe? I wonder if we should add a term in there for losing the lander (500 RU) on extremely high risk planets.
- Yeah, I know this is extremely simple and probably ignores several factors, but I think one of the keys has to be making this as applicable to any player. A good player will look at a low reward/risk ratio and be more willing to try than a less experienced player, so I wouldn't worry to much about the human factor. Whatever algorithm you use, it really should model your thought process as you look at the scan of a planet. Of course there are some things you can't know like the aggression and mobility of the bio types, but I guess that's in part what this whole in endeavor is for. Anyways, in the words of Einstein, "Make everything as simple as possible, but not simpler." --Fyzixfighter 05:09, 20 October 2007 (CEST)
- I've never heard of the Voronoi tessellation. Thanks for pointing this out. You know, this image looks like something you would see at the Museum of Modern Art. I love this map so much because of its quick usefulness. Back when I first played the game in 94, I actually taped together multiple pages of graph paper in order to be able to record information and write on a map (the original game map being all black made it hard ... besides I didn't want to ruin my map!). I believe I still have it somewhere folded up, along with my extensive notes on planets/star systems, Orz word approximations (our best guesses) and obscure game notes. I never completed the map (even for someone as patient as I am, it got tiresome), but I believe I marked all of the outlets from Quasispace. I know I definitely had the coordinates down. A concept similar to this occurred to me, but without precision drawing tools, I would have botched it, especially given how complex some of these intersections can be. In the end, I just "eyeballed" it. I was (am) all about efficiency, so finding the best QuasiSpace opening was always an obsession whenever we needed to get somewhere, such as when we finally started to figure out the pattern of the Rainbow worlds. That's when my map really paid off, since I was able to draw two lines directly on it. I still feel that was one of the best mysteries of the game, and figuring it out with only a limited dataset was an incredible feeling. Groombridge was the key ... on a hunch from looking at the map and the few Rainbow Worlds we had recorded (I think it was two near the "top" and two near the "bottom" of the map), I said, "let's go there ... I'm curious about something". When it turned out to be right, I drew two light lines on that map and we began our quest. Fun times.
- I was thinking that parts of the formula would have to be conditional, which only makes things worse for me, because I know how to express that in a program, but not mathematically, at least not fully (I have a rough idea).
- As for Fwiffo being great early game ... I agree, I usually sell my Earth ship.
- I did stumble upon the Earth ship switch trick accidentally the second time I played the game ... I was trying to figure out why there was an "Earthlng"(sp.) and a "Human" ship among the game files, so just for fun, I started renaming the files on my hard drive, just to see what would happen to the game. Soon, I had a Chenjesu Broodhome as my initial vessel. It seemed somehow fitting since it was one of two Alliance ships missing from the SC2 full game, and I wasn't a huge fan of the X-Form.
- Instead of Fwiffo, I usually ally with the Orz fairly early (ahhh, the Arilou are just paranoid silly cows, they're harmless fishies, it is for sure). Their aiming turret works just as well if not better than the Spathi BUTT missile when you turn it around completely. In this way you can fire while fleeing. I tend not to use the GO-GO space marines. The Orz cannon projectile is a lot faster and harder to destroy than the BUTT missile. Since the Orz are relatively on the way towards Ur-Quan space, forming an alliance is very easy with them. (just my two cents)
- As for the fuel-distance portion ... yes, let's keep it in mind ... perhaps we can factor it in later. Zeracles, as always it is a pleasure discussing this topic with you. I like your style as well, and after reading through some of your site, I can understand why. Cheers. --PsiPhi 05:44, 20 October 2007 (CEST)
Interesting, Fyzix. I've just run some (well, two) quick tests. At this place I've put the results along with the little matlab script which did the job (I love matlab, easy and powerful, which is a good combination, I'm glad I haven't had to do anything so numerically insane as to require fortran). So if anyone wants to toy with this little script, hopefully they have matlab or work at some institution which has paid an exorbitant amount to subscribe for it ;) Feel free to ask here or on my talk page or email me for more info on how to use it, but I put some comments in, and in truth it isn't very complicated.
So, here's what I did (I think, hopefully there are no mistakes). The script populates a rectangle with a uniform random distribution of points, and for each point, it works out what the distance to the closest point is. Then it averages all these to find the mean (closest) separation. The script has three modes. Mode 1 does this once. Mode 2 does this several times with different (user-specified) numbers of points. The result of this test can be seen here, called varynumber.jpg. Strong dependence throughout the range. Perhaps we could fit a power law through it. The second test I did was with the script in mode 3, which varies the size of the rectangle (at present this is just a square, though). The result of this can be found here, called varysize.jpg. So this investigates Fyzix's point above. Strong dependence again throughout the range, looks linear.
In view of the latter result, Fyzix is right that uniform distribution is possibly not a great assumption, and while this wasn't unexpected, we've been motivated by a need to keep the formula tractable. But perhaps we could use the data from the game's source and run something like this script on each planet? A quick note on something which I'm not sure has been pointed out, we would have to subtract the number of return trips from the number of distances. Finding the number of return trips (I don't know, number_landings) might be the first step of the formula. But then we still get some extra time when the lander doesn't land exactly where it's supposed to, so subtract number_landings*separation_mean and add number_landings*distance_landingerror perhaps to get the distance (and therefore time, hence hazard) estimate. On a very hostile planet with valuable resources, one can be reduced to landing for just one deposit at a time, taking separation_mean out of the hazard calculation. But this variable would still have been important in the first place for dictating such a mode of operation originally.
Worthy points about crew_bailout there, Fyzix, I agree about how crew_bailout would feature. I was wondering about factoring in the cost of the lander too, but haven't wondered very much. I think we should put a term in for it. It'd be interesting to see how often it is of consequence. And that's a good point about not needing to worry about the human factor (phew).
Of course, this script doesn't work out what happens for the geometry of a planet in sc2, with the wrap-around. Also it doesn't give the total time as Fyzix was saying, for that one would have to multiply the mean separation by number. So, the dependence in varynumber.jpg gets reduced, and the dependence in varysize.jpg gets increased (underscores your thoughts against assuming uniform random distribution, Fyzix).
Happy to take suggestions on any similar investigations. Maybe I'll look into doing total time directly. PsiPhi, you made your own starmap? Me too, ah, the memories, I'd guess many of us did! --Zeracles 01:05, 21 October 2007 (CEST)
When thinking about factoring in the cost of the lander, we need to think about the probability of losing it (this isn't really new, for factoring in the cost of crew, we use frequency of hazards which is related to probability per unit time of hazard striking). For thinking about this, I guess one could think about what has to happen for a lander to be lost. Hazards have to conspire to destroy the lander within a time such that the player doesn't have time to react (I'll just say time_reaction for now). We could call this conspiracy event_loss. The probability of event_loss increases as the lander loses crew. The probability of losing the lander, then, is the integral of this probability over the time the lander spends on the surface (so we just sum this probability, which is changing, over the lander's time on the surface). Sound fair? I'll go on if no-one wants to add anything. --Zeracles 01:44, 30 October 2007 (CET)