Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Out 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.
 help



Actually 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.


this 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

Yes, that talk has been instrumental for my game. Highly recommended!



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: