We've (work team) used the approach to successfully scale out a few high demand event driven applications, so I'm toying with the design of a game server that would use this approach.
I'm running in to some sticking points:
1. Where to put the loop...
One way would be to have an actor that publishes a tick event and then all the other entity actors do a simulation step. This seems a bit too centralized though, one very busy actor which can quickly become a bottle neck.
Another approach I've seen is that each entity actor runs it's own loop, but then you still need a synchronization mechanism which will also become a bottleneck.
2. Sharing state
State sharing obviously violates the model, nor does it work, so this creates an interesting problem.
Entities are going to need to be able to "see" the world. Passing a reference to the world is all that's normally needed, but in the case of actors, it becomes very costly to do this because of sending such a large message frequently to many entities.
Requesting a glimpse/chunk might be a workable approach, but they would then need to get this from a "World/Map/ZoneActor", making that a single very busy actor.
Would probably use either Akka.NET or Project Orleans for the model implementation.
I'm just looking for any ideas or input from people who've maybe gone down this route before.