How to procedurally generate a world (Like minecraft)

Hi everyone I’m trying to make a survival game and am wondering how on earth I can generate levels like in minecraft with out the blocks. so like it generates mountains but they aren’t made out of blocks they’re actual landscape mountains that are textured and everything. I would also like to generate trees and rocks and animals (When I can afford the assets (for animals) if there is any way to do that please tell me. Any help is appreciated and thank you in advance :slight_smile:

that is a very complex and advanced topic and will probably involve extensive code. its probably not hard to place trees and things at runtime (may be slow) and you may even do it based on materials or something like that. making a level that looks good, functions well, and is fun however, well that will be great undertaking. just making a procedural dungeon is difficult enough.

then again if your making a game thats a sandbox it may not need great level design. though not sure you can even create a landscape at runtime so you would need a plane with material to modify the vertex locations maybe idk. im just thinking random noise would do for making terrain then use height and other criteria to place trees and things. the trouble is doing it all at runtime.

I am making an open world survival game kinda like minecraft just not with cubes but with actual terrain and I need to generate the landscape like in minecraft with actual landscape :slight_smile:

Any one have any idea how I could do this at all?

Never mind I’ll just create the landscapes myself if it’s not possble

Possible

it probably is possible is just not easy. the real question is how experienced with coding are you.

oh also minecraft is a completely different situation to what you want, that game uses voxels so its much easier to build the terrain imo.

I’m not very experienced in coding but I can use a bit of blueprints. any idea of a place I could start to achieve this?

if you dont know coding and the logic used therein then it will be a challenge if not impossible. also with the limitations of blueprint such as no multidimensional arrays its much harder as well. but if you really want to try then i would start with watching the procedural generation live stream by epic to learn the basics of procedural generation. as for making voxels i know unreal tefel did a livestream where he created a bubble voxel world but that was in c++ if i remember right. Sebastian Lague also did a series on procedural landmass generation but he works in c# and unity but maybe the logic will help you.

unreal tefel

sebastion

note that i have not created fully procedural levels or voxel levels. i have created procedural dungeons but that was awhile ago.

Here was my approach:

  1. Create a Perlin noise map: GitHub - Reputeless/PerlinNoise: Header-only Perlin noise library for modern C++ (C++17/C++20)
  2. Use the value as the height value for the mountain tops.
  3. For every block, check the z-1 (or height - 1) eight neighbors. If every existing neighbor has a block above it (or they’re no neighbors at all), add one randomly. This is the hardest part, but it creates a staircase effect, similar to Minecraft mountains.
  4. For every highest z value, spawn blocks under it.

Not sure why the fps is bad, still trying to fix that, but it gives you a basic framework to go off of.

Let me know if you have specific C++ questions, but I don’t know and don’t recommend Blueprints, because this requires efficiency. Once you create this, generating biomes and other objects like trees should be simple.