My idea:
As asteroids are created they come pregenerated with set commodities/resources. This could be several different types or just a singular type. This information is "hidden" from the player. Upon scanning of the asteroid a result is returned that gives a variation based on percentile of scanning equipment of possible resources contained within. This new information is calculated and then made visible via a "tag", much like ships currently are.
As for the scanners, a single scanner could hold set resources of up to three varieties. For these purposes we will call them Tactical, Environmental, and Astrogation. Tactical gives information on ships: Their fire power, their AI skill level, the type of ship. Astrogation gives information on the system you are in: Asteroid fields, planets, wormhole detection. The better the scanner, the further away you can view via RTS map the current system without having explored it yet (think the black out areas in other RTS's or even freelancer's inability to detect fields or bases until within a set distance). Environmental is for the scanning of asteroids for mining purposes. Every scanner can have one to all three of these things at different ratings. The higher the rating, the more accurate and/or further away the information that can be obtained. For this example we will use a base of 1-100.
Ship A buys a scanner that is Tactical 50, Astrogation 20. - This scanner is not very good at it's job. The ship increases the range of system sensor by only 20%. The tactical information it will display on the AI skill of another ship would be (actual numerical AI skill * (RNG -0.50 to 0.50)) not giving a very good guess.
Ship B buys a scanner that has Tactical 90 - This scanner is excellent at determining the skill of an AI on a ship. (actual numerical AI skill * (RNG -0.10 to 0.10))
Ship C buys a scanner that has Astrogation 50, Environmental 70. This scanner is decent at extending the range of discovering in a system ( a 50% increase). But is only so-so at determining the amount and types of resources in an asteroid for mining. If the ship scanned an asteroid that only had a single resources (actual numerical number of resource * (RNG -0.30 to 0.30)). If an asteroid had more than one resource there comes a chance you could miss the smaller number of resources due to poor scanning. For an asteroid with 100 resource X, 20 resource Y, 75 resource Z you first put resources in decending order (Resource X, Resource Z, Resource Y) then you have an RNG run three times 1-100 that would lead to yielding results like 20, 88, 69 (put output in ascending order) yielding 20, 69, 88. Stack first resource in ordered amount to first RNG ordered number. Because the Environmental scanner is a 70, a result of 1-70 will confirm the existence of the resources. Because the first descending ordered RNG number is 20 resource X is confirmed. Now comes the resolution of the amount (actual numerical number of resource X * (RNG -0.30 to 0.30)). In this mock up Resource X and Resource Z will be confirmed but resource Y will not. (it is a lot like doing critical hits in most RPG's)
Ship D buys a scanner that has Tactical 40, Astrogation 10, Environmental 40. While this scanner, when equipped, can do all three things, it obviously does nothing well.
Similarly, with this static numerical number locked into asteroids when it comes time to mine them (because a drill does not care how many resources a computer thought was there, just what actually IS there) just shooting an asteroid would yield only a small portion of the actual numerical value of resources contained therein. Say 10-20%. The mining "drills" that I assume would take weapon slots would be able to extract a variable amount more. I would also assume that shooting them is fast and easy but yields little. Actual mining drills take longer (the better the drill the less time) and have the ability to extract more (the better the drill the more able to be extracted) similar to damage vs. RoF on weapons.
pseudocode in case my explanation sucked in case Ship C. Also remember this is a super simple rough rough rough not even first draft kind of idea. I expect more from Josh, but never underestimate the power of simple solutions.
Code: Select all
Create object 'asteroid 001'
run automated task in conjunction with creation
Give resources amount
Given Resource 'Water' = 100
Given Resource 'Metal' = 20
Given Resource 'Alien Organism' = 75
Given variable 'numbered resources' = 3
Order Resources in descending order
'Water', 'Alien Organism', 'Metal'
Create 'Tag' for each resource
Show 'Tags' = False
'Ship C' with 'ENVIRONMENTAL' = 70 scan of 'asteroid 001'
Run (RNG 1-100) 'numbered resources' times
RNG1 = 20, RNG2 = 88, RNG3 = 69
Order RNG's in ascending order
RNG1, RNG3, RNG2
IF RNG1 < or = 'ENVIRONMENTAL'
THEN ('Water' * (RNG -0.30 to 0.30)) = 'Water Tag'
Show 'Water Tag' = True
ELSE
goto line 99
// YEA YEA, BUT NEVER BERATE THE POWER OF A "GOTO" COMMAND even if it is used wrong here
IF RNG3 < or = 'ENVIRONMENTAL'
THEN ('Alien Organism' * (RNG -0.30 to 0.30)) = 'Alien Organism Tag'
Show 'Alien Organism Tag' = True
ELSE
goto line 99
IF RNG2 < or = 'ENVIRONMENTAL'
THEN ('Metal' * (RNG -0.30 to 0.30)) = 'Metal Tag'
Show 'Metal Tag' = True
ELSE
goto line 99
line 99 End scan beam