基于Unity的MMORPG移動尋路系統(tǒng)的設(shè)計與實現(xiàn)
發(fā)布時間:2021-01-30 18:30
在MMORPG中,移動與尋路功能已成為游戲的核心功能之一,玩家能夠控制人物在游戲世界中自由移動,體驗虛擬世界的沉浸感。一些游戲會基于移動系統(tǒng)添加特殊的玩法,這就要求移動系統(tǒng)具有良好的可擴展性。移動與尋路的動態(tài)性又要求系統(tǒng)能夠快速完成計算,具備良好性能。因此,論文針對一個滿足易用性、可擴展性、高性能等需求的移動尋路系統(tǒng)進行分析與設(shè)計。系統(tǒng)基于Unity引擎進行開發(fā),而Unity引擎內(nèi)置的尋路系統(tǒng)存在一定缺陷。引擎所使用的A*算法效率并不夠高,另一方面,尋路模塊又難以擴展。為了解決這些問題,系統(tǒng)首先將地圖離散化為網(wǎng)格地圖進行可移動區(qū)域的標記,生成行走層,并將地圖間傳送點作為尋路節(jié)點從而用帶權(quán)有向圖表示世界地圖。接著結(jié)合使用Jump Point Search算法與A*算法來提高路徑搜索效率。系統(tǒng)通過采樣地圖高度與利用插值獲取高度的方法避免了使用物理引擎實時計算行走高度,提高了移動效率。此外,為了提高開發(fā)效率,系統(tǒng)提供了可視化編輯地圖行走數(shù)據(jù)的工具。在網(wǎng)絡(luò)移動狀態(tài)同步方面,為了應(yīng)對網(wǎng)絡(luò)延遲的問題,使玩家的移動操作能夠及時得到反饋,系統(tǒng)采用客戶端先行、服務(wù)器修正的方式進行狀態(tài)同步。論文使用軟件工...
【文章來源】:南京大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:71 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖2.4對稱路徑示例??
?么么乙7??圖2.4對稱路徑示例??2.2.2?優(yōu)化?A+??在基于網(wǎng)格的八方向?qū)ぢ返貓D中,用i表示八個方向之一。當從X開始沿著i??移動k個單元可以到達y時,可以表示為y?=?x?+?kd。當^為對角線移動時,將??與i呈45度角的兩個直線移動表示為^和石。路徑Ti?=<?,…,>表示從化??到的無環(huán)順序移動,rt\x表示節(jié)點x不在路徑中。len函數(shù)和dist函數(shù)分別表示??路徑的長度與兩個節(jié)點之間的距離,如len(Ti)或distO^nfc)。??圖2.5、圖2.6引用自Harabor的文章[Harabor?et?al.,2011]。如圖2.5⑷所示,??節(jié)點X的父節(jié)點為p(x),當擴展X時,去考慮灰色的節(jié)點是沒有意義的,因為從??P(X)到達這些節(jié)點的路徑在不包含X時更短
(a)?(b)??圖2.5直線與對角線跳躍點示例。虛線指向死路,而實線指向后繼節(jié)點??針對節(jié)點x的鄰居,裁剪的目的是識別其中的劣性節(jié)點,可以通過比較兩條??路徑的長度來判斷是否需要裁剪:從p(X)幵始訪問X到n結(jié)束的路徑TT,和從p(x)??不經(jīng)過X到n結(jié)束的路徑TI。此外,TT和II中的節(jié)點都屬于neighbours(x)。從??p(x)到x是直線移動和對角線移動的兩種情況需要不同的處理,如果x是起點,??則不進行裁剪。??1.
【參考文獻】:
期刊論文
[1]網(wǎng)絡(luò)游戲中移動同步問題的解決方案[J]. 梁白鷗,陳雷霆. 計算機應(yīng)用研究. 2007(05)
本文編號:3009380
【文章來源】:南京大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:71 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖2.4對稱路徑示例??
?么么乙7??圖2.4對稱路徑示例??2.2.2?優(yōu)化?A+??在基于網(wǎng)格的八方向?qū)ぢ返貓D中,用i表示八個方向之一。當從X開始沿著i??移動k個單元可以到達y時,可以表示為y?=?x?+?kd。當^為對角線移動時,將??與i呈45度角的兩個直線移動表示為^和石。路徑Ti?=<?,…,>表示從化??到的無環(huán)順序移動,rt\x表示節(jié)點x不在路徑中。len函數(shù)和dist函數(shù)分別表示??路徑的長度與兩個節(jié)點之間的距離,如len(Ti)或distO^nfc)。??圖2.5、圖2.6引用自Harabor的文章[Harabor?et?al.,2011]。如圖2.5⑷所示,??節(jié)點X的父節(jié)點為p(x),當擴展X時,去考慮灰色的節(jié)點是沒有意義的,因為從??P(X)到達這些節(jié)點的路徑在不包含X時更短
(a)?(b)??圖2.5直線與對角線跳躍點示例。虛線指向死路,而實線指向后繼節(jié)點??針對節(jié)點x的鄰居,裁剪的目的是識別其中的劣性節(jié)點,可以通過比較兩條??路徑的長度來判斷是否需要裁剪:從p(X)幵始訪問X到n結(jié)束的路徑TT,和從p(x)??不經(jīng)過X到n結(jié)束的路徑TI。此外,TT和II中的節(jié)點都屬于neighbours(x)。從??p(x)到x是直線移動和對角線移動的兩種情況需要不同的處理,如果x是起點,??則不進行裁剪。??1.
【參考文獻】:
期刊論文
[1]網(wǎng)絡(luò)游戲中移動同步問題的解決方案[J]. 梁白鷗,陳雷霆. 計算機應(yīng)用研究. 2007(05)
本文編號:3009380
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3009380.html
最近更新
教材專著