En su lugar, podría usar una base de datos: PostgreSQL tiene algunas capacidades de indexación especiales optimizadas para este tipo de datos que se ubican mediante coordenadas X e Y. También puede especificar que los datos devueltos se encuentren dentro de un cierto radio en lugar de en un área cuadrada u oblonga.
PostgreSQL (fuente libre y abierta)
http://www.postgresql.org/
También hay otras bases de datos, y para el lado del cliente, puede encontrar ciertos tipos que se adaptan mejor a esto, ya que pueden ejecutarse de forma independiente (iniciada por su aplicación cliente del juego) o pueden incluirse como parte de una biblioteca de códigos que puedes "usar". La ventaja es que no tiene que diseñar un esquema de indexación porque la mayoría de los motores de bases de datos SQL ya lo hacen bastante bien.
Una ventaja con el enfoque de la base de datos es que puede hacer que sus fragmentos sean más pequeños (o deshacerse de los fragmentos por completo y solo usar mosaicos directamente, pero el uso de al menos pequeños fragmentos / grupos de muchos mosaicos puede ser más eficiente dependiendo de su diseño), y luego use la consulta SQL para traer un área más grande de lo que se puede ver. Al precargar para superponer áreas cercanas no visibles, las fichas se pueden preparar antes de que el jugador mueva su personaje, lo que resulta en una mejor experiencia de juego (con suerte más suave).
Me di cuenta de que algunos juegos mantienen un "caché" de los datos del mapa en el disco duro local después de obtenerlo por primera vez (esto es sin duda para reducir las E / S de la red), como Ashen Empires:
Ashen Empires (gratis para jugar, hermosa implementación 2D)
http://www.ashenempires.com/
Hacer un seguimiento de las marcas de tiempo de "última actualización" con cada fragmento / mosaico también será útil, ya que, para los datos disponibles localmente almacenados, la consulta SQL podría incluir una cláusula adicional "WHERE timestamp_column> $ local_timestamp" para que solo se obtengan fragmentos / mosaicos actualizados descargado (dos beneficios de ahorrar ancho de banda como este son menores costos de conectividad y menos retraso para sus jugadores, lo que será más obvio cuando su juego se vuelva popular).
Una captura de pantalla de Ashen Empires (algunos personajes están en un banco local, y por el aspecto de esos huesos en el piso parece que algunos monstruos esqueletos deben haber entrado y probablemente fueron asesinados por los guardias de la ciudad local):