Intuitively, I’ve always understood lock-free algorithms/data structures to be an approach to multithreaded programming that doesn’t involve using “locks”. Locks here mean any general mechanism used to “protect” memory so that multiple threads don’t, for instance, write to it at the same time. This typically involves one thread acquiring and owning the lock, while other threads have to wait for the owning thread to “free” the lock, allowing them to eventually access the data.
Building Evo Part 2
On todays’ episode of building evo, i’m going over the basic sdl2 implementation, Hopefully you’ve read the first post and you know what evo is, and you also know that i moved from using sdl2 to bevy. This post is just going over what i was able to do before switching because i think that might be interesting to read.
That said, I didn’t really go far with using sdl2. I implemented basic graphics and a view for the organisms, organism tracking within the environment, and wall stacking (ONLY for organisms going in the same direction). Getting organisms to stack on walls was a real pain, it took more than a month(including procrastination time) to figure out, or maybe it’s a skill issue.
Building Evo Part 1
A few months ago, I saw this really cool YouTube video demonstrating a simulation of evolution through natural selection, and it blew my mind. As such, I thought it’d be a good idea to try and recreate the system, and here we are. It’s been quite a while since I decided to do this, and there have been a lot of weird hitches and changes. But I eventually reached a decent point in the project and thought it’d be a good idea to write about it.