What makes sense for multi-threading is another area that is interesting. Certainly, trade connections is a huge bottleneck in Civ3. But I am definitely interested in multithreading in general.
Which probably sounds contradictory given my previous post. In my mind though, there's a distinction between JavaScript-style async/await (where at some unknown point in the future, a result will return), and parallelizing calculations (where you run a bunch of tasks in parallel). The latter is multithreaded, but can effectively be thought of synchronously. Run a bunch of threads on this task, wait for them to finish, go do the next thing.
I don't know how well parallel calculations will work with mod/Lua interop. But as someone who plays Civ3 over Civ5/Civ6 in no small part for the larger maps (and lack of 1 UPT), being able to scale performance effectively is a significant appeal.
Although I also wonder if the performance can be improved simply by using better algorithms. In my experience, there are often more significant speedups available via algorithms than via threading, and trade calculations in Civ3 are slow enough that I've long wondered if there is low-hanging fruit in terms of optimization.
Which probably sounds contradictory given my previous post. In my mind though, there's a distinction between JavaScript-style async/await (where at some unknown point in the future, a result will return), and parallelizing calculations (where you run a bunch of tasks in parallel). The latter is multithreaded, but can effectively be thought of synchronously. Run a bunch of threads on this task, wait for them to finish, go do the next thing.
I don't know how well parallel calculations will work with mod/Lua interop. But as someone who plays Civ3 over Civ5/Civ6 in no small part for the larger maps (and lack of 1 UPT), being able to scale performance effectively is a significant appeal.
Although I also wonder if the performance can be improved simply by using better algorithms. In my experience, there are often more significant speedups available via algorithms than via threading, and trade calculations in Civ3 are slow enough that I've long wondered if there is low-hanging fruit in terms of optimization.