Help with Voxel Based 2D Terrain in Blueprint.

I am having trouble finding videos on YouTube about creating voxel based games in Unreal full-stop. I want to make something similar to Terraria, with more emphasis on NPC’s and economy management, however I really don’t know where to start.
The basis of the game is a Side-On 3D map, looking similar to Terraria but with a little bit more depth. You will be able to command NPC’s to destroy terrain and mine for you, etc.

How do I set up the world to be made out of ore and stone, which is fully mineable, preferrably all within blueprint? (I come from Unity, so I don’t have a good understanding of C++, just C#).

Thanks

In pure blueprints you will suffer a lot. All because lacking in array implementation. For such project you kind of need voxel part done in C++.
Blueprints can somehow process all that but graph will be one huge spaghetti mess.

To get some pointers search for procedurally generated levels here.

2d voxel games can be greatly optimized:

  • you can use instanced static meshes that are just 2d squares facing camera. each material type has its own texture/material.

  • or you can be “clever”, you can actually create simple planar meshes during runtime, for eg when you have bunch of same type voxels, you group them and create single mesh shape, each type of material has its own distance from camera. Dirt (or most common is furthest), then less common materials are closer to camera (like 5 units or so). With a bit of work you could make nice and fast layered algorithm for creating landscape.

  • if your game has big voxels ie. total visible number of them is not more than 1000. You could make very simple blueprints. Each blueprint should have just 2d square mesh and type of instanced material it uses. then you spawn/destroy those on edges of screen when player moves. This could work.

  • But best way imo is combination of all above. You make one mesh that is shape of visible ground/voxels etc. group those materials in classes: dirt, mud, sand (all not shiny ones) in one. Create shape mesh, then create texture mask that shows which type voxel is. Then do same for next layer (for eg shiny metals), then next layer for anything glowing. And last for fog ie undiscovered spots.
    For trees/objects use blueprint way.