Anda dapat menggunakan database sebagai gantinya - PostgreSQL memiliki beberapa kemampuan pengindeksan khusus yang dioptimalkan untuk jenis data yang terletak oleh koordinat X dan Y. Anda juga dapat menentukan bahwa data yang dikembalikan berada dalam radius tertentu daripada di daerah berbentuk persegi atau bujur.
PostgreSQL (sumber gratis dan terbuka)
http://www.postgresql.org/
Ada juga basis data lain, dan untuk sisi klien Anda mungkin menemukan tipe tertentu lebih cocok untuk ini karena mereka dapat berjalan sendiri (diprakarsai oleh aplikasi klien game Anda) atau dapat dimasukkan sebagai bagian dari perpustakaan kode Anda bisa "gunakan saja." Keuntungannya adalah Anda tidak perlu merancang skema pengindeksan karena sebagian besar mesin database SQL sudah melakukan ini dengan cukup baik.
Keuntungan dengan pendekatan database adalah bahwa Anda dapat membuat potongan Anda lebih kecil (atau menyingkirkan potongan sepenuhnya dan hanya menggunakan ubin langsung, tetapi penggunaan setidaknya potongan kecil / kelompok banyak ubin mungkin lebih efisien tergantung pada desain Anda), dan kemudian menggunakan kueri SQL untuk membawa area yang lebih besar daripada yang dapat dilihat. Dengan pra-pemuatan untuk tumpang tindih dengan area yang tidak dapat dilihat di dekatnya, ubin dapat disiapkan sebelum pemain memindahkan karakter mereka, menghasilkan pengalaman bermain game yang lebih baik (semoga lebih mulus).
Saya perhatikan bahwa beberapa game menyimpan "cache" dari data peta pada hard drive lokal setelah mendapatkannya pertama kali (ini tidak diragukan lagi untuk mengurangi I / O jaringan), seperti Ashen Empires:
Ashen Empires (gratis untuk bermain, implementasi 2D yang indah)
http://www.ashenempires.com/
Melacak stempel waktu "terakhir diperbarui" dengan setiap potongan / ubin juga akan membantu karena, untuk tempat data yang disimpan secara lokal tersedia, kueri SQL dapat menyertakan klausa "WHERE timestamp_column> $ local_timestamp" tambahan sehingga hanya potongan / ubin yang diperbarui yang mendapatkan diunduh (dua manfaat dari menghemat bandwidth seperti ini adalah biaya konektivitas yang lebih rendah, dan sedikit lag untuk pemain Anda, yang akan menjadi lebih jelas ketika permainan Anda menjadi populer).
Tangkapan layar dari Ashen Empires (beberapa karakter ada di bank lokal, dan dari penampilan tulang-tulang itu di lantai, sepertinya beberapa monster kerangka pasti telah mengembara dan kemungkinan dibantai oleh penjaga kota setempat):