Download

Need some help with procedural map generation

Hi everyone,

I have asked a question on answerhub regarding my problem but i thought i would ask here too for a little bit more exposure. I have seen this Map Generator but i cannot work out how to achieve it in a blueprint.

This is my answerhub question How to make a varied procedural map? - UE4 AnswerHub](How to make a varied procedural map? - UE4 AnswerHub)

I apologise if this is against the rules i just really need help with this issue.

I have created a big block made of smaller blocks by modifying the puzzle template. It works great but a big block isnt ideal when im trying to create a landscape with hills and such. Ideally i would like to be able to control the map generation with a seed number.

Thanks all!

I posted in your answerhub post.

Basically going to depend on your world size, but realistically blueprint isn’t ready for voxel worlds at this time. Anything procedural over a few tens of thousands of meshes is going to require C++ work.

Would be nice if we could get some blueprint love in this area since the same improvements that would help out a voxel world would also do wonders for my maps. :slight_smile:

Hey!

I replied on answer hub. Thanks for the tips, Your map generator is nothing short of amazing!
I agree, i would love for blueprints to be a little bit more optimized so it can compete with C++. I love using blueprints for everything but it seems that a lot of things i want to do has to be done in C++ to get good performance.
Did you do anything in C++ or was it all BP?
I was really impressed with myself when i worked out the vector math for a 3d cube made of little ones and then i thought “How am i gonna tell each column what height it needs to be and make it resemble hills of some sort”

Yeah building up the generator bit by bit has been extremely satisfying. I was never huge on math in high school, even if I was talented at it. So working these algorithms without having had formal math education in the past decade is awesome.

Everything in my generator is blueprint. It generates a 5K tile map in about 30-45 seconds. Eventually the more taxing chunks will move to C++, but I think it is going fairly well as it is.

I think blueprint itself is about as “optimized” as it is going to get, but it is the functionality of C++ that is needed, node by node. The people doing voxels have ways of drawing geometry using C++ that blueprint just doesn’t have the capability of specifying yet. If blueprint had that ability, it would probably do it slower than C++, but I think once drawn it would at least have all the performance gains of the dynamic meshes. And really the performance draw time in blueprint would probably only be noticeable if you are doing complex world generation calculations at the same time. The act of spawning actors is pretty fast either way. I can regenerate 20K tiles pretty much instantly. It is the generation of the map data and the rendering of the tiles that takes up most of the performance.

Epic has plans for more large world support, and I hope that entails procedural large worlds. :slight_smile:

Thats great! I hope that voxel functionality in blueprint isnt too far around the corner.