Inspiration
Making cities/towns/settlements in games can be quite challenging and time consuming especially in regards to how to structure it. Creating a city generator that can be used to generate entire cities within a game engine such as Unity or Godot would be extremely beneficial to game developers as a whole
Both of us were heavily interested and inspired by an existing city generator made by watabou: https://watabou.itch.io/medieval-fantasy-city-generator. This is due to the interesting nature of the generator itself and how interesting it would be to create a similar generator that could have further applications and be able to converted directly into a 3D map within a game engine.
The initial idea of using fractals for generation was proposed by Warith, who was inspired by the fractal structure of precolonial Benin City which heavily utilised fractals for its structure, as well as the overall concept of a fractal city being rather efficient due to its overall structure.
What it does
Uses fractals to generate a city based on a variety of given configurations and requirements depending on the given pattern. Whilst there also exists the option to display a terrain map, this unfortunately was not integrated into the final city before the end
How we built it
Predominantly used Python and heavily researched into fractal methods and other relevant methods and formulas that would be required for the project. At points where we got extremely stuck in terms of what to do, we used LLMs (Google Gemini being the most common LLM we used throughout this project) to assist us. In particular with understanding the noise library which neither of us had used before.
Challenges we ran into
New libraries that we haven't used before such as noise. Issues with using Panda3D at the beginning in order to create 3D maps. To combat this we switched purely to exporting as JSON and using integration scripts. During development however, Warith ran into issues using Godot on his laptop
Accomplishments that we're proud of
Being able to produce a working and maintainable city generator that we can expand upon further in the future to even potentially become a full-fledged plugin/extension for Unity and Godot for generating cities
What we learned
How fractals work, how to use the noise library. How to experiment even further with matplotlib and numpy in terms of using it to the fullest of its potential. Working with JSON and game engines.
What's next for City Generator
In future, we plan to implememnt the following features:
- Terrain map integration into the overall city map
- Unreal Engine integration
- Introducing cities that generate based on a 'central point' where a central point is established and then the city forms outwards from it.
- More patterns, potentially one based on existing city patterns and miscellaneous fractal patterns such as the Mandelbrot Set
- Further functionality relating to populations
- Allowing the player to give further input relating to terrain and heightmaps (e.g. how densely populated do they want the map to be or what terrain do they want)

Log in or sign up for Devpost to join the conversation.