Is procedural terrain generation possibile in Unreal Engine?

Hello!
I’m trying to create a game witch procedurally generated terrain. But I don’t know is this possibile at all.

If procedural generation is possibile in Unreal, can someone tell me how to do this or send me a link to docks or other inforamation source?

For all help, thanks, and sorry for bad engilsch.

2 Likes

It is possible. What kind of procedural generation are you looking for? Voxel Plugin generates terrain at runtime and has a free version you can use. If you want to use landscapes instead, runtime generation can get a bit more tricky.

It’s very possible but if you want it done smoothly it will require c++ and lot of custom code specifically designed around managing large data processing and feeding it to the main game frame thread.

Blueprints are notoriously slower than c++ and you probably want to create a single mesh as often as possible that can be saved and be manipulated through your in game events.

There are some videos on how to do it cheaply with blueprints and some ue tools too but if you want full control and the best quality you want to use a C++ multithreaded custom solution per your projects specific needs.

Thanks you so much.
I’m going to do this by myself. Your ansewer is very good, but i have some other questions:

Firstly, i don’t know what type of unreal c++ class should I use to make this terrain generator. (Actor, or something like that)

Second questions is:
Is doeing this require modifying the Unreal source code, and super hightly advanced c++ skills? (I know seriously much things about UE C++ , but i’m not at space level od this skills.)

For all answers thanks.

You could go about doing it a number of ways but it is a big task with a number or large tasks in it still and knowledge on creating optimized large-data handling, multithreaded software in c++ and even still there if you want more advanced features basically you want your own “Nanite” algorithm for your mesh and normals and textures and physics and all appropriately set up for network replication if you want multiplayer.

After all of this posts, i can think: this is possibile at all, but i’m not sure is It possibile to me, at my level of skills.

I don’t have needed knowledge and inforamation to start this project, but i should do some more research about that. If you have some other inforamation, i will be very happy.

Althought of all, thank you.

Hey Kev, I just wanted to encourage you: I am sure you you can do some procedural terrain even if this was your first project in UE. Have you thought about doing a tile-based approach? You can piece together a 3d landscape from tiles and do it all in Blueprints.

That’s only true for generation that doesn’t happen at runtime though. To make Landscapes work with runtime generated heightmaps you have to work with c++. The import functions that are accessible in the editor are editor-only. On the plus side though, using landscape means you generate the heightmaps using render targets and benefit from all the optimisations Landscapes already provide.

@Kev_Iron
Since you’re not telling me what you want to do, let me bury you in information sources on the topic:

3 Likes

Sorry, for not response but
I don’t know how i can describe It to you, but i try:

I’m trying to create a procedural terrain generation at runtime. (I need modular system that allow me to add new structures like village to a generator. I need to generate mountains, lakes, trees, oceans and grass.)

When player moves around the map, fragments (chunks) of map are saving to a file and can be loaded, when player moves to this location.

I don’t need to make this terrain destructible or allow player to modify It.

If you need some other inforamation tell me.

Thanks, this already helps a lot to understand what you’re going for. With what you want to do I would recommend to concentrate on the terrain generation maths, and use existing tools to generate the terrain itself. You will have to do quite a bit of research on noise. This video series should get you started: Landmass Generation
Initially I would recommend playing around with heightmap generation for Unreal’s Landscapes using UE’s noise nodes for Materials, Draw to Render Target and Blutility Widgets, just to get a feel for working with noise. This also gives you an opportunity to try and work with placing actors in the scene based on terrain data. Once you feel you understand that well enough to move on to runtime generation, I would recommend using the free version of Voxel Plugin and moving to C++, simply because you’ll be spending a ton of time with everything else already. Depending on whether you want infinite generation or not you’ll have different generation tricks at your disposal as well, but I’ll leave discovering all that to you, otherwise I’ll be writing a whole book here.

2 Likes

This weeks Unreal Engine stream is about the new Geometry Tools in UE5. The second half of the stream talked about the new Blueprint library added for manipulating geometry. The guy who talks about it is the engineer who developed it. He has his own channel as well.

Just starting out you can use the ProceduralMesh component to get things going and build out a simple terrain to test things out as it is pretty easy to use, but I concur with CrispClover with pretty much all they say.

If it’s something you need to get done, or don’t want to invest the time in, fork out the money for the Voxel plugin pro as it has the tools you are looking for (of course do your own research to make sure of this). I use the free plugin for terrain generation, and it works beautifully, but it took a bit to get ahold of and I’m experienced with c++ and UE4.

1 Like

I need a fully automated (scripting and then whatever/C++) way to create out of polygons a grass/lawn/tree/bush landscape. That is all. Combined with some prededinfed procedures I would like to automatically create a 4kmovie/maps/screenshots - all in batch.
Is that possible ( I assume “of course ;-)”) and are there reference projects I can jump on?
Thanks 9flogen.