Cashgen - (kinda) Infinite Procedural World Generator

Yes, it’s definitely possible to do so. But I do not think that will be needed after all. Your plugin will have all the features, and more, that we need to make our game.
And you are doing an awesome job on this plugin. To be honest, there would not be a game without this. :o
And it’s kinda rare to see work still be done after over a year on the forums. So, thank you for sticking around with it and continue developing it. That’s awesome and a good inspiration.

Hey mid_gen, would it be terribly difficult to make the tiles start building from the pawn outward, maybe putting the N,S,E,W directions in separate threads so they spawn outwards at the same time, and then applying a materializing effect, such as Materialize VFX for example, as it’s spawning?

Not asking you to do it, just wondering how difficult you think it would be, if it’s even worth tackling.

@mid_gen

We are currently encountering an we think is related to the plugin. With that said. We are not sure, but we have to start somewhere to figure it out.
When we make a CGWorld in it’s own streaming level, all but 1 world tile is owned by the actor of the streamed level. The rest of the tiles seems to belong to the persistent level. It seems like the CGWorld’s does not have an owner set.

I have done some research, and a while back, this was an that Unreal Engine had. But I’ve managed to get all the other actors I spawn to belong to an owner, and that solved the for those actors.
So, from what I can see, the CGWorldsFace actors has some issues with this owner thing.

My guess is that this will be solved when the refacturing of the “engine” of that part of the plugin is done?

Is there a way to increase the overall “resolution” of the terrain?

I’m playing around with XTiles, YTiles, Unite Size etc.

But my terrain still looks blocky

Unit size will define the ‘resolution’ of the terrain.

Is there a way to utilize this system in a blueprint project instead of a C++ project?

Should be able to compile the plugins and drop them into a BP project? Not something I’ve tried though (or have time to) I’m afraid. Sure some people here are more clued up in that regard.

Finally got some time to sort out the tile management stuff and move away from the simple column/row flipping. First step to getting multiplayer working.

Nearly there…finally!

Got some bugs to work out still, but multiplayer support is kinda working.

Create a CGTerrainManager blueprint as usual and add to your level, set it up as per below for a demo scene.

Add a CGTerrainTrackerComponent to any actors/pawns that you want terrain around (It’ll need to be one with replication support like the third-person sample for multiplayer)

When you start, any actor with the component will find and register itself with the TerrainManager (once it is ready). The TerrainManager will then ensure there are terrain tiles around that actor.

All the terrain is done client-side so there is no replication involved other than the pawn locations. Probably all sorts of opportunity for jankiness and bugs but I’ll deal with that later :slight_smile:

Multiplayer fixed and working. Just need some cleaning up and adding in LOD support + transitions etc.

Any plans doing multiplayer for world generator?

WONDERFUL JUST WONDERFUL!!! I love it

Hi, I’ve been checking out your plugin on GitHub, and would love a more comprehensive explanation on how to set this up in C++ only, without blueprints if possible :slight_smile: Thanks!

It’s not fundamentally any different in C++ over blueprints, you should be able to follow the same instructions, just substituting the blueprint method calls with the underlying UFUNCTION or UPROPERTY.

Current roadmap btw :

  • Finish the multiplayer refactoring (almost done, just working on LODs)
  • Do an optimisation pass
  • Clean up code and stabilise the API (e.g. the new Tracker component, setup method, config struct etc)
  • Stick a 1.0 tag on it, tidy up documentation, make some new tutorial videos.
  • Add a new prop/foliage scattering system back in
  • Find/create some materials

Multiplayer LODs working on multiplayer branch.

Now for some cleanup.

Big cleanup and refactor. Moved to a faster update path and more efficient data structure with the RMC so performance has improved markedly.

Tracking component will now hide and freeze characters until terrain is complete.

Need to fix the wonky broken normals and tangents.

Ah that sounds just fantastic! Having a great time reading your code, thanks! :slight_smile:

Don’t judge me! There’s some awful code in there :stuck_out_tongue:

It’s getting better though :slight_smile:

Multiplayer branch is now at parity with . I’ll merge it in the next couple of days. Various cleanups and stuff gone in