The idea is as follows:
1) Hopefully, we will be able to update _more_ than two simulation regions per frame. The idea would be to do as many as we can, and hopefully across multiple cores, so that we would at least be doing 64 regions per frame, etc. So even if we updated the 10,000 region case, we'd be talking a few seconds per update, not 5 minutes.
2) We don't need to update any regions that don't have entities in them that are active, so we can effectively prune the number of possible simulation regions down quite a bit from the total number of regions in the game. For entities that are not acting in a global way at the moment (like trees or something), those regions of the world never have to be simulated at all.
As for writing the usage code first, no, I absolutely did write the usage code first :) The entity code we have already was difficult to write, in my opinion, in a way that would allow lots of such entities to work around the world. Just moving the familiar and the sword was causing problems. So we already had the opportunity to make a good code upgrade, because the problems were already obvious. There was not a lot of point in doing more things, because basic entity movement needs to be handled well with the large world / large entity count model, and once we have some kind of structure for that, we can start to see if we need other superstructure things (like for pathfinding, etc.)
- Casey