Skip to content
HHackerTube.videoSurprise me

EPC2018 | Wave Function Collapse in Bad North | Oskar Stalberg

EPC2018 | Wave Function Collapse in Bad North | Oskar Stalberg on HackerTube: recommended by 4 Hacker News commenters across 5 separate months, 2020–2024.

BUas Games

talk · intermediate · evergreen

Open on YouTube

Oskar Stalberg explains how Wave Function Collapse assembles island dioramas from handcrafted tilesets in Bad North. He covers the theory, implementation, tooling, and how he blends art and technology.

Why Hacker News recommends it

The go-to talk whenever Wave Function Collapse, Townscaper or tile-based procedural generation comes up.

people recommended it
4
separate months
5
strong recommendations
1
discussed on HN
2020–2024
“has some great talks on YouTube about how the systems in Bad North and Townscaper work.”
— Cognitron, Sep 2023, in “CityDreamer: Compositional Generative Model of Unbounded 3D Cities”

What HN commenters said

10 Hacker News comments link this video. Each one links back to its thread.

btownJul 2021Strongly recommends

The creator Oskar Stålberg has a great overview talk of Wave Function Collapse and how he applied it to his previous game Bad North - it’s absolutely worth a watch! ▶ this video

in “WaveFunctionCollapse: Generates bitmaps that are locally similar to the input” · View on HN

CognitronSep 2023Recommends

Oskar Stålberg has some great talks on YouTube about how the systems in Bad North and Townscaper work. ▶ this video [link] [link] [link]

in “CityDreamer: Compositional Generative Model of Unbounded 3D Cities” · View on HN

symmetricsaurusDec 2022Recommends

Oskar Stålberg has famously used WFC in Bad North and Townscaper. Here's a nice presentation from him explaining it: ▶ this video

in “The Wavefunction Collapse Algorithm explained clearly” · View on HN

btownDec 2021Recommends

And here's another, slightly more technical talk from him about the "wave function collapse" algorithm he uses for procedural generation in his games: ▶ this video

in “Townscaper Running in the Browser” · View on HN

pdoubJul 2020Recommends

Please note that this is an old demo that has since grown into a full-blown game: [link] (Says Windows-only, but has a working Beta for Mac) Here's a talk by Oskar on how generating such worlds work: ▶ this video

in “Brick Block (2016)” · View on HN

PythagoRascalNov 2024Cites it

As far as I know they are using a customised variant of the "wave-function collapse" technique, used and popularised by Oskar Stalberg in his games "Bad North" and "Townscaper". The technique boils down to hand-crafting tons of tiles with adjacency rules about which tiles can slot together. When the user adds/removes a tile the algorithm iteratively tries to find fitting tiles and, if needed, changes neighbouring tiles for ones with the best transitions. He gave a talk where he goes into detail about this[1]. You can also find more if you google his name and "wave-function collapse". [1]: ▶ this video

in “Tiny Glade 'built' its way to >600k sold in a month” · View on HN

Show 4 more comments
nicoMar 2024Cites it

Yes, it is probably its main usage The author of the GitHub repo is a pretty successful game author and has used it many times for his games Here’s a talk by him talking about procedural generation using wave function collapse: ▶ this video

in “Tiny bitfield based text renderer (2022)” · View on HN

hesdeadjimJul 2021Cites it

I played around a lot with this library: [link] Fun stuff, but I struggled to get a lot of value out of using it for level gen. You get cool patterns, but levels need structure and intent to be interesting. Adding constraints to the algorithm becomes a big-oh nightmare and you end up with frequently unsolvable paths as the algorithm recurses. The game Bad North used it to good effect, so depending on the game it may be a very useful tool in the toolbelt. ▶ this video

in “WaveFunctionCollapse: Generates bitmaps that are locally similar to the input” · View on HN

detaroJun 2021Cites it

Its creator has a bunch of details on their Twitter ( [link] , although digging through long Twitter history is of course a pain) and given some talks: ▶ this video [link]

in “How to create a game like Townscaper?” · View on HN

bschneJul 2020Cites it

Not sure what of this was actually used in townscaper, but someone in another discussion of the game (can't remember where unfortunately) referred to these two sources: - Oskar Stålberg's 2018 Talk "Wave Function Collapse in Bad North" ( ▶ this video ) - Müller et al, 2006 - "Procedural Modeling of Buildings" ( [link] )

in “Townscaper – A building game inspired by the design of Scandinavian cities” · View on HN

Topics & tags

Game programming & enginesComputer graphics & renderingIndie game developmentwave function collapsebad northtownscapertilesetsgame development