-
Procedural worlds
Posted on June 2nd, 2009 No commentsMy vision is a huge, realistic (within the given story setting) and highly detailed world. A world bigger than any team of designers could create in a reasonable lifetime. So instead of manually crafting the terrain, placing cities, houses and objects, you define rules and algorithms that create the world for you.
Or perhaps it is the other way round: I’m a hacker, not a designer. So the obvious way to create a fantastic world is to define such algorithms and rules and let the CPU do the dirty work.
Elite is a prototypical example for a game with procedural universe – a game that I played for many, many hours when I was young and beautiful and that certainly shaped many aspects of how I think about games. Many things I want to write about here have their roots in that experience.
So… procedurally generating a world. Hmpf… I have many ideas spinning around my head. For example using a layered approach. The fundamental layer is probably the terrain. As a first step a simple subdivision algorithm should be sufficient. On top of that you put other layers: flora, fauna, population, etc. Layers can interact, e.g. the value of one layer (for example elevation of a certain area) serves as input for the formulas that constitute another layer (different vegetation). Throw in time as another possible input value (climate changes over time, with cycles at different timescales), the coordinates (it’s getting colder towards the north pole, ya know). And finally a pseudo-random value for good measure to make things more unpredictable and diverse, but still deterministic.
And today I was sitting on the balcony thinking of nothing in particular and a thought popped up. Functions can take you only so far. For more complex situations, like creating a village, a rule based approach is needed. There’s a lake -> place some fisherman with their houses, boats and nets next to it. I’ll need a, probably pretty large, set of rules that define how the world is to be created. I need to apply these rules and there are large amounts of input conditions that have to be checked (“Where’s the next lake? Is that close to the village?”). At that was the point where my brain did, what brains are good at: digg deep in almost forgotten memories, pick something up and connect it with the problem at hand, even though you don’t think about that problem at that time.
So I remembered the book Fluid Concepts and Creative Analogies: Computer Models of the Fundamental Mechanisms of Thought by Douglas R. Hofstadter that I read about ten years or so ago. Fortunately the German edition had a bit more catchy title that I could remember, otherwise I don’t know if I could have found it again. The book describes an interesting approach to AI that might be applicable to the problem at hand. I need to think more about that, but first I have to refresh my memory of the book. Unfortunately our local public library has a very limited collection, so I went ahead and ordered a copy from Amazon. Together with two other books I just ordered, that should be enough to read for the days to come.
Leave a reply


