Cashgen - (kinda) Infinite Procedural World Generator

To answer 3 and 4.

3: This isn’t a voxel world that i know of.

4: Go look at https://forums.unrealengine.com/showthread.php?42092-Community-Project-WIP-Weather-amp-Ocean-Water-Shader this will tell you how the water works.

  1. Nope. The Landscape tools are designed for editor use, I’ve not looked into it much but I read enough to know that using Landscape features at runtime was not going to be fun.

  2. Easy enough to add another weightmap for actors, in addition to the instanced mesh spawning!

  3. It’s heightmap based, so no overhangs or caves. There’s no reason why you couldn’t deform the underlying heightmap and refresh the mesh in realtime but it’s not really set up for that, would need quite a bit of refactoring and optimisation to make it work well.

  4. I think OceanPlugin has various tools for this, I’m already using the Ocean actor so imagine it would be pretty easy to make it swimmable.

  5. It’s currently restricted to the 20kmx20km UE level limit…but as soon as I get the world origin rebasing in, it’s theoretically infinite. The terrain is deterministic so it will always be the same whenever the player goes back to it, but anything the player interacts with? You’d need to take care of persisting those changes out somewhere.

I’m mega busy and juggling a few other projects at the moment so unlikely to be working on this in the next few weeks. If anyone wants to have a crack at world origin rebasing, go fork it on github :slight_smile:

Hello…I cloned the project to mac and tried to compile it…then it returned " could not be compiled, try rebuilding from source manually ". Can you please tell me how to solve it? Thanks a lot:)

Hmm, I don’t have a mac to test on. Try removing all the intermediate/binary folders and rebuilding.

Thanks

Thanks mid_gen for the quick reply and answers to my questions. Great work again, but it sounds like it is not quite what i need. Keep up the good work, as I’m sure many others will be able to use it, and I might at a later date. Good to know there are people interested in providing great stuff like this to the community for little or no cost. Hopefully I’ll be able to contribute myself once I learn how to use the engine well.

Thanks again

Started working on this again, getting some nicer noise and foliage spawning. Here’s a very rough video…all sorts of silly settings on, probably hundreds of thousands of meshes on the go…

I haven’t looked at this plugin but it looks amazing! how do you think would it be possible to generate a heightmap texture and update it so that the ocean plugin would soften the shores?

I haven’t looked into how Oceanplugin handles shorelines yet, I’ll add it to the list. I’ve got the heightmap stored per zone, so I’d have to stitch it together and make the texture, but certainly do-able. Or just crank it out directly from the noise module…depends what resolution it needs.

Took a bit of time to make a nicer video with the excellent grass from @AaronWith2As - [FREE] Advanced Cinematic Grass Blueprint with 3D Imposter Sprite foliage - World Creation - Epic Developer Community Forums . I’m hoping he’s open to letting me include the grass in this project so I can get the complete setup out there :slight_smile:

It didn’t compile on mac for me initially because ‘Point’ is already defined in MacTypes.h. I refactored it to be CPoint and then everything worked.

This is pretty awesome, to say the least. One request though, if it hadn’t already been brought up: add material instance selection in the ZoneConfig. Also, I get random crashes depending on any given configuration for noise. It seems if I start play, and don’t look down towards the terrain that’s generating, it plays nice, but chaotically things will crash if I look at the generating tiles. Very weird! I tried tweaking render tokens and threads to see if that made a difference, but it seems to come down to the complexity of noise…

Anyhow, great work and thanks a ton for sharing such a cool resource.

[edit]
I changed the regular material input to a material instance in the source, which works fine. Just don’t want to modify and fight against your updates :stuck_out_tongue:
[/edit]

Yep go right ahead mid_gen :). Can’t wait to see your project finished, looks awesome already.

Awesome @AaronWith2As, thanks :slight_smile:

This is probably the noiseGenerator being garbage collected. Holding a UPROPERTY pointer to it in a USTRUCT doesn’t appear to contribute to reference count so it gets zapped with the first GC sweep. Just add a UFNNoiseGenerator reference to the world BP and set it, should solve that one.

I’ve got an afternoon to work on this today so I’m doing a big refactor and tidy up, will have an update later today that will include the swish grass :slight_smile:

Pushed a fairly big update.

*Added @AaronWith2As lovely grass and included in the demo scene
*Removed debug text
*Fixed GC of noise generator
*Fixed struct name collision with Mac build
*Partial implementation of minimap (not finished)

2016-09-03.png

2016-09-03 (1).png

i can’t get it to launch on UE 4.12.5

Can you build the project in VS?

i can’t even generate VS project files:

“Running E:/Program Files/Epic Games/4.12/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -project=“E:/Users/Bobby/Documents/Unreal Projects/cashgenUE-/cashgenUE.uproject” -game -rocket -progress
Discovering modules, targets and source code for project…
Messages while compiling E:\Program Files\Epic Games\4.12\Engine\Intermediate\Build\BuildRules\UE4Rules.dll:
e:\Program Files\Epic Games\4.12\Engine\Plugins\Runtime\RuntimeMeshComponent\Source\RuntimeMeshComponent.Build.cs(5,14) : error CS0101: The namespace ‘<global namespace>’ already contains a definition for ‘RuntimeMeshComponent’
UnrealBuildTool Exception: ERROR: UnrealBuildTool encountered an error while compiling source files”

Hmm, do you have the runtime mesh component installed as an engine plug-in already? It’s included in the project…

I’ll have to look at it in the morning…

yes, i have the runtime mesh component plugin from the UE4 Marketplace installed

EDIT: that was the. it launches now, but all i have now is just a huge ocean, no land or any vegetation.

Ok I might remove the RTMC from the project then and just add the marketplace version as a pre-requisite.

You sure it’s empty? On play it takes a few seconds for the terrain to initially load in. If you’re using the demo scene you should see land on one side.

It’s quite easy to use noise generator parameters that don’t generate visible terrain. As I get the minimap preview done I’ll make a demo room where you can preview the heightmap before launching the terrain build.

Updated - Removed RuntimeMeshComponent from project plugins

**You will now need to install RuntimeMeshComponent to your engine version to run the project.
**