The current design seems to be something along the lines of: 1 parent/overlord ai/thread \- 1 diplo ai/thread \- 1 builder ai/thread (cities, workers, whatever) \- 1 military ai/thread \- 1 civics/tech ai/thread then each civilization gets processed by the parent. that's fine. but the divisions are not equal. most likely the crunching happens in deciding where to move units -- more units over time -- which I theorize explains the slowdown over time. so take the design the next step. create parallel overlord threads \ master thread -\ civilization 1 overlord --\ diplo --\ builder --\ military --\ civis -\ civilization 2 overlord --\ etc -\ civilization 3 overlord --\ etc the sequential turns might make sense if you want AI #2 to respond to AI #1's previous move, but that should happen on the /next/ turn, not the current turn.