Cashgen - (kinda) Infinite Procedural World Generator

Playing around with this plugin.
And already, in it’s current state, I’m having a lot of fun. :smiley:

Cool :>

Just be careful with the number of subdivisions and limits when it’s in this very crude state!

SubDivisions = Number of times the original 20 faces are subdivided.

SubDivLimit = If the remaining number of subdivisions exceeds this limit, then the current face will spawn 4 child faces

Don’t exceed SubDivisions/SubDivlimit = 3 would be my advice :stuck_out_tongue:

20 face actors
20 + 80 face actors
20 + 80 + 320 face actors

I’ve noticed what you mention.

The image above has these settings:
UE4Editor_2017-06-28_11-20-25.png

It does spawn a few more than I would like it to, but this might even be a bit too many subdivisions.
So, a lot of testing and playing around at this point. :slight_smile:

EDIT:

And thanks. :o

@mid_gen

Is there a way to get the end of thread callback or whatever it’s called, after every CGWorldFace has been generated?
In a game situation, that would be a very useful .
Or is that a simple thing to add on my own, maybe?

EDIT: First off, sorry for all the double posts.
And I figured out that I could just as well look into adding a something that gives feedback on when the thread is finished.

I’m getting this error when trying to run a packaged game:
2017-06-29.png

Can add a blueprint event or delegate easy enough. You’re welcome to submit a PR, contributions welcome. I’m busy this weekend so it’ll be next week at least before I do any more work on it.

Included CashGen in your project’s build.cs ? That’s usually the problem with packaging

C++ is not my strongest language to be honest. So, to begin with. I’ll just play around with the code and see what and where I can add code without breaking things.
Could you give me a point in the right direction on where/what file I could add a blueprint event or delegate? :o

EDIT:
So, I’ve actually managed to add a blueprint event to the plugin. Now, I need to figure out the hard part. What to use to trigger the event.

Another EDIT:
Ok, that was a lot easier than I thought. Tho, I guess it’s a totally newbish way to do it. But it works at least, and I don’t think it adds any load to the current performance. :o

@mid_gen
I have noticed that the collisions are not being set for the sections created with CGWorld. Could you explain how I can re-enable the collisions? Or do the normals and tangents have to be calculated before collision can be enabled?

I smell what you’re stepping in. I tried the same thing, tried directing the waves toward the player, etc. I can’t tell you how many times I’ve installed and uninstalled that plugin over the years. I’ve been using the ocean BP from Tropic Islands in the meantime but I just stumbled upon Beach Wave Water on the marketplace. Looks promising. Thanks for the contribution btw. :slight_smile:

I’ve not exposed the setting to BPs yet.

Up to my ears on a new project learning a new engine so haven’t had time to look at this for a few weeks. Will try and fit some time in over the weekend.

@mid_gen
I see. New project and engine sounds interesting.
Sounds good. Looking forward to the update on the plugin.

I would love to make collision work on my own. But I lack the knowledge on where an how to do that.

Sorry for the delay! I’ve added a collision option to the world config, pushed to the CG_World branch. Brain is totally maxed out absorbing other engine stuff at the moment so firing up Unreal when I get home isn’t happening for a while :>

Thank you very much! No need to be sorry. :smiley:
I mean, you are taking the time to do work on the this awesome plugin while working on something else.

I will have a look at it in a bit. Trying to get through a C++ course to get a better understanding of this untamed beast. Well, it’s a beast to me at least. :stuck_out_tongue:

I can understand that taking in a new engine makes the brain boil.
Mind telling what engine it is? I know it’s like a unwritten rule that says not to mention other engines on an engine forum and so on. But just out of curiosity. :slight_smile:

@mid_gen
I’ve been playing around to get the collision on the CGWorld. But it seems to not be working. I’ve downloaded the branch and implemented it to a fresh project. Terrain works just fine, but the World still does not seem to have collision. :confused:

Hi,
Really nice plugin.

I’m trying to add vegetation to it but how did you managed to do this in your videos? I Tryied to use the grass node in the material but it only works with layers right?

Oh, and I have some problems that I don’t see in your images/videos:
https://img4.hostingpics.net/pics/934700bug.jpg

@mid_gen

Never mind. I managed to fix it.

By adding this:



MeshComponent->CookCollisionNow();


to CGWorldFace.cpp under UpdateMesh.

It really slows down the process, but it’s worth it!

For my foliage question, at least is there a way to know when a tile has been generated so I can’t start an event right after each tile generation, event which raytracing and spawning foliage meshes?

@Haoris
Hi.

Are you referring to the “flat” land from the branch, the tiles, not the spherical ?
As far as I know, there is no event added to tell when a tile has been placed.
With that said. I don’t think it’s too hard to add it. I’ve been playing around with the CGWorld more than the terrain part, so I can’t say it for sure.
I would have to do more research before I could tell you how tho.