Працюючи над своєю грою, я знаходжусь у точці, коли мені потрібно відстежувати всі підрозділи у світі, щоб я міг робити перевірки найближчих сусідів на бій. Це гра, схожа на RTS, із потенційно тисячами маленьких автоматизованих одиниць, що рухаються навколо.
Я розглядав KD-Дерева та Квадрат (особливо квадрати точок). Я все ще намагаюся дізнатися подробиці того, як вони працюють, але поки що «Квадратні точки» мають для мене найбільше сенсу. Однак у мене складається враження, що KD-Дерева швидше шукають, що важливо з кількістю очок, які у мене будуть на дереві.
З іншого боку, в моєму випадку я збираюся відстежувати величезну кількість одиниць, які завжди рухаються. Від кадру до кадру їх положення завжди будуть різними. Квадрати, мабуть, швидше відновляться, ніж KD-Дерева, але я не знаю, чи це застосовно, коли ви відновлюєте кожну точку на дереві.
Мені цікаво, чи було б краще в такому випадку просто брухтувати дерево кожен кадр і перебудувати його з нуля, а не намагатися перебалансувати кожну точку дерева? Якщо Quadtree швидше відновиться, чи це також означає, що його швидше будувати з нуля? Якщо це так, це може бути важливішим для продуктивності, ніж швидкість пошуку KD-Tree, залежно від того, скільки тягаря це створити дерево, але я не знаю ...