我正在開發一個模擬器,我需要能夠處理數千個潛在數百萬個更新每個循環的對象。 所有對象都需要具有稱爲(AI)的邏輯功能。 但取決於對象的位置決定了邏輯的詳細程度。例如:有效地迭代和存儲數以千計/數百萬個對象
[100個對象合作,以保持它的簡單]
- 所有對象都有一個位置(x,y)的
20
對象是500點遠離 從'的景點位置。50
對象是500點從20
對象(1000點的距離) 。30
對象內的興趣點100個 點。
現在說這是一個詳細的城市仿真的對象是虛擬的公民。 在下午6點,每個人都應該從工作中回家睡覺。
所以我們遍歷所有的公民,但我想讓他們做不同的事情。
- 更遠離物體(50)回到家中從他們的工作和睡覺 直到早晨。
- 較近的物體(20)從他們的工作回家,有一個 咬吃,然後睡覺,直到早晨。
- 最接近的對象(30)去從他們的工作 家,得一口一口吃,刷牙然後睡覺,直到早上 。
正如你可以看到他們是接近的興趣點的更詳細的邏輯變。
我正在努力研究什麼是最好和最有效的方式來遍歷所有對象將是。 這將是一個相對容易的手充滿對象,但因爲這需要處理至少500,000對象有效,我需要一些建議。
而且我不知道我是否應該通過所有對象的每一個循環迭代或者它會更好地迭代通過最近的物體的每一個循環,但每10個循環只有itereate通過漸行漸遠的對象?
與需要的對象與其它對象之間的互動接近他們的附加要求,我一直在想這樣做可能是組織他們在四叉樹的最佳方式,但我不知道。看起來好像四叉樹對於靜態內容更多,但我所處理的對象具有一個位置,並且需要移動到其他位置。 我是否正在思考的正確軌道?或者,還有更好的方法?
我也在C++中工作,如果有人認爲它的相關。
任何意見,將不勝感激。
注:
- 的興趣變化點定期,認爲它是一個攝像頭 視圖。
- 對象是動態創建和
因此,第一個數組最接近點,第二個數組接近第二個數組......然後在數組之間移動對象,取決於對象與點的距離如何?我忘記提及的唯一問題是感興趣的點會改變,所以會有很多數組交換。 – xyz 2013-02-14 21:06:49
@xyz號只需添加更多細節。 – 2013-02-14 21:25:39
對不起,我想知道。謝謝你爲我清理這個。 – xyz 2013-02-14 21:27:50