I am seeing a problem with what is going on here. As you go further and further into development, you are locking more and more behind single threaded only processes. As the base grows larger, it (obviously) gets harder and harder for a single core to process everything that it needs. Considering that most people have more processing available to them than a single core, this problem has a rather simple (sounding) and obvious solution.Rseding91 wrote:It already is.TheTom wrote:Decouple draw logic.
Not feasible. Routes become invalid during game updates which means you can't calculate a path while the game updates. Routes also effect the cost of the next route so they can't be done in parallel.TheTom wrote:Decouple routing decisions. Keep a separate path network (robots, TRAINS) and handle pathfinding on separate threads.
Exact same problem as trains.TheTom wrote:Decouple AI At least high level (i.e. groups of biters).
I dont know a single person who has a single core CPU, and most of the gamers that I know have 4 threads or more. You have said that you want to move towards multi-threading Factorio, but as time goes on, you keep making it harder. The optimizations that you are spending a large amount of time on today, while nice, are going to be a problem in the future when you rewrite the engine. Its already going to be hard to rewrite, but you keep making it harder. You need to either start writing with threading in mind, or you need to define a point that you are going to rewrite the engine. It needs to take priority.
If you want my opinion, the engine rewrite should be PART OF 0.16, or 0.17 at the latest, and probably THE ONLY thing in that particular update. At the worst, Factorio should not have a 1.0 version until the main engine is threaded.
I know easier said than done, but it needs to be done at some point anyway, so that doesn't matter.
Oh, and considering that AMD is now pushing Intel, I have the sneaking suspicion that we are going to see a lot more people with 4-8 cores in the future. Best get on that boat now.