I have worked with and build a SoA system. I quite like it. I worked with one written in C++ where your objects were represented by small reference structs and you access all of the real members via static methods. It was done to improve cache access times as often you iterate over a large number of objects but read only a single property (say only the position) of each object. I don't know how big a performance improvement this actually is, as we don't have a feature-parity version of AoS lying around. But taken by itself the SoA does not feel less comfortable to work with. Though we make heavy use of a code-generator to not write getter/setter boilerplate.
Dragonseel
I think both types of community can have a value. Being general as in "all things can fit here" and in "only things that are general to programming". I have no experience in community management so take my words with a huge grain of salt.
The communities on Reddit were huge. That lead even in the smaller more specialized communities to have a big volume of posts. I am mainly interested in game-dev and Rust-Lang, and even there were so many posts that do not fit what I am interested in. But would splitting the communities make it better? Maybe I could then chose to ignore some of the posts, but also the hurdle of posting stuff, the and to enter these communities for people might get higher. As a newbie, (either to programming or just to talking on these platforms) you might be intimidated to post to a group of experts. And it is much easier to find. Just a "programming" community where all things have place can be a very good place to "collect" people and filter them into their nieche interests. Link to other communities, crosspost. Hopefully people will then start to post the more specific stuff in the more specific communites on their own.
I feel like Reddit made it harder over time to form a "meta-community" of multiple subreddits. Though I can't right now exactly pinpoint why that is.
So again I see benefits to both approaches. Maybe we just need both. Make a "computer science" community, advertise it on this community, and make it focussed on concepts, papers and the generic programming stuff. Filter the "patch notes" stuff out from there. And this community here could then be the catchall "landing-page" thing. There will be suff for everyone, but not all of it. There will be some general posts and some specifics. And hopefully we can find methods that people find their more specific communities if they have more specific stuff to share or ask.
Sorry, I got a bit rambly in my stream-of-conciousness post here. Hopefully you can get anything from it. I am not sure :)
Wow. That is a cool. My limited experience working with single-threaded game-stuff tells me it is exceptionally hard to port stuff that is written without threading in mind, to multi-threading. Getting the behavior to stay the same while still actually getting better performance requires some really deep insight into how stuff works in the program. On a (program-)global scale. Mad respect if it works out. This should make huge maps or huge fortresses possible.
I haven't yet played the steam version (it is on my todo-list though), but sank quite some hours into the "legacy" version. It can become laggy if you play on big maps with a lot of dwarfs/critters etc on it. I am excited to have even more stuff possible in this already very complex and huge game.
That fully depends on your definition of what the "reversed" state is. Will ecosystems adapt to the changed climate? Yes. Can temperatures even drop again? Sure. But species lost are gone forever. Ecosystems destroyed will never be the same again. Different ones can develop with enough time and stopping the human interference... But that is hardly "reversible". That is... natural systems covering up the damage. Going on. Not reversing it.