HyperbolicHadron - New Programmer

I am trying to design the world generator to be as separate as possible from the main Thrive codebase without compromising on performance or features. (While still designing the features of the world generator specifically for Thrive). This would ideally result in a separate project with a clean interface as a natural result (if designed well). This would mostly be to make the design of the game as a whole more clean and maintainable, as well as more modifiable if you can just swap out the world generator without ripping it out of the engine, but it could potentially be used for other projects as well. This is all similar to the Story Engine you described here: Story Engine which I am a fan of.

I will be describing it more in the thread I make later, but I am currently thinking of the design of the world generator being something like Google’s S2: https://s2geometry.io/ or Uber’s H3: https://www.uber.com/blog/h3/
These are both (part of) geographic information systems built for storing and managing different data layers associated with geographical locations. These include terrain height, city populations, building placement, climates, etc.
The Thrive world generator would then serve as a sort of database that the game would query for both simulation and for rendering. Unlike S2 or H3 though, the world will have features that are generated dynamically (such as new terrain generation) or features that are persistent, such as individual buildings that are placed manually by the player.

3 Likes