Procedural Generation can be interpreted quite broadly as just “making computers make cool creative things”. People make art, games, music, audio, stories and all sorts of weird things.
I’ve been doing it as a hobbyist for some time, and have become more and more involved: I make tutorials, projects, I sell a tool online for a niche algorithm, and recently taught a “masterclass” at Everything Procedural, the main conference for professionals in the space.
I thought I’d spill some digital ink about what it’s actually about. I get asked often enough, and this will help me clarify my verbal answers.
Why I love it
I am not a naturally creative person, but I am a visual person. I like to see results. Procedural generation is a super easy area to get into, and pretty much immediately you can get your own results to play around with. There’s no right answer to what looks best, so there’s always more stuff to explore.
It’s a fertile area for research, too. I think a lot of techniques remain undeveloped, and the space is recently being challeneged by generative AI, to the consternation of many.
I also am a big fan of roguelikes/roguelites, which are games that heavily rely on procedural generation.
Who Is Doing This?
I feel embarrassed sometimes when I’m asked about my hobby, because in many ways, I’m not really a central example, and I’m doing a poor job representing it. I’m interested in weird things, and have too much a focus on theory over practise. But I rub shoulders with lots of interesting people, including:
- Artists
It’s particularly popular for demosceners, NFTs, and for interactive art exhibits - Game developers
Some game genres rely on generation to get some desirable gameplay, but it’s also needed in most big games to simplify the process of authoring the massive amounts of content needed. It’s a common skill of technical artists - Academic Researchers
There’s a few dedicated arenas, but it tends to blend into broader categories of computer graphics, ai or “creativity in games” - Film VFX
VFX studios rely on physical simulations a great deal, and also use procedural techniques to fill in details on scenes and perform animation. - Hobbyists
You can find plenty of communities online. Some programming and maths are useful, but not required.
Techniques
While you can classify procedural generation in many ways, I generally like to break things down by the different techniques used to create things. I think this gives a best idea of the breadth of stuff to explore, and creators tend to have their specific speciality.
Personally, I classify things in these rough categories:
- Algorithmic
Classic programming, you give the computer a series of instructions to follow. Example: Prim’s Algorithm, which is a computer science technique that can be used to design labarythine mazes.
- Functional
You specify a mathematical formula, which is evaluated to get results. Example: Perlin noise, which gives a wobbly looking pattern with many uses (first used in the original Tron film)
- Simulation
Setup the initial parameters, create the rules for how to change things, and watch it go. Physics simulations are everywhere, but these are also used for crowd dynamics, erosion, story generation and more.
- Generative AI
This is a newcomer, and people are still unsure where this lies in relation to the older techniques, particularly as it has raised some ethical objections. But there’s no denying that it is an extremely powerful way to create things, and one with a lot of undiscovered ground in maximizing control and behaviour.
Want to know more and get started?
Feel free to reach out to me on twitter. Or try Kate Compton’s essay, which has a more details on everything I’ve discussed here.
There’s some tools out there that are fun ways to get started.
- Tracery – create random written text
- Generative AI – too many to list
- ShaderToy – Write simple programs that run directly on your GPU to create images
- Geometry Nodes – A Blender based tool for creating 3d objects and scenes
There’s too many talented creators to list, but I’ll mention some who are more prolific about explaining their thoughts and processes, who are some great places to start
- Mike Cook – automated game design
- Inigo Quilez – demoscener and engineer
- Amit Patel – tutorial writer & gamedev
Much obliged for the article, people introduced and references! Looking at Kate Compton’s essay and that’s enlightening me up!