First attempt at procedural level generation

Hello guys !

Recently I’ve become very interested by procedural level generation and I decided to give it a try. To start simple I choosed the famous Conway’s game of life. I implemented the algorithm using only Blueprint which wasn’t very easy to debug :stuck_out_tongue:

I know I could improve it and I’m open to any suggestion.

I love these sort of experiments. My (big) suggestion would be to expand it so it’s not all on a flat plane. The Z axis (for obvious reasons) is always neglected with these things.

Nice! Cellular Automation?


Im quite new to UE, I have come to play with HTML5. I have some GPU procedural generation done with javascript and Im looking for a way how to reimplement it and connect with blueprint. Could you say more about your way? :slight_smile:

Yes it is :slight_smile:

Very Nice in deed. Visually appealing as well. Wrote a cellular automation algo with unrealscript back in UDK using the based on this.

Your work rekindled my interest in Conway’s Game of Life. Found inspiration that may be applicable for GOLEM Entity Construction. However, I will not be using cellular automation for procedural level generation in favor of the Depth First Search Algo:

My recommendation, if you intend to add multiplayer or reuse a specific procedurally generated level, make use of Random Streams/Seed for random number generation. Keep us posted and good luck.

Thank you for the recommendation to make use of Random Stream :wink:

I switched to a C++ implementation however I’m having an issue when I go in Play mode. My Instanced Static Mesh just disappear :frowning: Any idea what might be the problem here ?

Oh and do you do for the lighting ? I tried to build it and I get a warning: “Warning LevelGeneration The total lightmap size for this InstancedStaticMeshComponent is large, consider reducing the component’s lightmap resolution or number of mesh instances in this component”

Awesome! would you be willing to post the actual blueprints? trying to figure out how to do something similiar and interested in how your implementation works :slight_smile: