@multithreading... i have a 64 bit system, you may have one, but what about people with 32 bit? switching to multi-threading would strain 32 bit processors. Also, switching the entire game code would take forever, and introduce a slew of bugs. So long term gain, yes. but with the cost of a portion of the fanbase who have older computers, and a few years of development time, which would drive off another portion of the fanbase.
mostly the calculations need to be optimized, which Toady is trying very hard at, and what NW's experiment could potentially help with.
Also, it is better to improve a single thread process' algorithms then it is to make that process multi-threaded.
having 2,4,6, or even 20 cores with 1 thread a piece wont improve the framerate of the game if the same code issues are dragging it down.
tl;dr: would screw the last few 32 bit users, wouldn't help till the code bugs are fixed, would introduce many new bugs.
@Hataru, im breaking into your house and stealing your computer, just thought id let you know in advance.
Actually, multithreading and 64bit address space are different beasties. Multithreading means you divide the program into different subprocesses, instead of a single enormous one. This let's the program make use of multiple cpus and/or multiple cores.
The 64bit advantage is "huge" registers inside each core, and access to a huge memory space.
Again, multithreading is not tied to 64bit arch, you just need to have more than one cpu, or have a cpu that at least does intel's hyperthreadding.
Also, I indeed did not presume that toady doesn't know about multithreading. I presumed he is avoiding it because concurrency is a royal PITA, caused by a jackhammer without lube. (At least compared to a simple single thread process structure.) However, given the stagnation of cpu speed in the marketplace over the past decade, and the market trend for more cores instead, along with the expected feature set of this game, toady is going to have to bite the bullet and switch to multithtreading someday. (I can't see the war and caravan arc releases operating without it. Not at playable fps.) The sooner he starts building his MT framework, the less blood he will pass rectally later while trying to add features.
For the time being, I was suggesting simply creating "dummy" threads on other cores, so he could get access to their registers, because doing so would greatly speed up processing of the primary thread under certain types of processing conditions. (Accumulators, flags, pointer arrays, etc could be stored in the vacant cores' registers, even though the process is still single threaded otherwise. The access to the other core registers is cheap compared to a ram access. Other things that might help are dummy operations on the other cores to get data into the shared cpu cache while the main core is busy as a kind of prefetching. This way the main thread makes more efficient use of the cpu instruction cache, reducing the need to hit ram.)
Those things re not full blown multithreading, but would allow a multicore cpu to benefit playing DF.