var player = new Player(123);
is actually instantiated _somewhere_ on the network (not necessarily locally on the calling server.) Then operating on that object, such as: await player.FireWeapon();
tells the server (“silo” in Orleans terms) which owns that player instance to invoke that method on it.In this way, it is very easy to quickly update game state without obsessing over the throughput of a single machine.