本發(fā)明涉及一種游戲場景的怪物分配方法和系統(tǒng),屬于計(jì)算機(jī)游戲開發(fā)領(lǐng)域。
背景技術(shù):
怪物系統(tǒng)在很多的游戲里都是一個(gè)重要的系統(tǒng)。很多游戲都脫離不了怪物系統(tǒng),如MMORPG(大型多人在線角色扮演游戲)、ACT(動(dòng)作游戲),包括策略游戲等,游戲策劃需要設(shè)計(jì)一個(gè)怪物系統(tǒng),整合到游戲的系統(tǒng)玩法,如PVE(Player VS Environment)、PVP(Player VS Player)玩法里,每個(gè)不場景,怪物的外形,怪物的數(shù)量、數(shù)值都不一樣,既讓玩愛家從與怪物的對抗中找到樂趣,又體驗(yàn)到豐富多彩怪物設(shè)計(jì)。因而,游戲公司設(shè)定者往往會(huì)花大量的時(shí)間在怪物系統(tǒng)的設(shè)計(jì)和布怪上面。傳統(tǒng)的游戲布方案多是去一個(gè)場景一個(gè)場景地進(jìn)行布怪。當(dāng)怪物進(jìn)行調(diào)整時(shí),如屬性發(fā)生變化,體型變化,或者刪掉時(shí),也引起怪物重新布置,這將會(huì)導(dǎo)至大量的返工去重新布怪,影響布怪者的工作效率,尤其是在后期,當(dāng)需要增刪修改怪物時(shí),面對上百個(gè)需要重新布怪的場景,這是巨大的工作量。另一方面,當(dāng)布完怪后,進(jìn)入游戲體驗(yàn)玩時(shí)發(fā)現(xiàn),這布怪的設(shè)計(jì),不是自己想要的,因而又需要推倒重新布置。在保證實(shí)現(xiàn)布怪策劃者的想法的同時(shí),為了提高布怪的效率。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本專利提出一種游戲場景的怪物分配方法和系統(tǒng),根據(jù)規(guī)則,可以快速生成以場景的怪物,同時(shí)方便進(jìn)行修改調(diào)整,以提高布怪的開發(fā)效率。。針對現(xiàn)有的技術(shù)缺陷,本專利收集及整理游戲布怪的需求和開發(fā)流程,提出新的布怪的方法和流程。
本發(fā)明的技術(shù)方案包括一種游戲場景的怪物分配方法,其特征在于,該系統(tǒng)包括:S1,獲取游戲指定場景區(qū)域,得到場景區(qū)域模型配置;S2,根據(jù)所述步驟S1得到的區(qū)域模型配置使用布怪編輯器對區(qū)域內(nèi)的怪物劃分進(jìn)行自定義配置,并生成指定區(qū)域的怪物配置數(shù)據(jù)表;S3,游戲程序運(yùn)行時(shí),加載所述步驟S2得到的怪物配置數(shù)據(jù)表對怪物進(jìn)行生成。
在一個(gè)優(yōu)選的實(shí)施方案中,所述的步驟S1還包括:S21,加載游戲程序指定場景區(qū)域,得到模型配置分布信息;S22,根據(jù)所述S21得到模型配置分布信息對場景區(qū)域劃分為多個(gè)類型。
在一個(gè)優(yōu)選的實(shí)施方案中,所述的步驟S22中的區(qū)域類型包括:矩形區(qū)域類型、扇形區(qū)域類型、圓形區(qū)域類型。
在一個(gè)優(yōu)選的實(shí)施方案中,所述的步驟S2還包括:使用數(shù)據(jù)表對怪物定義信息進(jìn)行分類存儲(chǔ);使用數(shù)據(jù)表對布怪規(guī)則進(jìn)行分類存儲(chǔ)。
在一個(gè)優(yōu)選的實(shí)施方案中,所述的布怪編輯器包括:加載模塊,用于對場景區(qū)域模型配置、怪物定義數(shù)據(jù)表、布怪規(guī)則數(shù)據(jù)表進(jìn)行加載;編輯模塊,用于提供編輯界面對怪物定義數(shù)據(jù)表、布怪規(guī)則數(shù)據(jù)表進(jìn)行自定義編輯;生成模塊,用于對已編輯的怪物定義數(shù)據(jù)表、布怪規(guī)則數(shù)據(jù)表生成游戲配置文件。
在一個(gè)優(yōu)選的實(shí)施方案中,所述的步驟S3中游戲程序執(zhí)行步驟包括:加載指定區(qū)域場景數(shù)據(jù);讀取指定區(qū)域?qū)?yīng)的布怪規(guī)則,在指定區(qū)域依照布怪規(guī)則生成對應(yīng)的怪物。
在一個(gè)優(yōu)選的實(shí)施方案中,該方法還包括:若識別為矩形區(qū)域,根據(jù)布怪規(guī)則,生成范圍在該矩形區(qū)域,其中矩形區(qū)域設(shè)計(jì)在布怪編輯器里,且需要輸入起點(diǎn)、寬高,則怪物會(huì)生成在場景區(qū)域的矩形區(qū)域;若識別為扇形區(qū)域,根據(jù)布怪規(guī)則,生成范圍在該扇形區(qū)域,其中扇形區(qū)域設(shè)計(jì)在布怪編輯器里,且需要輸入起點(diǎn)、朝向、半徑、弧度,則怪物會(huì)生成在場景區(qū)域的扇形區(qū)域;若識別為圓形區(qū)域,根據(jù)布怪規(guī)則,生成范轉(zhuǎn)在該圓形區(qū)域,其中圓形區(qū)域一般設(shè)計(jì)在布怪編輯器里,且需要輸入起點(diǎn)、半徑,則怪物會(huì)生成在場景區(qū)域的圓形區(qū)域。
在一個(gè)優(yōu)選的實(shí)施方案中,若所述步驟S2沒有生成布怪規(guī)則則:遍歷場景獲取場景大小數(shù)據(jù),進(jìn)一步,對遍歷步長進(jìn)行設(shè)定;選定場景區(qū)域的多個(gè)點(diǎn)作為聯(lián)通點(diǎn),進(jìn)一步,對場景區(qū)域的所有點(diǎn)進(jìn)行遍歷,其中聯(lián)通點(diǎn)用于兩點(diǎn)間進(jìn)行尋路查詢,如果路徑不為空,則說該兩點(diǎn)之間聯(lián)通,該點(diǎn)為有效點(diǎn),可以布怪;依次執(zhí)行垂直射線檢查、點(diǎn)的阻擋檢查、聯(lián)通檢查,若均檢查通過則記錄該點(diǎn)并在點(diǎn)的區(qū)域生成怪物,若其中任意一項(xiàng)檢查不通過則不生成怪物。
本發(fā)明的技術(shù)方案還包括上述任意方法的游戲場景的怪物分配系統(tǒng),其特征在于,該系統(tǒng)包括:場景區(qū)域劃分模塊,用于獲取游戲指定場景區(qū)域,得到場景區(qū)域模型配置;布怪規(guī)則生成模塊,用于根據(jù)所述場景區(qū)域劃分模塊得到的區(qū)域模型配置使用布怪編輯器對區(qū)域內(nèi)的怪物劃分進(jìn)行自定義配置,并生成指定區(qū)域的怪物配置數(shù)據(jù)表;游戲執(zhí)行模塊,游戲程序運(yùn)行時(shí),加載所述布怪規(guī)則生成模塊得到的怪物配置數(shù)據(jù)表對怪物進(jìn)行生成。
本發(fā)明的有益效果為:對于怪物設(shè)計(jì)者,可以在指定區(qū)域,使用指定的布怪規(guī)則。讓程序根據(jù)規(guī)則自動(dòng)布怪,同時(shí),設(shè)計(jì)者也保留了調(diào)的權(quán)限,既提高布怪的工作效率,同時(shí)可以靈活修改;隨機(jī)場景的運(yùn)行時(shí)根據(jù)規(guī)則布怪,可以提高怪物生成的隨機(jī)性,每次進(jìn)入場景,怪物都不同,提高游戲可玩性;方便拓展與修改。需要添加布怪規(guī)則時(shí),填表、修改表就可以。
附圖說明
圖1所示為根據(jù)本發(fā)明實(shí)施方式的總體流程圖;
圖2所示為根據(jù)本發(fā)明實(shí)施方式的無布怪規(guī)則生成流程圖;
圖3所示為根據(jù)本發(fā)明實(shí)施方式的場景布怪流程圖;
圖4所示為根據(jù)本發(fā)明實(shí)施方式的游戲場景怪物生成流程圖;
圖5所示為根據(jù)本發(fā)明實(shí)施方式的布怪定義表;
圖6所示為根據(jù)本發(fā)明實(shí)施方式的布怪規(guī)則表;
圖7所示為根據(jù)本發(fā)明實(shí)施方式的布怪配置表。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明的游戲場景的怪物分配方法和系統(tǒng)適用于游戲怪物擺放的開發(fā)。
圖1所示為根據(jù)本發(fā)明實(shí)施方式的總體流程圖。及實(shí)施具體包括:
分析場景地形特點(diǎn),包括獲取和分類場景數(shù)據(jù);
劃分場景數(shù)據(jù);
使用布怪編輯器對布怪規(guī)則進(jìn)行自定義編輯;
生成怪物數(shù)據(jù)表;
調(diào)整怪物屬性,通常為再次對布怪規(guī)則進(jìn)行編輯時(shí)執(zhí)行;
生成布怪配置,其形式為數(shù)據(jù)表形式;
在游戲程序中依照布怪規(guī)則生成怪物。
圖2所示為根據(jù)本發(fā)明實(shí)施方式的無布怪規(guī)則生成流程圖。怪可能生成在場景允許的任意區(qū)域。這種時(shí)不需要設(shè)計(jì)擺區(qū)域或刷區(qū)域,程序可以逐格子描述,根據(jù)該點(diǎn)與場景其它點(diǎn)是否連通,進(jìn)行判斷該點(diǎn)是否可以擺怪。如果有布怪規(guī)則則根據(jù)區(qū)域形狀進(jìn)行對應(yīng)的生成
矩形區(qū)域,怪根據(jù)規(guī)則,生成范圍在該矩形區(qū)域。矩形區(qū)域一般設(shè)計(jì)在布怪編輯器里,布怪設(shè)計(jì)者輸入: 起點(diǎn)(x,y),寬高(w,h),則可場景相應(yīng)的區(qū)域。
扇形區(qū)域,怪根據(jù)規(guī)則,生成范圍在該扇形區(qū)域。扇形區(qū)域一般設(shè)計(jì)在布怪編輯器里,布怪設(shè)計(jì)者輸入: 起點(diǎn)(x,y),朝向,半徑,弧度,則可場景相應(yīng)的區(qū)域。
圓形區(qū)域,怪根據(jù)規(guī)則,生成范轉(zhuǎn)在該圓形區(qū)域。圓形區(qū)域一般設(shè)計(jì)在布怪編輯器里,布怪設(shè)計(jì)者輸入: 起點(diǎn)(x,y),半徑,則可場景相應(yīng)的區(qū)域。
最后,導(dǎo)出成一個(gè)場景對應(yīng)的區(qū)域配置:如場景001,導(dǎo)出的配置文件。
圖3所示為根據(jù)本發(fā)明實(shí)施方式的場景布怪流程圖。其實(shí)施流程為:
場景布怪開始;
讀取布景區(qū)域;
讀取布怪規(guī)則;
根據(jù)布怪規(guī)則在指定區(qū)域加載對應(yīng)數(shù)量的怪物直到要求;
生成怪物;
并在場景中進(jìn)行顯示;
如果需要手動(dòng)時(shí),則可以進(jìn)行手動(dòng)調(diào)整,調(diào)整時(shí),動(dòng)態(tài)更新數(shù)據(jù)表布怪規(guī)則數(shù)據(jù);
生成布怪規(guī)則配置表。
圖4所示為根據(jù)本發(fā)明實(shí)施方式的游戲場景怪物生成流程圖。其實(shí)施流程為:
進(jìn)入游戲場景;
讀取布怪規(guī)則;
生成怪物。
當(dāng)然,也可以不提前生成布怪的配置數(shù)據(jù),直接在游戲運(yùn)行時(shí),動(dòng)態(tài)生成,這樣可以保證每次進(jìn)入場景怪物位置、種類等都不一樣,增加游戲的隨機(jī)性, 同時(shí),減少布怪者的工作量,這種布怪方式在隨機(jī)的場景或迷宮非常適用。
本發(fā)明進(jìn)一步高開了布怪生成規(guī)則,主要是將規(guī)則,用表管理起來。當(dāng)我們需要調(diào)整規(guī)則時(shí),我們只需要改表,即可以做到場景的怪布置出來是根據(jù)根生成,完成不一樣。考慮怪物的數(shù)值,可能布怪物需要修改。
圖5為怪物定義表。 里面記錄了所有的怪,并且對怪物的分類:如種族分類,等級分類,是否肉盾,是否ADC、是否精英怪,是否關(guān)聯(lián)(配合)怪及其關(guān)聯(lián)的怪有哪些,參考如圖5。
其中:
typeid:指的是怪物的id。
Desc: 怪物的描述信息。
是否精英:怪物設(shè)計(jì)者用此進(jìn)行分類。
是否關(guān)聯(lián)怪:是指當(dāng)要布這個(gè)怪,需要同時(shí)布關(guān)聯(lián)的怪。
關(guān)聯(lián)怪的id: 需要布的怪id以及數(shù)據(jù)。格式:怪物的id=數(shù)量。如圖中的:7=3;
特殊的出場方式:副本,當(dāng)玩家第一次遇到該怪,該怪的出現(xiàn)的方式。
怪物設(shè)計(jì)者可以根據(jù)游戲的需要增加、刪除列,以便控制怪的分類、行為。
圖6為布怪規(guī)則表。里面記錄了布怪的規(guī)則。設(shè)計(jì)可以增加減少布怪規(guī)則。不同的游戲,不同的設(shè)計(jì)者,其布怪規(guī)則也不同。本文只列舉一些常見的布怪規(guī)則。
規(guī)則1 : 區(qū)域按密度生成怪物A。如區(qū)域1,該面積有25%是怪物A。計(jì)算時(shí)即:布怪點(diǎn)/有效點(diǎn) = 25%。從區(qū)域1里隨機(jī)取出25%有效點(diǎn),布置上怪物即可。
規(guī)則2 : 特別點(diǎn)布置特別怪。即往SpecialPointList 里布置相應(yīng)的boss或者怪物。以及怪的出場景方式:跳、鉆、爬等出場。
規(guī)則3 : 從怪物列表里,按規(guī)則如等級,種族等分類,隨機(jī)選擇怪進(jìn)行布置。
規(guī)則4 : 約束規(guī)則:當(dāng)布置了怪B時(shí),需要布置怪C進(jìn)行配合。
規(guī)則5 : 按比例布怪,如D怪占20%, E怪占30%等。
規(guī)則6 : 按某一隊(duì)形布怪。如豎著一排;橫著一排;方陣等。
其中:ruleId:指的是布怪規(guī)則id.
Desc:指用的布怪規(guī)則的大類。
密度:密度=布怪點(diǎn)/可布怪總點(diǎn)。
怪物編號:一個(gè)列表類型的數(shù)據(jù)結(jié)構(gòu),當(dāng)布怪時(shí),隨機(jī)從列表里取怪的id。
怪物的比例:填寫格式:怪物的id=比例百分比。如:6=30;表示布置怪6的概率是30%.
形狀: 如有特殊形狀,則按特殊形狀進(jìn)行布置。
間隔:是指每多少個(gè)格子,就布一個(gè)怪。怪物類型從怪物編號列表里取。
圖7為游戲所讀取的布怪配置表。場景表里記錄區(qū)域信息,區(qū)域信息再對應(yīng)布怪規(guī)則。
以上所述,只是本發(fā)明的較佳實(shí)施例而已,本發(fā)明并不局限于上述實(shí)施方式,只要其以相同的手段達(dá)到本發(fā)明的技術(shù)效果,都應(yīng)屬于本發(fā)明的保護(hù)范圍。在本發(fā)明的保護(hù)范圍內(nèi)其技術(shù)方案和/或?qū)嵤┓绞娇梢杂懈鞣N不同的修改和變化。