Я строю свою первую многопользовательскую онлайн-игру и пытаюсь найти лучший способ найти всех игроков в пределах определенного диапазона.Поиск вещей с диапазоном
Я огляделся; все остальные решения основаны на API-интерфейсе игрового движка, в котором встроен дальномер.
У каждого игрока есть пара координат x,y
.
Первое, о чем я думал, было: перебирать всех пользователей на сервере и фильтровать их в пределах диапазона - просто используя теорему Пифагора - однако я знал, что должен быть лучший способ сделать это.
Лучшие вещи, о которых я думал, - это разбиение карты на разделы размером около 100 (10 x 10) и размещение пользователей в соответствующих разделах. Затем я мог бы получить раздел, в котором находится пользователь, и вместо того, чтобы перебирать каждого пользователя на сервере, прокручивайте каждого пользователя в пределах 9 квадратов (3x3, раздел пользователей и все остальные, окружающие его).
Я уверен, что это лучше, чем просто цикл через весь сервер 1000 раз в секунду, но есть ли стандартный способ сделать это, или это так, как это делается?
Я хочу держать вещи как на стороне клиента, так и на стороне сервера.