Сценарий: большое количество игроков, играющих в игру в реальном времени в трехмерном пространстве, должно быть организовано таким образом, чтобы сервер мог эффективно обновлять других игроков и любого другого наблюдателя за ходом и действиями игрока.То, что объекты «общаются» друг с другом, необходимо отбирать в зависимости от их расстояния друг от друга при моделировании;Это необходимо для сохранения работоспособности сети, работоспособности программиста, а также для того, чтобы сервер позволял обрабатывать небольшие фрагменты всего игрового пространства в мире.
Однако, если у вас 3000 игроков, это приводит к тому, что нужно запустить 3000!Расчеты, чтобы узнать диапазоны между всем.(Google говорит мне, что в конечном итоге это число с более чем 9000 цифрами; это безумие, и его не стоит рассматривать в условиях, близких к реальному.)проблема с их массовой онлайн-игрой от первого лица Planetside 2;он позволил 3000 игрокам играть в общем пространстве и оперативно реагировать в реальном времени.Они, очевидно, сделали это через структуру данных «Sphere Tree».
Тем не менее, я не положительный , это решение, которое они используют, и я все еще задаюсь вопросом, как применить концепцию "Sphere Trees", чтобы уменьшить вычисления дальности для отбраковкив разумных пределах.
Если сферические деревья - не то дерево, на которое нужно лаять, на что еще я должен обратить свое внимание для решения этой проблемы?
(я ac # программист (в основном), но я ищу логичный ответ, а не кодовый)
Ссылки, которые я нашел о сферических деревьях;
http://isg.cs.tcd.ie/spheretree/#algorithms
https://books.google.com/books?id=1-NfBElV97IC&pg=PA385&lpg=PA385#v=onepage&q&f=false