Simcity 2000 (1994)

Reticulating Splines

SimCity is a game about arranging things in space. The relationship between the city and the terrain it is built on is near the core of the moment-to-moment interactions you have with the game. While you can bulldoze everything flat for the perfectly optimal city block pattern, you miss a lot of the interesting challenges that can give a city character.

As such, the map generator has a lot of influence over your experience with the game. Using three basic components (elevation, water, and trees) it is capable of composing a wide variety of landscapes with very different challenges for city-building. All of the maps are viable for building cities, partially due to SimCity’s legendary toybox flexibility, but the generator is capable of pushing some extremes for more interesting flavors: cities on island chains, cities in mountains, cities in river basins, cities in forests, cities in canyons.

Because of how SimCity interacts with the map, every output from the generator has some relevance when playing the game, even if its just as an inconvenient hill. That’s what makes the map generation really work, despite its relative simplicity.







Hotel Paradise (2015)

A low-key walking game by Kai Clavier that uses procedural generation to capture the feeling of being lost in an infinite hotel. Interestingly, it uses the sameness of the generation, which would ordinarily be a weakness as a way to create a specific feel.

There’s a few tiny things you’ll miss the first time through: play it twice to get a hint.

http://kaiclavier.itch.io/hotel-paradise




So you think Libnoise sounds like a great idea, but you’re using Unity, and Unity uses C# instead? No problem: Libnoise has been ported to Unity. 

https://github.com/ricardojmendez/LibNoise.Unity




You could write the noise functions you need yourself. But it’s usually much more practical to use a library where the functionality has already been coded and tested. For C++, libnoise is an open-source implementation of several types of coherent noise, including Perlin noise.

Even if you are not going to use the library directly, you might find the explanations of different coherent noise functions enlightening. The tutorials are specific to the library, but the principles of creating textures by combining multiple functions can be generalized. 

http://libnoise.sourceforge.net/








Perfect Glowing Bodies (2015)

The artist known as Strangethink has been gradually developing an aesthetic that embraces procedural generation. Rather than trying to imitate nature in the abstract imperfections most photorealistic generators attempt, Strangethink’s generative projects embrace the weirdness of the algorithm, translating you to an alien world that invites you to accept it on its own terms.

It’s easy to imagine this character creator as a small part of a larger whole, a world populated by Opposite Puritans, Anti Pacifists, and Nebulous Friends. But it stands on its own as dark reflection of mundane character creators, its sliders at least as effective as the usual blend shapes.

The alien nature makes it all the more evocative as it jumbles names and shapes and symbols in a way that seems just tantalizingly comprehensible.

http://strangethink.itch.io/perfect-glowing-bodies







Sunless Sea (2015)

Sail the dark apocyanic waves as you explore the Sunless Sea! Drawing on the traditions of exploration games since the days of Seven Cities of Gold, Failbetter Games’ Sunless Sea turns you loose on an underground ocean, populated procedurally. 

The map generation is made up of shuffled tiles, large chunks of sea and rock that are distributed according to the rules. While the West coast of the map is mostly fixed, as you get deeper and deeper into the unknown what you will find there becomes more and more uncertain.

It might at first superficially remind you of Elite or Pirates, but this isn’t really a trading game. Instead of swapping commodities, you’re exploring stories. This gives an additional dimension to the game: now it matters not just where you are in space, or in time, but also where you’ve been before. Visit the same islands in a different order, and you might have a very different experience.

Traditionally, one of the weaknesses of strongly-curated interactive narrative is that the structure can be so predictable that playing through a second time gets stale. Failbetter Games’ earlier game Fallen London addresses that by mediating the available story-bits via cards and changing qualities, but it is still mostly transparent in its operation. Sunless Sea takes some of the strengths of that approach and uses the procedural generation to keep the stories aggressively fresh: you know how things played out last time, but you can’t quite be sure that you’ll even be able to find the same choices. 

Eventually, you’ll still see most of the content, but again, the procedural nature of the game means that it’s easy to sneak in surprises. In interviews, the developers have talked about how the procedural nature of the game enables them to add secrets, explicitly mentioning Elite’s rock hermits. 










So you want to generate an infinite world. Or maybe you don’t need an infinite world, but you’d rather not generate the whole thing at once. If you restrict yourself to using only deterministic algorithms, and mostly only top-down generation, you can get by with just referencing the seed value against the x,y,z coordinates and translating it to the contents of a particular grid cell.

But  what if your terrain generator really needs a smoothing step? Or your voronoi-cell-based village placement needs to be able to handle future off-stage villages? Or your erosion sim and your trade route sims need to be run before you know where to generate the roads between the villages?

Well, here’s one way to solve that problem: layered generators.

Minecraft actually uses a system a little similar to this, with a top-down generator for the broad strokes and a little more processing for the individual terrain cells as they are created, smoothing out caves and the like.




Created by Per Nyblom, Abundant Music is a generative music web app.

It’s really full-featured, with a lot of options to tweak the output. There really should be more ways to play with generative music; there are plenty of libraries and research projects but I’m not aware of very many that are this extensive and accessible.

http://abundant-music.com