Planetary Generation Prototype Creation

I am interested in joining work on the planetary generation side of things. I am seeing now that hhyyrylainen is starting work on prototypes for the later stages, and I was wondering if any work has been started on the 3D world generation yet, or if I could start working on it to help out the later stages.

I am interested in helping create the system that generates the 3D world model(s) from the world parameters, and also creating the patches from the topographical/weather/etc. maps of the world to integrate with the existing patch visualization in cellular stage.

I have already seen on the development forums the creation of the world generation prototype for the world parameters (Planet Generation - #48 by Nunz - Theory - Thrive Development Forum), but I was unable to find any mentions of anyone actually beginning code that will generate the 3D world for the game. I have also seen the discussion about the patch map, and how the topographic maps of the planet should be viewed as patches in the cellular stage (Patch Map Design Discussion - #119 by Narotiza - Theory - Thrive Development Forum).

I have already begun testing code for generating patches based on heightmap data from the generated world model’s terrain; this would result in designating the different patches on a large scale (continents and oceans) as well as smaller scales when increasing subdivision. I was not able to find any mentions on the forum of how the determination of patch size and location will be done on the planet, so I decided to start here with a prototype that uses the DBSCAN algorithm to create the patches based on the world heightmap stored as a 2D image.

Also, for the planet model generation I am currently thinking of generating the planet using the standard techniques of noise map layers, and initially ignoring more complicated features of world generation that has been discussed such as tectonic plate movements or dynamically changing terrain across eras. These features could be added into the world generation later on when the basics are more developed.

I would like to know if I have missed anything when trying to get a overview of what needs to be done for this section of the game, such as if other people are currently working on it that I have missed, or any important details about the game that needs to be taken account for. I have more thoughts about this topic, but wanted to see what others thought about this before I did anything else in case I am way off base here in my concept of everything.


Welcome to the forums, @HyperbolicHadron!
Hope you enjoy your stay! :smiley:
(I don’t, but as the self-proclaimed ambassador of Thrive’s Space Stage, i am obliged to tell you that you probably should.)

Turns out, you did get better responses on Discord, but only after the relevant developers were pinged. I’ll link where some replies happened on Discord: Discord

From my side I’ll say that just the basic shape generation was worked on a bit, but no code was committed to the Thrive main repo. I saw multiple programmers debating on what’s the best planet generation topology ( Icosphere being the only good one). But that’s basically all I can tell you. Working on how the patch data is derived from the world is something that would not be duplicate work in any case.

Whatever happened to CubeSphere and Fibonacci ball?

Here is a summary of the conversation had on Discord:

Game Dungeon has begun work on a icosphere generation prototype, to be found on github. The icosphere is still the top candidate between it and a cubesphere version, but HyperbolicHadron intends on including the cubesphere as an alternative option for initial prototyping comparisons.

The terrain generation method must be able to eventually support creation of features such as caves or other similar features that require multiple vertex layers on the planet. This might be implemented as an integral part of the main terrain generation pass, or it might be as a separate pass on a single layered terrain.

The current terrain generation method is to start with a sphere and morph it into the final terrain. A format similar to a svg would be created for each planet, and would contain the list of instructions and seeds for creating terrain features so that the planet could be generated everytime the planet is loaded. This planet terrain feature specification format will need to be discussed and created at some point during the planet generation prototype phase.

It seems like no work has been started yet for the patch generation from the final planet data, other than what HyperbolicHadron has now begun discussing.