Você pode usar um banco de dados - o PostgreSQL possui alguns recursos especiais de indexação otimizados para esse tipo de dados, localizado pelas coordenadas X e Y. Você também pode especificar que os dados retornados estejam dentro de um determinado raio e não em uma área quadrada ou oblonga.
PostgreSQL (código aberto e gratuito)
http://www.postgresql.org/
Também existem outros bancos de dados e, para o lado do cliente, você pode encontrar certos tipos mais adequados para isso, pois eles podem ser executados de forma independente (iniciada pelo aplicativo cliente do jogo) ou podem ser incluídos como parte de uma biblioteca de códigos que você pode "apenas usar". A vantagem é que você não precisa criar um esquema de indexação porque a maioria dos mecanismos de banco de dados SQL já faz isso muito bem.
Uma vantagem da abordagem do banco de dados é que você pode diminuir seus blocos (ou se livrar completamente dos blocos e usar blocos diretamente), mas o uso de pelo menos pequenos grupos / grupos de vários blocos pode ser mais eficiente, dependendo do seu design), e use a consulta SQL para criar uma área maior do que a visível. Ao pré-carregar para sobrepor áreas não visíveis próximas, as peças podem ser preparadas antes que o jogador mova seu personagem, resultando em uma melhor experiência de jogo (espero que seja mais suave).
Percebi que alguns jogos mantêm um "cache" dos dados do mapa no disco rígido local após obtê-los pela primeira vez (isto é, sem dúvida, para reduzir a E / S da rede), como o Ashen Empires:
Impérios Ashen (livre para jogar, bela implementação 2D)
http://www.ashenempires.com/
Manter o controle dos registros de data e hora da "última atualização" com cada bloco / bloco também será útil, pois, onde os dados armazenados localmente estão disponíveis, a consulta SQL pode incluir uma cláusula "WHERE timestamp_column> $ local_timestamp" adicional para que somente blocos / blocos atualizados sejam recebidos. baixado (dois benefícios de economizar largura de banda como essa são custos mais baixos de conectividade e menos atraso para os jogadores, o que se tornará mais óbvio quando o jogo se tornar popular).
Uma captura de tela de Ashen Empires (alguns personagens estão em um banco local e, pela aparência desses ossos no chão, parece que alguns monstros-esqueleto devem ter entrado e provavelmente foram massacrados pelos guardas da cidade local):