Ви можете замість цього використовувати базу даних - PostgreSQL має деякі спеціальні можливості індексації, оптимізовані для цього типу даних, які розташовані за координатами X та Y. Ви також можете вказати, що дані, що повертаються, знаходяться в певному радіусі, а не в області квадратної або довгастої форми.
PostgreSQL (вільний та відкритий код)
http://www.postgresql.org/
Існують і інші бази даних, і для клієнта ви можете виявити, що певні типи краще підходять до цього, оскільки вони можуть працювати окремо (ініційовані вашою клієнтською програмою для ігор) або можуть бути включені до складу бібліотеки кодів що ви можете "просто використовувати". Перевага полягає в тому, що вам не потрібно розробляти схему індексації, оскільки більшість двигунів баз даних SQL вже роблять це досить добре.
Перевага підходу до бази даних полягає в тому, що ви можете зробити свої шматки меншими (або позбутися шматочків повністю і просто використовувати плитку безпосередньо, але використання принаймні невеликих шматочків / груп багатьох плиток може бути більш ефективним залежно від вашого дизайну), а потім скористайтеся запитом SQL для залучення більшої області, ніж видима. Заздалегідь завантажившись для перекриття сусідніх невидимих областей, плитки можна підготувати до того, як гравець перемістить свого персонажа, що призведе до кращого (сподіваємось, плавнішого) ігрового досвіду.
Я помітив, що деякі ігри зберігають "кеш" даних карт на локальному жорсткому диску після їх першого отримання (це, безсумнівно, зменшення мережевого вводу / виводу), наприклад, Ashen Empires:
Ешен Імперії (безкоштовно грати, прекрасна 2D-реалізація)
http://www.ashenempires.com/
Відстеження "останніх оновлених" часових позначок з кожним фрагментом / плиткою також буде корисним, оскільки, коли доступні локально збережені дані, SQL-запит може включати додатковий пункт "WHERE timestamp_column> $ local_timestamp", щоб отримати лише оновлені шматки / плитки завантажені (дві переваги збереження пропускної здатності на кшталт цього - це менші витрати на підключення та менше відставання для ваших гравців, що стане більш очевидним, коли ваша гра стане популярною).
Екран, знятий з Ешен Імперій (декілька персонажів є в місцевому банку, і за виглядом цих кісток на підлозі схоже, що кілька скелетних монстрів, мабуть, заїхали і, ймовірно, були забиті охоронцями місцевого міста):