Procedural Generation

When we remade Rust we switched to a procedurally generated terrain. We generate an island based on a seed. So every server gets a different island.

In theory this is cool. But I’ve decided it’s not, and it’s something that artists and level designers should be doing.

It’s my fault. I pitched the idea of Procgen maps in Rust. But without procgen maps would load faster. Players would be able to learn their map. We’d be able to do optimisations like lightmaps and baked occlusion culling. We’d be able to profile every part of the map. The map would look and play nicer. We’d have saved hundreds of hours of devtime. We could have released multiple islands that were significantly different.

The counter argument is that it would be boring, playing the same map over and over. My argument is that procedural generated maps are boring. I don’t want to explore a procedurally generated map in a game. It’s not fun to explore, you’re not discovering stuff, it’s the same stuff over and over. You become accustomed to, and are bored by the algorithms the procgen uses in exactly the same way you get bored by an artist made map.

I want to explore a map that was made by an artist, with secrets and gameplay considerations built in. Not just computer generated noise. In my opinion this is where the maps of PUBG and DayZ beat Rust every time.

It’s a situation we talk ourselves into easily as game developers. We’re working away and decide we need a level to test our game on. The decision is either spend a day making a level, or a month making a generator, then a year maintaining it. There’s an element of wanting to work on anything but the game here, and an element of programmer masturbation. Programmers want to program, not make levels.

This isn’t to say that procedural generation doesn’t ever work. But don’t underestimate the time required and overestimate the end results.

Leave a Reply