Wednesday, September 21, 2016

Star systems, and planets, and fun, oh my!

I made much progress this evening.  For the star system generator, I completed the export to CSV feature and the initial work on giving the gas giants their fair share of moons.  As you can see in the screenshot below, that can be a lot of moons!  As a result, there's now a View menu with an option to display the moons or not.

The Habitable column and calculations for it were also added.  This makes it easy to see if a world is human habitable rather than checking gravity, pressure, and temperature values and trying to remember what levels are acceptable or not.  Since I've added that, I've run many iterations and have ended up with some interesting worlds.  There've been a few marginally-habitable ice worlds, and a couple water worlds that would be fine for humans - if there was any land!

Alternate console and web front ends also seem like they'd be easy to add once the last of the code (finish the moon stuff, and atmospheric calculations) is complete and cleaned up.  A console version could easily be made to work with .NET Core, and hence should be able to run on Linux and Mac OS/X.


For the planet generator program, I did a bit of refactoring which leaves the code a bit cleaner.  It still needs a bit of work, but I should be able to split off the planet texture generation into code that can be used by non-WPF applications, like the web.  Also, the code for terrestrial planet generation has reached a state where it generates something worth showing.

At the moment, everything at or below sea level is a single shade of blue, and gray scale elevation-based shading has been applied to the land masses.  As I continue, I aim to apply fractal-perturbed latitude-based coloring like Musgrave demonstrated in his dissertation.  The two images demonstrating the current state are the 3D and flat map views of the same world.

Additional development should include clouds, and ice.  The star system generator can generate hydrosphere, cloud, and ice percentages that could be used as inputs for the planet generator.

I'm not sure about the cross-platform potential on this one.  The 3D graphics would have to be almost completely redone for OpenGL if I were to retain 3D capability, but 2D mode would definitely be possible via web and as binary output from a console application.  I don't know if I'll go there or not, I'm just musing aloud.

No comments:

Post a Comment