Can't think of any other game i've played where the leader NPCs of a city were vampires who'd taken over the city a few hundred years ago and were at war with a church started by a human who found jewelry created by a dwarf who'd ran away after murdering a child and crafting their bones into jewelry in a fell mood that was found by a random human in the city who started a cult around it, who then took up a personal vengeance with the vampire overlords and were undergoing covert operations against them that i disrupted when I killed the fuck out of everyone, gathered the child bone jewelry and read about that shit in legends. All procedurally generated and created on the fly through the simulation of all those respective NPC's lives.
Every friday the subreddit has stickied thread for sharing in-game stories: https://old.reddit.com/r/CrusaderKings/comments/hc4iyp/feuda...
https://www.destructoid.com/crusader-kings-ii-s-community-is...
If you like the classic Fallout games (1 & 2) and you enjoy roguelikes with a lot of weird stuff, I think you’d get a kick out of CoQ. The game has incredible atmosphere that gives you this feeling like you’re exploring a real, living, breathing world. There’s a lot of depth to the gameplay as well, with deep character building and a complex crafting system.
I really want to get back to playing it but I’m in school right now and have a ton of work to do!
Apparently it's slated to leave early access in Q4 2020, so I'm holding off on buying it for the moment, but I'm very eager to play it.
[1] http://www.freeholdgames.com/papers/Generation_of_Mythic_Bio...
Makes you wonder what you could do applying something like the GPT-3 AI text model to this kind of problem (history generation).
The way I played I got more of a NetHack in an open world setting vibe, rather than a sandboxy exploration of a generated world.
I'm not sure what I was doing wrong. Was I focusing on battle too much? Is it even avoidable when the plains are full of monsters, and goals are placed on the other side of the plains?
You can play characters which avoid combat to a large extent, in quite a few different ways. You can get so good at talking to people that you can get some extremely powerful allies to do all the fighting for you. You can also tinker up some really powerful automated turrets that will clear enemies no problem, and use force fields to protect yourself from attack. You can also avoid combat to a considerable extent by picking up some wilderness lore.
Having said all that, combat is a major part of the game, just as it is in most roguelikes.
Making DF use multiple cores efficiently would be amazing, but I have serious doubts its viable in the short-ish term without a significant rewrite. The most you're likely to see is some peripheral systems offloaded onto background threads when possible.
My hope is that with the upcoming Steam release they make enough money to hire another veteran game programmer or two to help them work on game and make it perform better.
Game engines are incredibly complex -- there are usually dozens if not hundreds of systems interacting with each other. Over time, this all ossifies to the point where making changes to one system requires changes to many other systems. This is kind of a fact of life with almost every game engine or codebase that I have encountered, worked with, or heard of. When you start getting into more than a decade of development, there are going to be a lot of tangled systems that are going to be very difficult to pull apart.
Yes, the fundamental problem may be solved for multiple threads, but DF solved it for one thread, and that solution is part of what makes DF fun. Messing with that solution is asking for trouble.
Just slap on a good old "#pragma omp parallel for" with OpenMP (a nice guide is here [0]).
[0] https://bisqwit.iki.fi/story/howto/openmp/
I also found this pdf if you are interested. http://www.shodor.org/media/content/petascale/materials/UPMo...
If dwarfs have x,y coordinates that mark their position and the coordinates are changed when they move then it would not be a cellular automaton.
A cellular automaton would take a cell and look at surrounding cells to see if there is a dwarf that wants to move to the currently processed cell and switch the current cell to a new dwarf cell. The dwarf cell would see that the dwarf can successfully move and delete the dwarf cell.
Which method do you think is DF using?
The automaton would lose the nice property of being spatially isomorphic to the screen, and the possible states would explode, but if my understanding is correct, it could still be a cellular automaton.
I agree you can't make the whole agent-based system multithreaded overnight but there are many calculations happening with every 'tick' that I would be quite confident are easily parallelizable.
I love dwarf fortress, i've played it for years, but I always hit its limits what feels like far too soon after each release.