What would you give to be able to write a few sets of code and have an entire world built from scratch, a world that would be different every time you made the computer (re)build it?
Yes, that’s procedural generation. Now I’m nowhere near as advanced as that, which is why I’m going to learn how. These blog posts will chart my progress.
To start off, this has been done before. The technique’s been used in games since the 80s, and modern games like Fuel (2008) have used it to build incredible landscapes. So it won’t be a case of me having to reinvent the damn wheel.
However, Fuel-style photorealistic terrain is still a long way ahead, though it’s my dream. At this end, however, we have the most basic of procedural generation systems: maze generators.

I came across my first mazegen in a book on Java called Killer Game Programming (which, btw, totally blows the doors off Java 3D Game development).


Now step 1: Wikipedia. I hunted all over the net for procedural terrain generation methods, and guess what? Wikipedia has the answers. I ran into many semi-technical discussions, many “we use our own algorithm” posts, but Wikipedia has the answers at a reasonable depth.

For starters, there seem to be various maze generation algorithms, or methods. One of the most popular is to write a program that will first populate a grid with walls, then erase your way through, generation a pateern of spaces.
I’m not going to copy-paste Wikipedia info, so here’s the link:
Wikipedia: maze generation

2: An even better place: the Procedural Content Generation Wiki . It contains a maze generation tutorial with python code. Click here.

Now that I’ve got my info ready, let’s see if we can implement these in Game Maker . . . stay tuned for the next segment, where I’ll report my success/ failure and take a look at indie games that use procedural generation.