專利名稱:一種rpg游戲場景路徑的自動生成方法及裝置的制作方法
技術領域:
本發(fā)明涉及面向移動手持數(shù)字終端(如手機、PDA等)的游戲開發(fā)技術領域,具體涉及一種移動平臺上的二維/三維RPG游戲場景路徑自動生成方法及裝置。
背景技術:
近年來,移動手持設備(手機、PDA等)硬件技術獲得極大的提升,大多的設備的都支持Java游戲,他們的性能很接近第二代控制臺游戲機,已經(jīng)足夠運行一個小型的游戲。隨著移動手持設備性能的改善,使得游戲開發(fā)的熱點正慢慢的從PC平臺轉(zhuǎn)移到移動平臺上。
現(xiàn)在市面上的移動通訊領域的手機大多都支持J2ME(Java 2 Micro Edition)技術,即用于嵌入式系統(tǒng)的Java。J2ME由一個虛擬機KVM(K Virtual Machine)和一組API應用程序界面組成。KVM(K Virtual Machine)虛擬機本身僅僅需要40-80KB內(nèi)存、20-40KB動態(tài)內(nèi)存(堆),能夠運行在16位25MHz處理器上,這使得它可以運行于大多數(shù)的移動手持設備。而J2ME的API是專門針對屏幕、電能和內(nèi)存等資源有限的移動設備進行了優(yōu)化和定義而形成的,它針對移動電話等小型設備,專門提供給嵌入式電子設備使用。Sun的J2ME得到了眾多手機廠商的支持,是開發(fā)手機游戲以及游戲引擎的良好平臺。
目前基于PC平臺的眾多的游戲類型中,RPG游戲憑借其曲折離奇的劇情、各式各樣的任務、意想不到的結(jié)局吸引了絕大部分的玩家。從DOS的《仙劍奇?zhèn)b傳》到現(xiàn)在的《魔獸世界》,這些RPG游戲都大受玩家歡迎。隨著使用手機進行休閑娛樂的方式越來越受大眾的歡迎,基于移動平臺的RPG游戲這個市場具有很大的潛力。
在PRG游戲的開發(fā)中,游戲場景模型作為游戲引擎設計的重要組成部分,主要用于建立游戲中的一系列場景,包括生成游戲中的路徑,設定游戲場景中的景物、建筑物、地形等等。顯然其中的場景路徑最為重要,它決定了游戲角色行走的路線,并由此決定了路徑旁邊的建筑物、障礙,以及附近的景物等要素的位置、大小等屬性。當前游戲場景模型中的路徑大多采用人工預先設定的方式,一定程度上使得游戲的場景固化,缺乏新鮮感,在各種各樣的任務場景中,由于其路徑都是預先設定好的,所以玩家對其路徑熟悉之后也就對游戲失去感覺,游戲的耐玩性降低,玩家也自然提不起興趣再去玩。為了提高RPG游戲的耐玩性,必須加入一個能給玩家每次進入游戲都有新鮮感的因素,如果讓玩家能夠每次進入游戲都會出現(xiàn)不同的任務場景,則會給玩家一種全新的新鮮感,讓玩家覺得好似走進了一個新的場景,游戲的趣味性也因此而提高。因此在游戲中運用動態(tài)生成三維游戲隨機路徑的方法對于提高游戲的可玩性有很重要的作用。
路徑是指游戲場景中游戲角色可達的區(qū)域的集合。路徑生成算法就是在給定的地圖上,生成一片可達到區(qū)域,也就是生成由起點到終點的延伸路線。它可以是一條直線,也可以是一條錯綜復雜的曲線,更加可以是一片空曠、連通的區(qū)域。它可以是一棵樹形的分叉路線,也可以是處處相連的通路??傊窂降漠a(chǎn)生也伴隨著沿途的建筑、風景的產(chǎn)生。路徑生成算法的目的是為游戲玩家在游戲場景中提供行走的道路,在游戲場景中,凡是可以走到的地方,都是路徑的一部分,而地圖的其余區(qū)域就統(tǒng)稱為障礙,是玩家可以看到但是不能向前進的區(qū)域。
常用的路徑生產(chǎn)算法有1.直接加載法通過預先設定游戲場景中的地圖數(shù)據(jù),然后在游戲運行的時候直接載入和調(diào)用。這種方法是最直接的,路徑的生成速度也是最快的;另一方面,這種方法可以方便游戲設計者根據(jù)游戲的劇情設置各種各樣的場景路徑。其不足之處是游戲的場景在生成的過程中被固化了,不能再作任意的改動。
2.隨機加載法在直接加載的基礎上,對于某個游戲的場景,預先設置一系列的場景地圖數(shù)據(jù),在運行的時候采用隨機的方法,從一系列的地圖中選擇其中之一進行載入調(diào)用。這種方法速度也很快,而且在一定程度上,可以使得游戲在同一場景下的路徑并不固化,但是需要增加游戲數(shù)據(jù)的存儲空間來保存預先設置的一系列游戲場景。
3.孔挖法是一種隨機迷宮生成算法。它把游戲場景初始化為全部不可達到的區(qū)域,然后從中指定一個可達到點,即所謂的“孔”,從該點出發(fā),采用隨機的方式向四個方向進行擴展,在制定的區(qū)域里不斷擴展和延伸,直到不能再擴展為止。由于擴展的過程中沒有對路徑進行適當?shù)目刂?,所以生成的路徑具有很高的隨機性和不可預見性。而且在擴展的過程中,限定了不可與已生成的路徑相交,所以最后得到的路徑是樹型結(jié)構(gòu),沒有環(huán)路。
4.障礙生成法把游戲場景初始化為全部可達到區(qū)域,在空曠的地圖上,根據(jù)游戲的需要適當生成一定的障礙物,剩下沒有障礙的區(qū)域就形成路徑。由于它以障礙為中心去生成游戲的場景,所以場景中會有很多大塊的空曠區(qū)域。同樣,由于采用隨機的方法去生成游戲中的障礙物,所以游戲的路徑同樣具有很強的隨機性合不可預見性。由于場景中出現(xiàn)很多大塊的空曠區(qū)域,所以一般情況下不會在這種場景中討論環(huán)路的存在與否。
在PC機上的三維RPG游戲場景路徑自動生成的方法已經(jīng)發(fā)展得比較成熟,然而由于移動平臺本身的特點,這些動態(tài)路徑生產(chǎn)算法大多過于復雜,不適合用于運算能力有限的移動平臺,目前針對于移動平臺上的三維RPG游戲場景路徑自動生成的方法的研究很少,在專利檢索中對該技術的闡述并不多。移動設備主要有以下兩個缺點1、運算速度不快,存儲空間不大,軟硬體平臺差異性大,顯示屏幕較小等;2、面對移動平臺的RPG游戲設計剛起步,在場景路徑動態(tài)生成方面,深入研究的較少。而目前的面對移動設備的RPG游戲產(chǎn)品中,在場景路徑動態(tài)生成方面,一般采用靜態(tài)配置的技術。因為靜態(tài)配置場景技術具有技術簡單,占用空間少,裝載時間少,適合移動設備空間小,處理能力不強的特點。但是它也有場景路徑變化少,游戲的可玩性低,無法長時間的吸引玩家的缺點。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服現(xiàn)有技術的不足,提供一種RPG游戲場景路徑的自動生成方法,這種方法既能加強場景路徑的變化性、豐富游戲的場景內(nèi)容和變換能力、提高游戲娛樂性能,同時也能適應處理能力較低、內(nèi)存有限、屏幕顯示及輸入輸出受限制的移動手持設備的硬件環(huán)境。
本發(fā)明的另一目的是根據(jù)上述方法提供一種RPG游戲場景路徑的自動生成裝置。
實現(xiàn)發(fā)明目的一所采用的技術方案如下一種RPG游戲場景路徑的自動生成方法,該方法包括以下步驟
a.初使化三維場景模型把三維的場景模型進行簡化,直接把它映射為一個二維的地形,得到初使化后的地圖數(shù)據(jù);b.路徑規(guī)劃定義路徑中的各種屬性,包括地圖的大小,是否生成分支路徑和環(huán)路,路徑最大長度,以及路徑的數(shù)量等等;c.主路徑生成在初始化的地圖數(shù)據(jù)上,根據(jù)路徑規(guī)劃中的屬性規(guī)定,生成一條初始端點之間的路徑;d.分支路徑生成調(diào)用已經(jīng)生成的主路徑的數(shù)據(jù),生成基于主路徑的隨機分支路徑;e.環(huán)路生成根據(jù)前面生成的主路徑和分支路徑的相關數(shù)據(jù),加入隨機的環(huán)路;f.場景預處理預先把場景中的空地,障礙等數(shù)據(jù)讀入內(nèi)存,生成障礙數(shù)據(jù);g.障礙生成是通過場景預處理中生成的障礙數(shù)據(jù),然后在生成的地圖數(shù)據(jù)上面根據(jù)路徑的位置,制造相應的障礙。
所述步驟b.路徑規(guī)劃中通過對隨機的路徑作適當?shù)囊?guī)定,使得路徑在隨機生成的基礎上不失可預見性,更好的符合游戲的要求;同時通過對設計好的地圖數(shù)據(jù)進行分割和切塊,即把需要實現(xiàn)隨機性的局部地圖數(shù)據(jù)從整個地圖中切割出來,待路徑生成后,再還原到原地圖中,可以對預先設計好的游戲場景實現(xiàn)局部的隨機。
所述步驟c.主路徑生成的方法是先從端點集選取其中一個端點作為起點,然后開始一個隨機的搜索生成過程,從起點出發(fā),從四個方向隨機選擇一個方向作擴展,記錄下一個節(jié)點的位置,用鏈表的方式保存路徑,并標記該節(jié)點已經(jīng)擴展;當遇到死路的時候,采用回溯的思想回退到上一個可以產(chǎn)生岔路的節(jié)點,然后繼續(xù)隨機向其他可以擴展的方向擴展;當擴展到端點集中的其他端點(非起點)時,表明路徑已經(jīng)生成,算法到此結(jié)束;如果端點集中不止兩個端點,則要繼續(xù)生成其余的路徑,直到端點集中所有的端點都可達算法才結(jié)束。
所述步驟d.分支路徑生成的方法是在主路徑生成后,在地圖上可利用的空間里,利用之前的主路徑繼續(xù)生成更多的分支路徑,算法的結(jié)束條件不是找到所有的端點,而是擴展到死路為止,因此每調(diào)用一次則會生成一條分支路徑。
所述步驟g.障礙生成中對于已經(jīng)生成的路徑數(shù)據(jù),由地圖中的數(shù)據(jù)記錄可以看出,二維數(shù)組中記錄的都是路徑的數(shù)據(jù),要生成真正的路徑還需要作進一步的調(diào)整和變形,根據(jù)已有的路徑,在路徑的旁邊生成相應的障礙。
實現(xiàn)本發(fā)明目的二的技術方案是一種RPG游戲場景路徑的自動生成裝置,主要包括如下的模塊路徑規(guī)劃模塊,主路徑模塊,分支路徑模塊,環(huán)路模塊,障礙模塊和預處理模塊。
本裝置以地圖數(shù)據(jù)為核心,結(jié)合各個模塊,生成隨機的路徑數(shù)據(jù),其中路徑規(guī)劃模塊定義了路徑中的各種屬性,包括地圖的大小,是否生成分支路徑和環(huán)路,以及它們的數(shù)量等等,在一定程度上對隨機的路徑作出限制,使得路徑自隨機的基礎上不失可預見性;主路徑模塊在初始化的地圖數(shù)據(jù)上生成一條由端點之間的路徑,分支路徑模塊在主路徑的基礎上進行調(diào)用,生成基于主路徑的隨機分支路徑,最后環(huán)路模塊在前面兩個模塊生成的數(shù)據(jù)基礎上加入隨機的環(huán)路;障礙模塊則是通過預處理模塊預先生成障礙數(shù)據(jù),然后在生成的地圖數(shù)據(jù)上面根據(jù)路徑的位置,制造相應的障礙。
本發(fā)明優(yōu)點如下1.可動態(tài)生成不同的游戲場景路徑。
現(xiàn)今的RPG游戲,其各個任務場景都是預先設定好的,也就是說,場景中的各種路徑都預先定義好,這就使得這些場景的景觀、地圖每次都是固定的,玩家經(jīng)過若干次游戲后,自然就對這些場景了如指掌,使得游戲不再曲折離奇,RPG游戲其實就靠那些對玩家來說未知的因素一直吸引著玩家。利用本發(fā)明的自動路徑生成的方法,可以每次都動態(tài)的生成新的游戲場景,而不是每次都從預設的路徑文件中讀取同一個文件,使得游戲的場景更加的豐富,讓玩家每次進入游戲都會看到不同的場景,從而大大提高游戲的耐玩性。
2.路徑生成過程靈活性強。
動態(tài)的場景路徑生成方法作為常規(guī)的靜態(tài)場景路徑的一個補充將能大大的提高游戲的可玩性,本發(fā)明的動態(tài)場景路徑生成的方法使用路徑規(guī)劃模塊,可以實現(xiàn)對路徑的進行預先的設定,使得隨機生成的路徑能夠滿足游戲的需要,同時通過這個模塊還可以實現(xiàn)局部的地圖隨機路徑生成。在游戲的設計中可以充分利用這種靈活性,在不同的地圖或是一張地圖的不同部分實現(xiàn)靜態(tài)的和動態(tài)的路徑生成,從而設計出更加好玩的游戲。
3.適應移動設備硬件要求。
在傳統(tǒng)的基于PC平臺的游戲場景路徑生成方法中,如果要生成較多、較大的地圖的話,會需要很多的時間。這就對CPU的處理速度有較高的要求,但由于現(xiàn)在許多的移動設備,處理能力不強,內(nèi)存空間大小不等。如果路徑生成方法對處理能力要求太高的話將影響到該游戲在不同移動設備上的普及。而本發(fā)明的動態(tài)路徑生成算法,是在傳統(tǒng)PC平臺上的路徑生成算法的基礎上進行改造,在減少了計算量的同時實現(xiàn)游戲場景路徑的豐富。它對運行設備的處理速度要求不高,有助于游戲引擎在不同移動設備上的普及,適合運行于移動設備硬件。為了更有效、簡單地實現(xiàn)游戲場景的動態(tài)生成。本發(fā)明在地圖數(shù)據(jù)表示上面將三維的場景模型進行簡化,直接把他映射為一個二維的地形,用二維數(shù)組來表示一個地圖,簡化了算法的實現(xiàn)過程。為了環(huán)路模塊在實現(xiàn)時的簡單性,本發(fā)明在標記地圖上的路徑時并不是采用純粹的布爾值,而是采用上一節(jié)點加一的方法,在環(huán)路模塊中通過簡單的判斷相鄰的兩個塊的數(shù)字的差是否為1,就可以知道這兩個塊是否相鄰。
圖1是本發(fā)明裝置的結(jié)構(gòu)框圖;圖2是地圖數(shù)據(jù)示意圖;圖3是迷宮游戲采用本發(fā)明后在運行過程中的游戲場景路徑截圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進一步說明。
本發(fā)明的技術方案是通過比較常用的路徑生成算法,提出一種移動平臺上的二維/三維RPG游戲場景路徑自動生成方法,這種算法適合使用與資源受限的移動平臺。為了適應移動手持設備計算能力較低的特點,本發(fā)明把三維的場景模型進行簡化,直接把它映射為一個二維的地形,于是,可以把地圖表示為一個二維的路徑。這樣做有利于算法的實現(xiàn),真實的路徑可以通過在此基礎上加以調(diào)整和美化。二維矩陣相當于把地圖分成M×N個塊,除了邊緣的塊以外,每個塊都只有4個相鄰的塊,也就是說他只和相鄰的塊相連通,所謂的路徑,演變成地圖中的塊與塊之間的連通性,采用上一節(jié)點加一的方法進行標示是為了后面的環(huán)路生成。例如,塊(0,0)和塊(2,2)之間的一條路徑可以表示成圖2所示的方式。
本發(fā)明的RPG游戲場景路徑自動生成裝置主要包括如下的模塊路徑規(guī)劃模塊,主路徑模塊,分支路徑模塊,環(huán)路模塊,障礙模塊和預處理模塊,由圖1可以看出,各個算法模塊之間主要有如下的關系隨機路徑模型以地圖數(shù)據(jù)為核心,結(jié)合各個模塊,生成隨機的路徑數(shù)據(jù)。其中路徑規(guī)劃模塊定義了路徑中的各種屬性,包括地圖的大小,是否生成分支路徑和環(huán)路,以及它們的數(shù)量等等。在一定程度上對隨機的路徑作出限制,使得路徑自隨機的基礎上不失可預見性。主路徑模塊在初始化的地圖數(shù)據(jù)上生成一條由端點之間的路徑,分支路徑模塊在主路徑的基礎上進行調(diào)用,生成基于主路徑的隨機分支路徑,最后環(huán)路模塊在前面兩個模塊生成的數(shù)據(jù)基礎上加入隨機的環(huán)路。障礙模塊則是通過預處理模塊預先生成障礙數(shù)據(jù),然后在生成的地圖數(shù)據(jù)上面根據(jù)路徑的位置,制造相應的障礙。
各個算法模塊具體的功能如下a.路徑規(guī)劃模塊定義了路徑中的各種屬性,包括地圖的大小,是否生成分支路徑和環(huán)路,路徑最大長度,以及路徑的數(shù)量等等。它通過對隨機的路徑作適當?shù)囊?guī)定,使得路徑在隨機生成的基礎上不失可預見性,更好的符合游戲的要求。另一方面,利用路徑規(guī)劃模塊,可以對預先設計好的游戲場景實現(xiàn)局部的隨機。通過對設計好的地圖數(shù)據(jù)進行分割和切塊,即把需要實現(xiàn)隨機性的局部地圖數(shù)據(jù)從整個地圖中切割出來,待路徑生成后,再還原到原地圖中。用這種方法實現(xiàn)的局部隨機場景的效果。
b.主路徑模塊在初始化的地圖數(shù)據(jù)上,根據(jù)路徑規(guī)劃模塊的屬性規(guī)定,生成一條初始端點之間的路徑。它先從端點集選取其中一個端點作為起點,然后開始一個隨機的搜索生成過程,從起點出發(fā),從四個方向隨機選擇一個方向作擴展,記錄下一個節(jié)點的位置,用鏈表的方式保存路徑,并標記該節(jié)點已經(jīng)擴展。當遇到死路的時候,采用回溯的思想回退到上一個可以產(chǎn)生岔路的節(jié)點,然后繼續(xù)隨機向其他可以擴展的方向擴展。當擴展到端點集中的其他端點(非起點)時,表明路徑已經(jīng)生成,算法到此結(jié)束。如果端點集中不止兩個端點,則算法要繼續(xù)生成其余的路徑,直到端點集中所有的端點都可達算法才結(jié)束。
c.分支路徑模塊在主路徑模塊完成了主路徑的生產(chǎn)后進行調(diào)用,生成基于主路徑的隨機分支路徑。在主路徑生成后,在地圖上可利用的空間里,利用之前的主路徑繼續(xù)生成更多的分支路徑。算法的結(jié)束條件不是找到所有的端點,而是擴展到死路為止,因此每調(diào)用一次則會生成一條分支路徑。
d.環(huán)路模塊在前面兩個模塊生成的數(shù)據(jù)基礎上加入隨機的環(huán)路。游戲的場景中,通常除了基本的路徑以外,也有相互連通的環(huán)狀路徑,所以引入該模塊以實現(xiàn)環(huán)路的生成。
e.預處理模塊預先把場景中的空地,障礙等數(shù)據(jù)讀入內(nèi)存,便于障礙模塊進行對數(shù)據(jù)調(diào)用。
f.障礙模塊則是通過預處理模塊預先生成障礙數(shù)據(jù),然后在生成的地圖數(shù)據(jù)上面根據(jù)路徑的位置,制造相應的障礙。對于已經(jīng)生成的路徑數(shù)據(jù),由地圖中的數(shù)據(jù)記錄可以看出,二維數(shù)組中記錄的都是路徑的數(shù)據(jù),要生成真正的路徑還需要作進一步的調(diào)整和變形,根據(jù)已有的路徑,在路徑的旁邊生成相應的障礙。
下面結(jié)合是本發(fā)明的一個應用實例。
圖3是迷宮游戲采用本發(fā)明后在運行過程中的游戲場景路徑截圖。其中圖3(a)是在平視視角下,沒有分支路徑的場景;圖3(b)是在平視視角下,有分支路徑的場景;圖3(c)是在俯視視角下,只有主路徑時的場景;圖3(d)是在俯視視角下,由主路徑帶有兩條分支路徑時的場景;圖3(e)是在俯視視角下,在圖3(d)的基礎上還帶有兩條環(huán)路時的場景;圖3(f)是在俯視視角下,經(jīng)過多次調(diào)用分支路徑和環(huán)路模塊得到的結(jié)果。迷宮是一個RPG游戲里經(jīng)常要用到的場景。玩家在迷宮游戲中的目的就是盡量找到從入口通往出口的路線,但是往往由于游戲中的路徑會出現(xiàn)分叉,甚至有環(huán)路的可能,因此玩家要過關并不容易。以前的迷宮都需要設計者逐個房間地手工繪制,費時費力,而且一旦被玩家找出正確的線路,迷宮格局被泄漏,迷宮就不稱其為迷宮了,所以設計者們都絞盡腦汁把迷宮設計的盡量復雜,但再復雜的迷宮早晚也會被找到正確的路線,而且過于復雜難走的迷宮也使玩家感覺過于繁瑣,降低樂趣。好的迷宮游戲應該是能夠在游戲過程中動態(tài)生成,而且每次進入游戲的時候,都會出現(xiàn)不同的迷宮,這樣的迷宮才能增加游戲的樂趣,這里姑且稱為隨機迷宮。
隨機迷宮的產(chǎn)生算法盡量簡單,迷宮的儲存盡量節(jié)省內(nèi)存,迷宮只有在玩家走到時才會裝進內(nèi)存,當整個迷宮一段時間沒有被參考到可以被完全摧毀,下次再需要的時候會重新建立,又會產(chǎn)生一個新的迷宮。隨機迷宮只需規(guī)定一些預設的參數(shù)如迷宮的大小、障礙的描述、出入口描述、分叉路徑的數(shù)量以及環(huán)路的數(shù)量等等,就可以大大提高了游戲的可玩性。
從游戲的開始設定中,可以設置一系列的地圖參數(shù),在相應當隨機路徑模型中,將會調(diào)用相應的模塊函數(shù)生成定制定路徑。通過這些參數(shù)設置,我們可以在保證地圖隨機的情況下,對游戲的場景進行控制設定,使之滿足一定的條件??梢钥闯?,本發(fā)明的方法可以較好的實現(xiàn)三維場景的路徑動態(tài)生成,豐富游戲的變換,提高游戲的可玩性。
權(quán)利要求
1.一種RPG游戲場景路徑的自動生成方法,其特征在于,該方法包括以下步驟a.初始化三維場景模型把三維的場景模型進行簡化,直接把它映射為一個二維的地形,得到初始化后的地圖數(shù)據(jù);b.路徑規(guī)劃定義路徑中的各種屬性,包括地圖的大小,是否生成分支路徑和環(huán)路,路徑最大長度,以及路徑的數(shù)量等等;c.主路徑生成在初始化的地圖數(shù)據(jù)上,根據(jù)路徑規(guī)劃中的屬性規(guī)定,生成一條初始端點之間的路徑;d.分支路徑生成調(diào)用已經(jīng)生成的主路徑的數(shù)據(jù),生成基于主路徑的隨機分支路徑;e.環(huán)路生成根據(jù)前面生成的主路徑和分支路徑的相關數(shù)據(jù),加入隨機的環(huán)路;f.場景預處理預先把場景中的空地,障礙等數(shù)據(jù)讀入內(nèi)存,生成障礙數(shù)據(jù);g.障礙生成是通過場景預處理中生成的障礙數(shù)據(jù),然后在生成的地圖數(shù)據(jù)上面根據(jù)路徑的位置,制造相應的障礙。
2.根據(jù)權(quán)利要求1所述的RPG游戲場景路徑的自動生成方法,其特征是所述步驟b.路徑規(guī)劃中通過對隨機的路徑作適當?shù)囊?guī)定,使得路徑在隨機生成的基礎上具有可預見性,更好的符合游戲的要求;同時通過對設計好的地圖數(shù)據(jù)進行分割和切塊,即把需要實現(xiàn)隨機性的局部地圖數(shù)據(jù)從整個地圖中切割出來,待路徑生成后,再還原到原地圖中,可以對預先設計好的游戲場景實現(xiàn)局部的隨機。
3.根據(jù)權(quán)利要求1所述的RPG游戲場景路徑的自動生成方法,其特征是所述步驟c.主路徑生成的方法是先從端點集選取其中一個端點作為起點,然后開始一個隨機的搜索生成過程,從起點出發(fā),從四個方向隨機選擇一個方向作擴展,記錄下一個節(jié)點的位置,用鏈表的方式保存路徑,并標記該節(jié)點已經(jīng)擴展;當遇到死路的時候,采用回溯的思想回退到上一個可以產(chǎn)生岔路的節(jié)點,然后繼續(xù)隨機向其他可以擴展的方向擴展;當擴展到端點集中的其他端點(非起點)時,表明路徑已經(jīng)生成,算法到此結(jié)束;如果端點集中不止兩個端點,則要繼續(xù)生成其余的路徑,直到端點集中所有的端點都可達算法才結(jié)束。
4.根據(jù)權(quán)利要求1所述的RPG游戲場景路徑的自動生成方法,其特征是所述步驟d.分支路徑生成的方法是在主路徑生成后,在地圖上可利用的空間里,利用之前的主路徑繼續(xù)生成更多的分支路徑,算法的結(jié)束條件不是找到所有的端點,而是擴展到死路為止,因此每調(diào)用一次則會生成一條分支路徑。
5.根據(jù)權(quán)利要求1所述的RPG游戲場景路徑的自動生成方法,其特征是所述步驟g.障礙生成中對于已經(jīng)生成的路徑數(shù)據(jù),由地圖中的數(shù)據(jù)記錄可以看出,二維數(shù)組中記錄的都是路徑的數(shù)據(jù),要生成真正的路徑還需要作進一步的調(diào)整和變形,根據(jù)已有的路徑,在路徑的旁邊生成相應的障礙。
6.一種RPG游戲場景路徑的自動生成裝置,其特征是本裝置主要包括如下的模塊路徑規(guī)劃模塊,主路徑模塊,分支路徑模塊,環(huán)路模塊,障礙模塊和預處理模塊。
7.根據(jù)權(quán)利要求6所述的RPG游戲場景路徑的自動生成裝置,其特征是本裝置以地圖數(shù)據(jù)為核心,結(jié)合各個模塊,生成隨機的路徑數(shù)據(jù),其中路徑規(guī)劃模塊定義了路徑中的各種屬性,包括地圖的大小,是否生成分支路徑和環(huán)路,以及它們的數(shù)量等等,在一定程度上對隨機的路徑作出限制,使得路徑自隨機的基礎上不失可預見性;主路徑模塊在初始化的地圖數(shù)據(jù)上生成一條由端點之間的路徑,分支路徑模塊在主路徑的基礎上進行調(diào)用,生成基于主路徑的隨機分支路徑,最后環(huán)路模塊在前面兩個模塊生成的數(shù)據(jù)基礎上加入隨機的環(huán)路;障礙模塊則是通過預處理模塊預先生成障礙數(shù)據(jù),然后在生成的地圖數(shù)據(jù)上面根據(jù)路徑的位置,制造相應的障礙。
全文摘要
本發(fā)明公開一種移動平臺上的二維/三維RPG游戲場景路徑自動生成方法和裝置。本方法包括以下步驟初使化三維場景模型、路徑規(guī)劃、主路徑生成、分支路徑生成等步驟。本裝置包括以下模塊路徑規(guī)劃模塊、主路徑模塊、分支路徑模塊、環(huán)路模塊、障礙模塊和預處理模塊。本發(fā)明把三維的場景模型進行簡化,直接把它映射為一個二維的地形,于是,可以把地圖表示為一個二維的路徑。本發(fā)明方法既能加強場景路徑的變化性、豐富游戲的場景內(nèi)容和變換能力、提高游戲娛樂性能,同時也能適應處理能力較低、內(nèi)存有限、屏幕顯示及輸入輸出受限制的移動手持設備的硬件環(huán)境。
文檔編號G06T11/00GK1975747SQ20061012268
公開日2007年6月6日 申請日期2006年10月12日 優(yōu)先權(quán)日2006年10月12日
發(fā)明者王建民, 由芳, 鄭子斌, 徐一品 申請人:中山大學