In game development there are generally two ways to go about creating content for your game. The first is to hire people to design enough to be able to release your game, while the second is to write algorithms that automatically generate as much content as you would want for your game (this is called Procedural Content Generation, or PCG). I find it interesting that the latter option is explored so little, despite the fact that it has been used as early as 1984.
In almost every genre, from casual games like Bejeweled to the more “hardcore” games such as the Diablo, procedurally generated content can be found. If you’ve played Bejeweled before you would know that you can play through quite a few in a short time. Now imagine if each of those levels had to be created by a level designer. It seems kind of pointless doesn’t it? Especially since the levels look inherently random anyway. Clearly there are games that are ideal candidates for PCG. Then if we look at the other end of the casual-hardcore spectrum, Diablo, and you’ll see PCG being used quite a lot. In Diablo II almost all of the areas in the game were randomly generated, though the game did feature some handmade areas for the climactic battles with bosses, or for special events. PCG is also ideal in this case because Diablo II includes replaying the “same” areas of the game over and over, and if those areas look different each time you are there, it increases the replay value. Some games do not lend well to PCG though, for example, if the game developers want a character to talk about the environment in a more story-driven game, using procedurally generated environments would complicate matters.
PCG is not always used to increase the replay value of games though, and can instead be done completely deterministically (meaning that running the algorithm a second time gives exactly the same output as the first time) to save space, as the algorithms used to generate content can be much smaller on disk than the content itself. A good example of this is called .kkrieger which is a first person shooter taking less than 96KB storage space, which according to its developers would take up to 300MB if they did not use PCG techniques. This example was not using this out of necessity, but because it was developed for a competition with a restriction on the size of the game. The game linked in the first paragraph, Elite, was limited by the 8-bit computers it was intended to run on, and therefore did not have access to much storage space, and out of necessity used PCG methods to store its content.
The strange thing is that the AAA game industry do not seem to gravitate towards this holy grail (in my opinion) of game development. As I see it these are the pros and cons of PCG.
- Increases replay value.
- Reduces required storage space.
- Cheaper than hiring level designers.
- Possibly easier to adapt.
- Creating generating algorithms can be difficult.
- There are additional technical issues to take into consideration.
- Testing the content, and identifying problems is also difficult.
- Possibly less interesting or notable content (depending on how well the algorithm is built).
The reason I think that the AAA industry is shying away from it, while independent developers are all for it (or at least seem to be), is that it’s more risk more reward as per the pros and cons above. It seems to me that big budget game companies would rather hire more (capable) level designers to ensure a fixed number of levels at a certain quality, instead of asking a developer to spend time on an algorithm that may or may not generate levels of the same quality but any number of such levels. Independent developers, who are completely in charge of their time and money, on the other hand don’t mind putting some time into something slightly experimental in the hopes of finding a gem. This distinction between AAA and independent developers holds for more than just PCG though.
Each time PCG techniques do work, the games industry may get pushed slightly towards using it more often, but each failure also pushes it back. Based on this I would not risk making a prediction on the use of PCG in the future, but I would definitely want to see it used more often in games, and in almost all games I work on I will likely attempt a PCG solution.
Whether the AAA industry will end up using procedurally generated content more often, whether the indie developers will use it less, or whether PCG techniques will improve enough to rival the best of level designers, are things I do not know. I can’t wait to see what lies in store though.