4 ms·
As a fan of both Neal and R74n this was an unexpected collaboration! I can highly recommend building your own falling sand simulator. It's really fun to see ho
by hopfog 8mo ago
As a fan of both Neal and R74n this was an unexpected collaboration!
I can highly recommend building your own falling sand simulator. It's really fun to see how such simple rules create emergent behaviors. Sand pixels try to move down, then diagonally down. Water does the same, then tries sideways.
Me messing around with it eventually resulted in a game I'm now working on full time (think Noita meets Factorio): https://store.steampowered.com/app/2764460/Sandustry/ https://store.steampowered.com/app/2764460/Sandustry/
- thih9 8mo agoThis is an old R74n project that has been moved, not a real collab.
- PoorRustDev 8mo agohow is working with hooded horse?
- rizzlersigma 8mo agoScammer get scammed
- hopfog 8mo agoAwesome. I wasn't planning on signing with a publisher but now I'm really happy that I did.
- g105b 8mo agoThis looks really cool. I'd love to read your dev blog if there is one?
- thunfischtoast 8mo agoOut of curiosity: Do you use a high level language (like C#) or do you have low level optimizations on (e.g. assembly level)? I imagine that there has to be some kind of map that keeps track of which pixels are "active" and need to be updated, but I wonder how do that efficiently.
- thezipcreator 8mo agothis doesn't answer any questions about this game, but I found this GDC talk about Noita pretty interesting: https://www.youtube.com/watch?v=prXuyMCgbTc https://www.youtube.com/watch?v=prXuyMCgbTc
- hopfog 8mo agoYes, that talk has been instrumental for my game. Highly recommended!
- hopfog 8mo agoActually even higher level than that: it's all JavaScript, but it relies heavily on multithreading (see the linked Noita talk, which uses the same model). But basically: The world is divided into chunks and the threads are processing them simultaneously in an even-odd checker pattern to avoid race conditions. When all pixels settle in a chunk it falls asleep and can be skipped altogether until an active pixel enters and wakes it up again.