Exploring the Tech and Design of Noita
GDC Festival of Gaming7 HN recommenders · 2020–2026
288K views · talk · evergreen · Uploaded 2020-01-02
In this 2019 GDC session, Petri Purho of Nolla Games explains the technical side of Noita's physics engine, including scaling a falling-sand simulation to large continuous worlds and adding destructible rigid bodies. It also shows how the emergent physics drives the gameplay.
It is the go-to talk for anyone building falling-sand or pixel-physics simulations, and several commenters say they modeled their own engines on it.
15:38Juice it or lose it - a talk by Martin Jonasson & Petri Purho
grapefrukt
44:10Jan Willem Nijman - Vlambeer - "The art of screenshake" at INDIGO Classes 2013
Dutch Game Garden
1:04:04Overwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
1:02:42Preventing the Collapse of Civilization / Jonathan Blow (Thekla, Inc)
DevGAMM
42:30RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
1:10:00A Deep Dive into Nanite Virtualized Geometry
SIGGRAPH Advances in Real-Time Rendering
31:37How Crash Bandicoot Hacked The Original Playstation | War Stories | Ars Technica
Ars Technica
1:15:51Jonathan Blow - How to program independent games - CSUA Speech
Alexandre Franco
10 comments from Hacker News
Noita does interesting things with terrain deformation, and this is a good GDC talk about how it does so: [VIDEO]
I owe Basic a lot. It got me into programming on our first family pc, a Compaq Presario around '94. QBasic was accessible on every windows installation from the command prompt. You could read the programming guide built into the editor and have your first running code shortly after. That was its true power. One of my first programs was teaching me french words, asking me to translate them in a random order until I got them all right. It was truly magical. I also made pixels move, trying to write games, but I quickly ran into limitations and problems organizing my code. If you like a small challenge, watch a few minutes of this video about a game called Noita, where in the beginning Q-Basic was used to create some simple physic simulations [1]. It was hacky yes, but I think if you're starting out, it's much more important to get something running quickly than learning how to do it the right way. When people speak of basic, they always seem to have the impression that you're spoiled for life after touching it, but I think that's wrong. You can always learn more and improve. It's breaking down barriers of entry, which is key. A simple editor, with an inbuilt help page and a run button is all you need. [1] [VIDEO]
The Noita team explored some game ideas along those lines and had challenges. If you haven't seen the GDC 2019 talk about tech and design of Noita I recommend checking it out. They show some early prototypes focused on building [VIDEO]
Nice work, Jason. I enjoyed a lot a talk [1] at GDC by Petri Purho (Nolla Games and before that Kloonigames) that explains the "Falling Everything Engine" used in their game Noita (that I would love to play on my mac...). Highly recommended if you want to dive deeper into the topic. [1]: [VIDEO] "Exploring the Tech and Design of Noita"
Here's a talk from the creator of Noita about the underlying tech. From 9:20 he talks about their multithreading implementation. [VIDEO]
jai's author, Jonathan Blow, always creates a game from scratch. His games: Braid (highest rated XBox Live title when released, "Xbox Live Arcade Game of the Year", [LINK] ) and Witness (while not winning significant awards, regularly appears in Best of Decade games lists, [LINK] ). Besides that there are multiple games where people use their own engines: - Possibly among some of the most technically complex ones are Factorio (e.g. [LINK] ) and Noita (where every single pixel in the humongous world is simulated [VIDEO] ) - Among the AAA-level crowd there's Decima (Death Stranding [LINK] and Horizon Zero Dawn [LINK] ) and REDEngine (Witcher 3 [LINK] , Cyberpunk 2077 [LINK] ) - There are smaller ones like Monkey X (Crypt of the Necrodancer, [LINK] ) - There are bigger ones like Clausewitz (basically all of Paradox Interactive's games like Crusader Kings [LINK] and Stellaris [LINK] ) In general, once you know what you're doing it sometimes pays to develop your own engine that is specific to what you're doing. Unity and Unreal are generalist enines that you still to bend to your will to do what you need to do and may have opinionated setups of things that are hard to work around, or maybe are omitted from the engine, or just plain don't allow you to do.
Thank you! If you haven't played Noita it's basically a "falling sand" or powder physics game where every pixel is simulated. You need a special cellular automata that is not your typical game physics engine, so I don't think Babylon.js would be a good choice but I may be wrong. I've modeled my architecture after this fantastic GDC talk by the Noita devs: [VIDEO] ("Exploring the Tech and Design of Noita")
Noita is a game based around the concept of a chemistry engine running at the pixel level. It uses a custom rules engine written in C++. It's one of the more interesting games I have ever played. [LINK] [VIDEO]
this doesn't answer any questions about this game, but I found this GDC talk about Noita pretty interesting: [VIDEO]
Thank you! It's funny because I really wanted to introduce more things like that, but the very simple things I've added so far have received a bit of pushback ("I want to play a factory game, not solve puzzles!"). So now I'm reconsidering it, but I think there's a lot of room for really interesting Noita-style secrets when combined with the automation and processing tools. Overall it's a much simpler and more controlled experience than Noita though, so don't expect anything like it. By the way, this talk by the Noita devs has been instrumental when building my engine: [VIDEO] Highly recommended!