topnav

Series Info...Storms on Cloud Nine #18:

Propagation

by Scott Holliday
September 5, 2003

Over the last few weeks, I've seen a bunch of references to computer-generated content. Some of these were here at Skotos, but even more were from outside concerning other games. Apparently, this is a hot topic, even outside the RPG genre. The idea that designers can get the computer to do all the level design for you opens up the possibilities for huge, practically infinite worlds.

Thinking back, I realize that randomly generated content is not a new idea at all. At a cursory glance, it may appear that most early computer-games were static. I'm thinking of the old Atari system that I started out on. It is true, many games were static. For example, each level in "Space Invaders" was exactly the same (just faster and more aggressive). If you were good, you could even time when the little flying saucer was going to fly out. On the other hand, other games had the appearance of randomness. In Asteroids, you knew how many rocks were coming, but you didn't know where. In Pitfall, there was a huge wilderness to trek across. I know the Atari had a method for random generation, because it also had card games. However, my guess is that most of the games instead used simple formulas to generate content. For instance, in Pitfall, as far as I remember, if you always took the same path, you would always encounter the same content. Might be wrong here... it's been a long time... anybody remember for sure?

At about the same time, if you look outside the genre of computer games, table-tops were experimenting with randomly generated content. As an example, the 1st edition D&D Dungeon Master's Guide (published 1979) included a whole appendix section for randomly generating dungeons and wildernesses. Of course, since you aren't limited by the imaginative capabilities of a computer, these were only intended to give the Game Master a basis for inspiration. It was expected that the Game Master would fill in the details. Regardless, I've seen it used on more than one occasion as a substitute for creativity. And it worked surprisingly well! In fact, at one point, the DM used the system to randomly generate content on the fly. This arrangement had an odd beauty to it - because not even the DM knew what was around the corner.

Going back further, perhaps the earliest example for computers would be the "Wumpus" game (original 1972). Although the first versions were just you and the Wumpus, the game quickly evolved to include complex mazes, poisonous gas, bats, spider-webs and a whole host of other things to cause you problems. Admittedly, Atari also started in 1972, but the 2600 didn't hit until 1977. Regardless, we're talking about things when I was pretty young myself...

Skipping ahead a bit, in 1980, Rogue came out for Unix computers. In no time, you had ports for every system. Not long afterwards, variants started appearing - Hack, Moria, Angband. It's still going strong - although most of the players have moved over to graphical interfaces. In fact, it would be pretty easy to argue that modern games such as Diablo2 were extended variants of the Rogue family. One of the reasons Rogue was so popular (and spawned so many children) is due to its generation of random content. Each level would be randomly generated by the computer, complete with rooms, connecting tunnels, traps, and of course monsters. At the time, this was pretty novel. In the initial Rogue game, each level would fit on your screen. I'm guessing it was Moria that opened it up by allowing the screen to scroll. At one point, I even saw a system that generated levels so big that you could never reach the edge - probably by generating more content whenever you got close.

Humm... well, this column seems to have turned into a walk down history lane. I'm sure I've missed a lot of important steps along the path - but history has been jumping ahead. I guess I should get to the point.

From the profusion of randomly generated content, one might assume it is standard operating procedure. This is both true and false. Take a look at which games use randomly generated content and which games don't. Dungeoneering: yes. Exploring the wilderness: yes. Puzzles: no. Rogue-like games can easily be equated to shuffling and placing map tiles with dungeon formations. Other styles of game are starting to use the same idea, for instance platformers. Although the content is pre-generated to be the same for every user, a computer can quickly construct huge levels (or huge numbers of levels) based on certain rules (how far and high a character can jump). But a human generally has to go back through to write in any puzzles or story elements.

Why? As I noted earlier in SoC9#7, computers don't have the imagination to make good puzzles. This is often where someone playing interrogator can break a Turing test. Asking a computer to create an interesting puzzle is very similar to asking it to tell a story, make up a joke, or create a riddle. Of course, it's not impossible, but the time spent programming a computer to do it could be better spent doing it yourself. And the result is likely to be substandard, probably a repetition of other puzzles with slight variations. Now try to program a computer to make puzzles that also fit the theme of the game you are writing. Add that the puzzle shouldn't be too tough, but still challenging. Lastly, add in the requirement that the puzzle should be fun for the user. Frankly, it'd probably be easier to program it to do an interpretive dance. Humans are imaginative and creative by nature. Replacing humans for this sort of task is equivalent to replicating the human mind. You'd be better off starting from the other end and trying to build a true AI.

So where does that leave us? My suggestion is to take another look at the Rogue engine. When it generates a maze, it does so by mixing and matching smaller elements. Rooms fit on the map. Tunnels connect rooms. Monsters, traps, and treasure are placed randomly within the structure. Computers are great at this. The bottom line is breaking the process down to simple repetitive decisions. You can even add further consequences quite easily. For instance, if it had been determined that a wilderness room has a tree, then it might have fruit. Maybe there will be birds present. If there are birds, there is a chance that they will be "Piranha Birds." If so, there are likely skeletons left in nearby rooms. And so on...

Approaching the question of puzzles, the best attack is probably breaking the problem down to the smallest part the computer can still understand. For instance, in the Rogue-engine example, if you made a list of riddles (with answers), the computer could then randomly place them and decide on rewards. This will work, and will likely pass the "Rock Test" quite easily. Making it sensible is another question. For example, something that always made me laugh about Diablo2 was when I killed a swarm of tiny flying insects and they dropped a suit of plate-mail as treasure. How did they carry that? Randomization is great, but you also have to make sure the computer knows all the rules - and has some common sense to boot.

Recent Discussions on Storms on Cloud 9:

jump new