Exploring the Tech and Design of Noita
GDC Festival of Gaming7 HN recommenders · recommended in 7 months, 2020–2026
talk · intermediate · evergreen · 2020–2026 on HN
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 dri…
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.
Up next
2 mo on HNBrowser hacking: Let's make "Cookie Clicker" playable in Ladybird!
Andreas Kling
2 HN recommender · 2022–2024
6 mo on HNWhy Is It So Hard to Do Something That Should Be Easy? (Wall of Awful pt. 1)
How to ADHD
6 HN recommender · 2020–2022
3 mo on HNWelcome to the Internet - Bo Burnham (from "Inside" -- ALBUM OUT NOW)
boburnham
4 HN recommender · 2021–2026
6 mo on HNThe Patent Scam Intro
Austin Meyer
6 HN recommender · 2016–2022
7 mo on HNdotGo 2015 - Rob Pike - Simplicity is Complicated
dotconferences
7 HN recommender · 2016–2023
3 mo on HNHow wildlife trade is linked to coronavirus
Vox
5 HN recommender · 2020–2020
3 mo on HNNVScene 2015 Session: How to Create Content with Signed Distance Functions (Johann Korndörfer)
NVScene
3 HN recommender · 2017–2018
3 mo on HNPRACTICE 2018: Joseph White
NYU Game Center
2 HN recommender · 2018–2022
10 mo on HNOverwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
16 HN recommender · 2019–2025
9 mo on HNRustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
9 HN recommender · 2018–2023
9 mo on HNA Deep Dive into Nanite Virtualized Geometry
SIGGRAPH Advances in Real-Time Rendering
7 HN recommender · 2021–2026
9 mo on HNHow Crash Bandicoot Hacked The Original Playstation | War Stories | Ars Technica
Ars Technica
13 HN recommender · 2020–2026
10 comments from Hacker News
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: ▶ this video Highly recommended!
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: ▶ this video ("Exploring the Tech and Design of Noita")
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]: ▶ this video "Exploring the Tech and Design of Noita"
this doesn't answer any questions about this game, but I found this GDC talk about Noita pretty interesting: ▶ this video
Here's a talk from the creator of Noita about the underlying tech. From 9:20 he talks about their multithreading implementation. ▶ this 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 ▶ this 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] ▶ this video
Noita does interesting things with terrain deformation, and this is a good GDC talk about how it does so: ▶ this video
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 ▶ this 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 ▶ this 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.