Procedural content (settlement) generation

Started by
2 comments, last by jphsd 9 years, 7 months ago

Hello,
I have, lets say, something like a homework or assignment to do. Roughly said I need to write an algorithm (pseudo code is not necessary, just in depth description) of procedure that would generate settlements, environment and a people to populate it with, as part of some larger world generation procedure. The genre of game is not specified, it could be any genre (rpg, strategy, colony simulation etc.) where interacting with large and extensive world is central to the game.

Procedure should be called once per settlement. At the time of calling, world generation procedure makes geography, culture and history input available. Output should be map of the village and it's immediate area, and various potential additional information like myths, history, demographic facts etc. Bonus would be quest ant similar stuff, but that not really my focus at the moment.

I will leave quality of the output for later when I actually dig little deeper into this topic.

I am free to change parameters as long as I have strong explanation for doing so. Setting of the game is undetermined so I am free to use anything that I like the most.

Ok, so my actual question is: Can anyone who has some experience in this field of game design recommend me some good literature, or point me in the direction where I should look/reed/study? I'm somewhat experienced game programmer, but I've never been into game design till now so any help will be great. I want to do this assignment as good as I can. I got this task to do for Game System Designer position.

As for deadline, it's not strictly set, but lets say I don't want it to take longer then a few weeks, one month at worst case.

Advertisement

By "something like homework", do you mean a game company's design test? If they had you sign an NDA, then you probably shouldn't be discussing the details of the questions with us...and if you are struggling with this question, then this position may not be a good fit for you. When you're working in the industry, you won't be able to reveal confidential details of the projects you're working on to ask for help on public forums. This sort of algorithm shouldn't take you an entire month to describe.

GD.net (this website) is a great starting place - do some searching through the articles and you may find some useful sources.

I also recommend searching through Gamasutra's articles. I know there a few good ones on procedural content generation there too.

The GDC Vault has some good talks on procedural content generation, but the majority of them are members' only videos and membership isn't cheap.

To see an indie game that already does this, check out Dwarf Fortress. Analyzing its method may help you come up with your own.

Without a clear context for your procedurally generated data (for instance, what the game needs to know about "myths" and how are they used), and (if I understand your description correctly) indications and constraints beyond "a village" (what climate? What technology level? What location possibilities? What culture?) your exercise is highly meaningless; I hope you are not being asked to show off how many different PCG techniques you know about.

I recommend inventing constraints and requirements, for example generating economically sound and reasonably good looking cities as a subtask of generating Warcraft II maps or generating underground elf cities in Dwarf Fortress for your dwarves to dig into.

Omae Wa Mou Shindeiru

Here are some simple rules you can use to gen up an algorithm.

The size/frequency of settlements is log/log distributed (Zipfs law).

Placement - start with water: by rivers/lakes/sea. Geographically distribute using Poisson dist.

Grow additional from network edges (new places spring up on the way to and from other places).

Apply geographical rules as necessary (no cities on tops of mountains unless there's a large plateau). Agricultural communities need lots of flat terrain, water etc.

This topic is closed to new replies.

Advertisement