L Systems – Week 7

I have started work on developing a road system to place the village around. It uses an L system and can be adjusted with a rule and has an adjustable iteration limit. It also has an adjustable chance to ignore the rule to create more variety in generation. Next I will need to make models for the road and the houses and other buildings that will line the street.

To extensively test the system and ruleset, I ran the L system 10 times on iteration limits 1, 2 and 3 and 4 to see which would produce a road system that is spread out well and different each time but wasn’t too clustered and crowded. Below are examples of each limit in order with the chance to ignore a rule set to 0%. With 1 iteration, it still had quite a lot of different variations but I did get the same iteration twice, making it not satisfactory for my town, along with being quite small. With 2 iterations, there was no duplicates and it spread nicely, with smaller streets further from the centre. With 3 iterations it had a few smaller more crowded areas further from the main street, creating more natural group areas as with the 2nd. With 4 iterations things became a bit too crowded and may cause issues with too many roads and not enough spaces for other buildings.

I repeated this test with the chance to ignore the rule at 50% to add more variation, and to judge what percentage chance I wanted for my town to ignore the rule. With 1 iteration it seemed relatively similar and as it was already too small, reducing it’s size made it less viable. With 2 iterations, it looked rather neat, but the slightly crowded areas became much rarer. With 3 iterations, there were still several crowded areas but definitely reduced to a more manageable amount. With 4 iterations it was still too many short turns and corners, making it unsuitable for the town.

I have decided that I will be using 3 iterations as that seemed to produce the best results I think for my town road system, along with a 30% chance of ignoring the rule so there are still more winding streets and some crowded areas, but they aren’t too complex. Next I will need to make models for the road and the houses and other buildings that will line the street.

I initially struggled with this, attempting my own random generation method, however after doing research I knew that an L system would provide the more coordinated randomness needed to make something that still resembles a town. The tutorial series by SunnyValleyStudios on the subject Unity was very helpful in learning how to set one up. [Link]

Leave a Reply

Your email address will not be published. Required fields are marked *