Download

Correct way to generate a simple world

Hey guys, i’m thinking about making a simple procedural game but i have some conceptuals issues.
For exemple, if i juste wand a see world and i want to generate islands. It’s very simple generation, with lowpoly meshes, etc…

To make this, i thought use a blueprint for island, which generate himself the island (with tree, vegetations, etc) and use and other blueprint to generate all the blueprints islands.
So at the end, there is one blueprint which spawn some blueprints island, which generates themself. But i don’t know if this is a clever way to make it…

Moreover, if this method is okay, how to do it in a good way ? I thought about two solutions :

  • use the construction script and use the Add Child Actor Component function, but it will make unreal generate my world all the time i change something in the editor

  • make it at runtime with the event graph, and generate all from the Event BeginPlay, and maybe just generate the island near the player and generate the others later in the game.

And for this two method i don’t know it’s is a good way for saving/loading my world after.

So as you can guess, i’m new in unreal and i don’t know how to resolve my problem, so thanks in advance for advising me !

(And sorry for my bad english :frowning: )

There is one first decission you want to make: generate it in runtime or editor only (ie construction scripts).

If you generate runtime you do not see your workd in editor, if you generate in editor, its just easier way of making premade maps, compared to doing it all manually.
This is really one thing that i wish epic would solve. Construction script is useless for making real procedural worlds.

So for you i might generate my world in runtime ?
It’s possible to make a loading screen while generating world on runtime ?

Hi Quinlan,
While i have not actually tried this myself, I would assume that yes you can have a loading screen while loading your world and have this change when a boolean value is switched to true or float value gets to 100.