我正在開發2D遊戲,rts遊戲,有點像COC(Clash of Clans)。酷手機遊戲,呵呵。但是我遇到了路徑尋找的問題,像往常一樣,我通過手指觸摸將每個代理放置在屏幕的某個位置,然後執行路徑尋找算法,但是在某些情況下,這會導致性能損失,並且您的手機將會非常當你的代理人突然同時增加時,這是熱的手機遊戲(例如rts)的功能強大的設備上的任何尋路手段和策略?
實際上,無論什麼路徑查找我使用,例如*,Dijkstra算法,或一些特別的東西(也許最佳),這始終是時間comsuming上不太強大的移動CPU的過程在整個遊戲循環,尤其是大量的代理商。據我所知,像這樣的一些遊戲,最短路徑不是焦點(人們會關心路徑代理人是否故意走路?),而不是有效和自然的路徑尋找。所以我的想法提出了一些解決方案,可能不切實際。
解決方案1:使用一些更便宜的路徑尋找算法,可能是圖形相關或somethingelse,因爲最短路徑並不重要。
解決方案2:對ai模塊進行一些限制以處理代理進行尋路,例如間隔尋路算法調用的上限,也就是說,這些代理中只有一兩個代理進行了規劃,讓他們休息他們計劃在幾個遊戲框架之後。如你所知,它的缺點是顯而易見的。
以上是我想要的。希望你的遊戲開發人員能夠給我很好的想法,技巧,我會接受。非常感謝你。
編輯: 這裏是我的相關僞代碼,並過程cresspond我的遊戲邏輯。 //inside logic thread procedure putonagent if (need to put agent on world space) //do standard a* path-finding for an agent path_list=do_aStar_path_finding(attacktargetpos,startpos); and then enqueue path_list; ...... end
path_list的隊列最終被可視代理用於前進。任何提示?
問題太廣泛了。如果你發佈你的代碼,我們也許能夠查明一些優化,但你應該張貼上代碼審查:http://codereview.stackexchange.com – LearnCocos2D 2014-08-30 16:46:49