The subject of my thesis is creating procedurally generated virtual cities using Unity engine. This subject is close to my heart, because it combines two things that I am most interested in software development. Generating random things that are realistic and creating virtual realities with help of 3D models. The problematic issue is to create a program that should be capable of making random cities that are realistic but not predictable. Besides, the other goal is that the city must be populated by pedestrians, cars and other vehicles.
For that reason, I needed a complicated set of rules to ensure these conditions. For this reason, I needed some pre-made objects and scripts. To create a realistic road system, I had to use a planar graph, that resembles to a real road system. To make buildings and road mesh I needed to make procedurally generated mesh at run time. To make the vehicles interact with the road and each other I had to use the physic system of Unity and a navigation graph, that I made. The project resulted in two programs, which can be used in two separate ways. One is a platform independent version, that can be used without Unity. The other is a Unity plugin, which we use to create a city in Editor mode.
I used my skills to ensure that the scripts are object-oriented. This made the project more transparent and improvable.