Algorithmic generation of cities using cellular automata in a dynamically generated world