Cashgen - (kinda) Infinite Procedural World Generator

Ok after a bit of thinking and talking with Woppin, I’m going to make a branch and refactor the plugin a fair bit. Things to do:

  • Do away with the ZoneManager Actor
  • Replace the zone manager with a UObject that is purely responsible for generating heightmaps/zone mesh data
    This class will have a generic base so different mesh generation algorithms can be swapped in and out
  • WorldManager will contain :
  • Array of ZoneManager UObjects
  • RuntimeMeshComponents
  • Pool of of LOD data structures and corresponding RMC pointers
  • Foliage spawning component

This should make multiplayer implementation a lot easier for starters.

It’ll save a shedload of memory as instead of maintaining complete mesh data structures for every LOD + zone, I’ll just have a pool big enough to use for current in-process generation jobs. This should give a 99.5%+ memory saving on the demo scene.

Foliage spawning will now be done at the world level, spawning in a radius around the pawn, this’ll save a ton of draw calls and duplicate ISMC components.

Also going to switch to a single re-used worker thread for mesh data generation instead of spinning up a new one all the time.

Shouldn’t be too big a job (hopefully). There’s only about 1000 lines of real code in the plugin.