Procedural Terrain


I have a nice procedural terrain generation system that I built in unity 3d and am just about to do a rebuild to implement some ideas that I have to make it designer friendly.

Here are some images / videos :,

My generation system handles heightmap generation, texturing and vegetation. The basics of what you need to generate a scene to build your game in, and you can generate within the editor itself, or at run time, depending on your space vs speed / lighting needs. With a few hours of tweaking you get nice starter environments for your game going.

I am considering rewriting the core and then wrapping it so that it can be used both in Unity and in Unreal by adding C# & Blueprint wrappers around it.

From what I am reading it is not possible to create a terrain by code in the Unreal Engine at run time. I was wondering if it is possible at design time ?


Here’s a sample:


As an addendum, a lot of terrain generators just plonk fractals into a scene, and you then need to do a lot of massaging to turn them into something useful.

What I am trying to create is something that make it quick and easy for non programmer / artists to use to create gorgeous natural environments. For example with my current system a new designed map from scratch is a few minutes work, plus how ever much time you want to spend tweaking the textures and vegetation assets.

In the new iteration I am working on the designer will design the scene as a set of key terrain features (mountains, rolling hills, lake etc), that can be placed where ever you want to create the game play you want. I support both heightmap import and feature placement, so you can create your base in world machine and then customise, or just do it all with my tools.

Once the base heightmap / mesh is generated texturing and vegetation placement is then generated procedurally… so your textures always make sense in the context of the terrain / map, as does the placement of grass, shrubs and trees.

Any suggestions on where to look to get a sense of how I could integrate my work into the UE and expose as blueprints or suggestions on better alternatives, would be much appreciated.

I think I saw something about Epic making the terrain system accessible in 4.6. I would be happy to work with this if that’s what it would take to make my ideas real :slight_smile:

I have no idea how to go about accomplishing what you want to do but I really want to be able to use what you’re trying to make, it looks amazing!

You got the full source code of the engine, so you can change/add whatever you like, look how stuff in the engine is done, asf. Get the engine sources from GitHub and take a look how existing parts of the Engine are implemented and brutally steal and bend all the relevant code to implement yours :wink:

If you want to create stuff dynamically at runtime look at GitHub - SRombauts/UE4ProceduralMesh: UE4.7 Procedural Mesh Generation plugin and the threads about it. I think that excludes static lightning et al.

Creating a static enviroment would be exampled in the Engine code itself. Might be rather complex.

You said from what you’ve heard Terrain at runtime wouldn’t be possible, its more about changing terrain done with Landscape at runtime isn’t in the Engine right now. Your own module would allow whatever you implement.

Thanks Mikand!

As someone new to the engine i was hoping not to dig into the source straight off the bat, as i suspect that this is deep, and there are often layers of dependencies that make understanding to a newbie difficult.

That said, will go there if i need to :slight_smile:

1 Like

They have talked about upcoming improvements to large world support for 4.6, but I haven’t seen any specifics as to what that entails.

Basically the whole landscape system needs to be exposed to blueprints so hopefully that is a large part of their focus. I am all about procedural access from blueprints, even if I don’t currently have a use for it. :slight_smile:

Adam if your going to dive into it please keep us posted. This would be awesome.

From what I can tell, getting access to the underlying terrain capabilities in the editor is not currently feasible, and I am hoping as suggested by Zeustiak they they will expose it soon. In the mean time I have started on the next iteration of my system in Unity3d, and am implementing it so that it will be easy to port to UE later.

Here is a screen shot of my WIP. It is a 2km x 2km scene. I have placed two terrain features into it as relatively low res procedurally generated meshes. One is fractal driven, the other is a heightmap that I imported from World machine (did that purely cause i want to support both).

You physically select the meshes, move them, scale them, change the fractal generation parameters and generally lay things out the way you eventually want them to be.

The final step after creating the layout is to generate the underlying terrain, texture it, and plant it.


Here is my progress for this week :

And I just ran up a quick scene in Unity 5 using SpeedTree assets:

With a video here:

How is your project going for Unreal 4?


Its on hold at moment.

I didn’t get any sort of response that indicated that it was feasible without jumping in deep to the source code of UE4, so have focused on Unity instead.

Here’s something i did with Unity 5 and SpeedTree over Christmas. Its a combination of procedural and manual.

I will come back to UE after the Unity version is complete.


Don’t understand why people aren’t trampling each other to death in search of these types of features.
Either way, here’s hoping this type of functionality shows up on the UE4 marketplace soon…

Actually its coming along really nicely and will be in the store soon, if you like Unity that is :slight_smile:

It’s been built in a modular way, so at some point maybe I will port it to Unreal.

Cheers for the update … :slight_smile:

You might want to revisit it with UE 4.8 being out. It might support what you need?

I am brand new myself and started looking into UE4 again after the Kite demo at GDC.

Out of curiosity, did this die or continue on elsewhere? Really don’t want to jump ship to Unity at this point in development but I have a strong desire for procedural terrain.

I ended up doing it on Unity and built a bunch of products - Gaia, Gena and Pegasus and now make my living out of what i make by selling them on the unity asset store.

Gaia is the primary one - and generally is among the top 10 most popular assets on the store. It’s currently being rewritten and will support multi tile / very large world generation and some sophisticated erosion and a bunch of other terrain deformation capabilities. I am also bringing it all to GPU Compute, so all this will be possible in real time.

Gaia has lots of export options, and if there is anything else that an Unreal environment needs I am happy to create it. This would mean you could do the generation in Unity, and then use whatever your normal workflow is in Unreal.

I will consider porting at some point, but need to get Gaia 2 out first. This is 1-2 months away.