seeing multithreading as 11th in the voting list made me wish more people knew what it is.
MULTICORE SUPPORT MAN. YAYUS.
I think the reason it doesn't get more votes is because it would require a massive overhaul of the game to put in, and during that time Toady couldn't really do anything else. So the overall development would stall for a very long time without anything new being added. Sure, performance would improve, but that's about it.
Personally, I'd rather have more features and less bugs than better performance, and I'm sure a lot of other people feel the same way.
[snip]...Concurrency is difficult and bug-prone, it would require different code for each supported OS, and even modern games still only run two or three threads: Device I/O (network, hard drive, whatever), Game Logic, and Graphics. Offloading the entire game logic to a different thread would be negligibly helpful in this case, and even if the game logic were spread out into multiple threads (like one for pathing, one for fluid simulation, and one for everything else for instance) all the game logic threads would still have to wait on the slow one to finish before updating the state of the game...
I think the idea is more that a problem is split up in subproblems that are then calculated in different threads. Pathing is a good example. Each path could be forked into an own thread, which would greatly increase the speed of producing a pathing result for the next game tick. But you are right, it is not easy to do, and if pathing isn't the bottleneck, it will actually hurt more than help, because the thread-switching of course means an additional overhead.
The game should be profiled to identify the problematic code locations, then these should be improved. Toady is probably a very good programmer, but I'm quite sure that there is still potential for performance improvements. Maybe, for some of the code, multi-threading will be the solution. Maybe not.
[Emphasis mine] THIS! More than shiny new features, new creatures, multithreading, or even bug fixes,
that's what I want to see. As for identifying problem areas, there's a list of player suggestions for improving performance in the
Maximizing framerate article on the wiki. Of these, pathfinding is probably the biggest culprit - even though it often does not look like it. (See the research done on the
Undump Engine and
Micha's fort for evidence that the
pathing involved in
hauling and
stockpiles is the real problem with items,
not the sheer quantity.)
Multithreading sounds nice. But it would be a lot of work and I think the improvement would be far less than the expectations. Anyway, multithreading systems already take care of their OS and other background tasks while DF gets a separate thread. And if you run Dwarf Therapist, Stonesense, or other tools, there's also that...
With each release I hold out hope that Toady does something -
anything - to improve performance. Granted, rather recently there was some progress in that direction. (Specifically: A memory issue, some contaminant issues, and fixing that old bug on
clothing ownership.) But considering how each major release adds
tons of new stuff that the game has to do and keep track of, it's not
nearly enough.
Consider the most recent poll on the
Phoebus' Graphic Set thread. It asks "What are your most common reasons for losing a fort?" The most common answer, by far, is "
FPS Death"!
I'm pretty confident that the reason FPS death does not get more attention is because players have gotten used to starting over with reclaiming or a new embark and many don't consider that a big deal. And many forts do not last long enough for FPS decay to matter much. Losing may be
fun, but there's no question that FPS death is a lame way to lose!
Also, consider the discussion on the
FPS issue on slow PCs: Worse than before thread. Opinions are divided, but the majority seem to suggest that the 0.34 versions are about as slow as 0.31 versions (even taking aforementioned improvements into account). And in the 2 years or so since 0.31, many players have upgraded to newer hardware. With such upgrades they
should see a noticeable improvement... even though many do not.
It also mentions that, in terms of hardware upgrades,
RAM latency is the biggest bottleneck in DF performance.