Utilice el filtrado del área de interés. Si un mundo se divide en 3 servidores, y el área del servidor 1 no está cerca del área del servidor 3, no hay ninguna razón para que compartan información sobre entidades.
Del mismo modo, en un solo servidor, solo envíe información relevante a los clientes. Si el jugador A está en el extremo totalmente opuesto del mapa del jugador B, no hay razón para enviar actualizaciones sobre B a A, o viceversa.
Cuando tiene varios servidores en un mundo continuo, tendrá entidades cercanas a un borde en el servidor 2 que están cerca de las entidades en el servidor 1. Puede enviar actualizaciones desde el servidor "autorizado" de una entidad al otro servidor (cuando corresponda) y del mismo modo reenviar cualquier mensaje al servidor autorizado según corresponda.
Sí, en este caso, un servidor estará un poco desactualizado para entidades particulares. No trates de resolver eso. Simplemente trata con ello. Suponga que las entidades pueden estar un poco desactualizadas. Haga cualquier lógica que necesite información actualizada solo en el servidor que posee las entidades con autoridad. Cuando una entidad afecta a otra, envía un mensaje y asume que puede tomar múltiples tics lógicos del juego antes de que se procese y tu vista se actualice.
Este diseño también hace que sea mucho más fácil enhebrar un solo servidor. Ninguna entidad debe modificar directamente a otra, solo enviar mensajes, y se debe suponer que las cachés de proxy locales por servidor / por subproceso están ligeramente desactualizadas.
Por ejemplo, si la entidad A ataca a la entidad B, no verifique la vida de B y luego envíe un mensaje de muerte si llega a 0. Simplemente envíe un mensaje "dañado", deje que el servidor autorizado de B lo maneje, y luego maneje cualquier Mensaje "entidad fallecida" enviado por el servidor B más tarde si la entidad A se preocupa por eso.
Lo mismo se aplica a cualquier aplicación grande y escalable que no sea de juegos. Una base de datos central no es una tecnología mágica para compartir instantáneamente. Dos servidores deben comunicarse con mensajes, asincrónicamente, en lotes, para mantener un alto rendimiento. De ahí la popularidad de tecnologías como AMPQ y similares. Las bases de datos son para el almacenamiento y la sincronización de soporte por necesidad, lo que les permite ser utilizadas para las comunicaciones, no porque estén destinadas a la sincronización o la comunicación.