Asteroid Mining that Feels More Like Mining

I spent a lot of time this week on generating asteroids with more realistic sizes and making them produce “drops” more realistically. Instead of the whole asteroid breaking apart all at once, it now steadily drops resources as you mine it, until its hit-points reach zero. It’s slow and feels like work, which is good! There’s your motivation to build some bigger guns.

There is a lot of information out there about how many asteroids exist in our solar system, as well as their sizes. I rewrote the pseudorandom generator to really match up with that data. The actual sizes are shown on this chart:

Marco Colombo, DensityDesign Research Lab – CC BY-SA 4.0

The gist of the data is that there is only one asteroid in our solar system with a diameter of about 1000 km (Ceres), about a hundred with a diameter of about 100 km, about 10000 with a diameter of about 10 km, and so on. In other words, when the diameter goes down by a factor of 10, the number of asteroids of that size goes up by a factor of 100. I don’t know why but that kind of trend is fascinating to me. It’s like the “rarity” factor you see in a lot of games. Another way to look at it is that an asteroid 10 times bigger than the one you just found is 100 times more rare. It adds a quest element.

I haven’t found it yet, but there is actually a seed, somewhere, that would generate an asteroid about 1000 km across! I’m sure my game’s collision mechanics would fall apart. But I do actually want this to be something the player can find, eventually.

For now, the next step is to expand the area where rocks are found. It’s currently just a 200 x 200 meter square. Now that I have pseudorandom generation working, what I can do is break up all of space into a grid and use the grid’s (x, y) coordinates as the seed so that every sector gets a unique set of rocks. That will allow the player to fly effectively forever in any direction and always find new stuff.

Check out the new rocks in version

Leave a Reply

Your email address will not be published.