999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺淡RPG游戲開發(fā)的關(guān)鍵技術(shù)

2011-04-16 09:15:10于水華
電腦與電信 2011年2期
關(guān)鍵詞:引擎游戲系統(tǒng)

于水華

(上海對(duì)外貿(mào)易學(xué)院,上海201620)

1.引言

電腦游戲開發(fā)是故事、藝術(shù)、音樂、聲音效果、動(dòng)畫及程序設(shè)計(jì)技術(shù)的有機(jī)結(jié)合,以產(chǎn)生一種動(dòng)態(tài)的、具有很強(qiáng)交互性的電子娛樂形式。RPG游戲(角色扮演游戲),即游戲的形式是通過故事劇情牽引來使玩家融入一個(gè)主角所存在的虛擬世界。

2.RPG游戲開發(fā)的關(guān)鍵技術(shù)

2.1 RPG游戲設(shè)計(jì)概述

RPG游戲即為角色扮演游戲,它其實(shí)是一種由游戲玩家自己扮演角色的游戲。可以用一個(gè)三維坐標(biāo)系統(tǒng)來定位RPG游戲,所有類型的RPG游戲位于這個(gè)坐標(biāo)系所界定的三維空間中。如圖1所示。

圖1 RPG游戲的三維空間

剝?nèi)ジ鞣NRPG游戲的外部特性,我們可以看到RPG游戲的普適模型。如圖2為RPG游戲的拓?fù)浣Y(jié)構(gòu)圖。這是一種單線發(fā)展的RPG游戲。它由兩部分構(gòu)成:一部分是主控部分,也就是交互部分。當(dāng)主控部分起作用時(shí),游戲的操縱權(quán)被授予了游戲者,游戲者可以充分利用游戲所賦予的交互手段進(jìn)行輸入;另一部分是設(shè)定的被動(dòng)的劇情,由線性排列的一連串事件組成。

圖2 RPG游戲的拓?fù)浣Y(jié)構(gòu)

對(duì)于一款RPG游戲的設(shè)計(jì)要包括以下一些要素:場(chǎng)景、角色、道具、事件、對(duì)白、音效與音樂、界面、規(guī)則、命名。對(duì)應(yīng)于各個(gè)要素,一個(gè)完整的角色扮演游戲的制作從大的分工來說可以分為:策劃、程序設(shè)計(jì)、美工、音樂制作以及項(xiàng)目管理,后期的測(cè)試等。

2.2 游戲策劃與架構(gòu)

在設(shè)計(jì)一款游戲時(shí),在游戲初始階段就要考慮好所要設(shè)計(jì)游戲的風(fēng)格、情節(jié)、人物、環(huán)境和主題。流程如下:首先地圖設(shè)計(jì)者需要設(shè)計(jì)出地圖的大小、樣式,交由原畫去畫出原版,然后進(jìn)行2D、3D制作。2D和3D有可能根據(jù)地圖的需要制作物件、圖素、遮罩、特效等,交給策劃用地圖編輯器進(jìn)行制作。如圖3是用相應(yīng)的地圖編輯器標(biāo)記出掩碼,形成不可達(dá)區(qū)域。

圖3 地圖編輯器中的障礙

游戲策劃要做以下幾件事情,首先,地圖與場(chǎng)景設(shè)計(jì)。場(chǎng)景設(shè)計(jì)之初需要根據(jù)游戲劇情設(shè)定風(fēng)格和氛圍。場(chǎng)景的大小需要根據(jù)游戲中人物移動(dòng)的距離來確定。在一個(gè)游戲中,一般地圖的大小是固定的,要么全屏,要么固定大小,因?yàn)楦淖兇翱诖笮?huì)給顯示帶來很多麻煩。

然后,地圖拼接。地圖的拼接時(shí)需要注意,按照示意圖來進(jìn)行自由發(fā)揮。但同一屏幕最好不要出現(xiàn)兩個(gè)相同的物體。山與水或者小路不能筆直或者直角型的彎曲,盡量多做和諧的曲折,盡量圓滑。地圖拼接之后,遇到懸崖、水面等地方掩碼要多打一些,防止人物影子落在空處。太窄的地方,干脆全部打上掩碼,防止人物被卡在上面,如圖3所示,海面用紅點(diǎn)打上掩碼,是不可達(dá)區(qū)域。

最后,地圖設(shè)置。地圖的設(shè)置上,例如NPC、地圖之間的連接等都需要去設(shè)置。連接其它地圖的時(shí)候要注意方向,例如往上走的出口,結(jié)果來到了下一張地圖的頂部就感覺很怪異。地圖的連接口要放在明顯的路,或者凹進(jìn)去的地方,這樣容易引導(dǎo)游戲者找到出口。NPC放置盡量放在有參照物的地圖上,例如一棵大樹旁,一個(gè)亭子里,這樣玩家容易找到NPC并記住這個(gè)位置。

游戲中世界的構(gòu)造除了地圖以外,還牽涉到人物、怪物的分布。筆者在場(chǎng)景設(shè)置時(shí)將NPC設(shè)置到了地圖的特殊位置上,如兩個(gè)階梯的交界處、某個(gè)平原上等。一般在設(shè)計(jì)角色位置的時(shí)候,要考慮到根據(jù)實(shí)際情況來分布設(shè)計(jì)。

2.3 圖形圖像處理

筆者所指的圖形圖像處理,一是指游戲中所需圖像素材單元的處理,二是素材單元組成我們所看到的場(chǎng)景畫面的處理。

游戲畫面可以說是由一個(gè)一個(gè)的場(chǎng)景組成的,每個(gè)場(chǎng)景都有一些圖形圖像,如背景圖、角色圖、道具圖,那么在游戲中就有大量的特殊的圖片要獲得并處理。在RPG游戲里,場(chǎng)景的構(gòu)成,是圖塊排列順序的記錄。首先制定一個(gè)場(chǎng)景構(gòu)成文件的格式,這里又用到了相應(yīng)的場(chǎng)景編輯器,見圖4中場(chǎng)景編輯器界面,它用來設(shè)置地圖上各個(gè)NPC的位置、添加道具列表、添加出口列表等工作,在這個(gè)文件里記錄構(gòu)成場(chǎng)景所需要的圖塊的排列順序,因?yàn)槲覀円呀?jīng)為每個(gè)圖塊建立了索引,所以只需要記錄這些索引就可以了。一個(gè)場(chǎng)景的構(gòu)成,是分成幾層來完成的:地面,建筑和植物,家具擺設(shè)和在場(chǎng)景中活動(dòng)的人物或者物體,按照一定的順序把它們依次顯示到屏幕上,就形成了一個(gè)豐富多彩的場(chǎng)景。

圖4 場(chǎng)景編輯器

2.4 游戲引擎的構(gòu)建

游戲引擎是一個(gè)為運(yùn)行某一類游戲的機(jī)器設(shè)計(jì)的能夠被機(jī)器識(shí)別的代碼(指令)集合。它像一個(gè)發(fā)動(dòng)機(jī),控制著游戲的運(yùn)行。一個(gè)游戲作品可以分為游戲引擎和游戲資源兩大部分。游戲資源包括圖像、聲音、動(dòng)畫等部分,列一個(gè)公式就是:游戲=引擎(程序代碼)+資源(圖像、聲音、動(dòng)畫等)。游戲引擎則是按游戲設(shè)計(jì)的要求按順序調(diào)用這些資源。

圖5 總體結(jié)構(gòu)圖

(1)開發(fā)工具

由于Windows操作系統(tǒng)的普及及其強(qiáng)大的多媒體功能,越來越多的游戲支持Windows操作系統(tǒng)。由于VC++是微軟的產(chǎn)品,用它來編寫Windows程序有強(qiáng)大的程序接口和豐富的開發(fā)資源的支持,加之VC嚴(yán)謹(jǐn)?shù)膬?nèi)存管理、在堆棧上良好的分配處理、生成代碼的體積小、穩(wěn)定性高的優(yōu)點(diǎn),所以VC++就成為目前游戲的主流開發(fā)工具。

DirectX(簡(jiǎn)稱:DX)是微軟推出的一套基于Windows系統(tǒng)的多媒體應(yīng)用程式接口,是VC的一個(gè)擴(kuò)充游戲開發(fā)包,主要用于游戲設(shè)計(jì)時(shí)直接操作硬件設(shè)備,可加快游戲運(yùn)行速度。在開發(fā)中,DX分為兩個(gè)部分,一個(gè)是運(yùn)行庫,通過DX編譯出來的程式必須要有運(yùn)行庫的支持,另外一個(gè)是開發(fā)庫,也就是常說的SDK,這部分是在編譯DX程序中是必需的。筆者所開發(fā)的小游戲DEMO使用GAF(Game Application Framework游戲應(yīng)用程式框架)開發(fā)包來進(jìn)行設(shè)計(jì),GAF開發(fā)包是由“第二人生游戲工作室”開發(fā)的,它是對(duì)DirectX包裝后的類庫,它把游戲設(shè)計(jì)中經(jīng)常用到的DirectX功能包裝起來,能代替DirectX用于游戲設(shè)計(jì)中。

游戲引擎是游戲的核心部分,因此它必須能夠提供游戲開發(fā)所需要的大部分接口。游戲開發(fā)人員為了開發(fā)一款游戲,不會(huì)完完全全從最底層做起,因?yàn)橛螒蜷_發(fā)也是一種軟件開發(fā),類似的游戲之間有著很多共同的地方,把這些共同的地方抽取出來作為可重用的部分以供日后開發(fā)游戲之用,可以大大提高游戲的開發(fā)速度和游戲的穩(wěn)定性能。

(2)A*算法

在許多游戲中要用鼠標(biāo)控制人物運(yùn)動(dòng),而且讓人物從目前的位置走到目標(biāo)位置應(yīng)該走最短的路徑。這就要用到最短路徑搜索算法即A*算法了。

A*算法實(shí)際是一種啟發(fā)式搜索,所謂啟發(fā)式搜索,就是利用一個(gè)估價(jià)函數(shù)評(píng)估每次的決策的價(jià)值,決定先嘗試哪一種方案。如果一個(gè)估價(jià)函數(shù)可以找出最短的路徑,我們稱之為可采納性。A*算法是一個(gè)可采納的最好優(yōu)先算法。A*算法的估價(jià)函數(shù)可表示為:

這里,f(n)是節(jié)點(diǎn)n的估價(jià)函數(shù),g(n)是起點(diǎn)到終點(diǎn)的最短路徑值,h(n)是n到目標(biāo)的最斷路經(jīng)的啟發(fā)值。

(3)模塊組成

游戲引擎要提供游戲開發(fā)所需要的大部分接口。它最基本的模塊有以下三個(gè):消息處理系統(tǒng)、場(chǎng)景顯示(及行走)系統(tǒng)、進(jìn)程系統(tǒng)。當(dāng)然,不同的游戲引擎,根據(jù)其所實(shí)現(xiàn)的功能、游戲的規(guī)模等的不同,它的模塊也有所不同。筆者所使用的引擎系統(tǒng)主要由這三個(gè)模塊組成,除了這三個(gè)模塊外,還有腳本處理模塊、考試模塊等。

消息處理系統(tǒng)是游戲的核心部分。游戲用到的消息處理系統(tǒng)先等待消息,不斷檢測(cè)游戲中要處理的消息,然后根據(jù)收到的消息轉(zhuǎn)到相應(yīng)的函數(shù)進(jìn)行處理。比如:主角碰到敵人后,我們就讓程序產(chǎn)生“打斗消息”,消息處理系統(tǒng)收到這個(gè)消息后就會(huì)馬上轉(zhuǎn)到打斗模塊中去。場(chǎng)景顯示系統(tǒng)是RPG要素重要部件之一。它根據(jù)一定的次序控制背景、角色、道具、對(duì)白等要素添加到場(chǎng)景的順序,它承擔(dān)整個(gè)游戲框架的場(chǎng)景狀態(tài)的操作、控制。作為RPG游戲,其所有事件的發(fā)生幾乎都是和場(chǎng)景有關(guān),例如:不同的地方會(huì)碰到不同的敵人、與不同的人對(duì)話得知不同的事情等。進(jìn)程系統(tǒng)負(fù)責(zé)游戲的初始化,包括窗口圖標(biāo)、窗口寬度、窗口高度、窗口標(biāo)題、窗口風(fēng)格等的設(shè)置。游戲結(jié)束時(shí)負(fù)責(zé)釋放程序各種資源。進(jìn)程控制系統(tǒng)也控制游戲主控循環(huán)中的狀態(tài)轉(zhuǎn)換,它同時(shí)與消息處理系統(tǒng)和場(chǎng)景顯示系統(tǒng)進(jìn)行消息傳遞和轉(zhuǎn)化。

3.系統(tǒng)技術(shù)實(shí)現(xiàn)的前期準(zhǔn)備

3.1 游戲劇本設(shè)計(jì)

角色扮演游戲就像小說一樣,缺少不了劇情,玩家跟著劇情的進(jìn)展來領(lǐng)略游戲的風(fēng)采。在劇本的設(shè)計(jì)前,設(shè)計(jì)者已經(jīng)有了游戲故事的構(gòu)思。劇本的設(shè)計(jì)可以從劇情的框架開始著手。列出準(zhǔn)備出場(chǎng)的人物名單、準(zhǔn)備構(gòu)成游戲劇情的幾個(gè)重要事件和需要涉及到的地圖。這樣游戲基本上已經(jīng)有了一個(gè)簡(jiǎn)單的故事框架。接下來用上面的素材,把構(gòu)思還比較單薄的主線故事點(diǎn)和人物竄接起來。然后把出場(chǎng)人物,場(chǎng)景需求做成文檔,進(jìn)入一個(gè)很重要的中間步驟——游戲劇本制作。

3.2 游戲腳本設(shè)計(jì)

游戲引擎并不關(guān)心游戲內(nèi)容具體是什么,它只是負(fù)責(zé)將描述游戲內(nèi)容的數(shù)據(jù)讀取出來,然后“扔”到某個(gè)地方就行了,所以需要以某種方式將游戲內(nèi)容交給外部文件來加以處理。這樣一來,就只需要編寫一段短小而又緊湊的代碼并在某一段時(shí)間將所有這些物體描述由硬盤加載進(jìn)來就行了,這些代碼可稱之為腳本。由于RPG游戲更適合使用腳本,腳本的設(shè)計(jì)是本游戲不可缺少的部分。

4.小結(jié)

RPG游戲的開發(fā)涉及的知識(shí)還很多,本文只根據(jù)筆者開發(fā)的RPG游戲所涉及的關(guān)鍵技術(shù)進(jìn)行了闡述。系統(tǒng)開發(fā)中有以下兩點(diǎn)體會(huì),一是在游戲引擎的選擇上,由于游戲引擎框架有很多,需要對(duì)各種框架加以篩選,選擇適合項(xiàng)目需求、規(guī)模和未來需求發(fā)展方向的框架;二是游戲腳本的運(yùn)用上,考慮到系統(tǒng)會(huì)有變動(dòng)的部分,游戲的腳本語言為其擴(kuò)展和修改提供了很大的空間。

[1]坂本千尋著,博碩文化譯.Visual C++專業(yè)游戲程序設(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2004.

[2]葉展,葉丁.游戲的設(shè)計(jì)與開發(fā)[M].北京:人民交通出版社,2003.

[3]尚俊杰等.“輕游戲”:教育游戲的希望和未來[J].電化教育研究,2005,(1).

[4]榮欽科技.Visual C++游戲設(shè)計(jì)[M].北京:科海電子出版社,2003.

[5]坂本千尋.Visual C++角色扮演游戲程序設(shè)計(jì)[M].博碩文化譯.北京:中國(guó)鐵道出版社,2004.

[6]肖永亮.Visual C++游戲編程基礎(chǔ)[M].北京:電子工業(yè)出版社,2006.

猜你喜歡
引擎游戲系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數(shù)獨(dú)游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 午夜人性色福利无码视频在线观看| 亚洲最新网址| 欧美高清三区| 丰满少妇αⅴ无码区| 成·人免费午夜无码视频在线观看 | 亚洲不卡av中文在线| 中字无码av在线电影| 欧美成人免费午夜全| 精品在线免费播放| 国产污视频在线观看| 色噜噜久久| 国产精品永久在线| 日韩欧美成人高清在线观看| 国产成人久视频免费| 国产精品亚洲综合久久小说| 99久久精品国产自免费| 最新加勒比隔壁人妻| 久久国产精品嫖妓| 97国产在线视频| 亚洲最大在线观看| 亚洲人成日本在线观看| 999国产精品| 激情视频综合网| 国产精品美女网站| 日韩毛片基地| 亚洲人成日本在线观看| 免费A级毛片无码无遮挡| 99激情网| 国产小视频a在线观看| 日韩在线视频网| 永久免费无码成人网站| 54pao国产成人免费视频| 国产午夜福利在线小视频| 97人妻精品专区久久久久| 无码人中文字幕| 无码中文AⅤ在线观看| 国产色婷婷视频在线观看| 亚洲人在线| 五月婷婷综合色| 国产精品视屏| 国产va在线观看| 久久天天躁狠狠躁夜夜躁| 精品福利国产| 欧美午夜理伦三级在线观看| 国产亚洲欧美日韩在线一区二区三区| 欧美成人精品高清在线下载| 亚洲狼网站狼狼鲁亚洲下载| 99久久精品美女高潮喷水| 国产特级毛片aaaaaaa高清| 黑人巨大精品欧美一区二区区| 国产地址二永久伊甸园| 一级看片免费视频| 成人精品在线观看| 欧美国产日韩一区二区三区精品影视 | 国产91小视频| 少妇高潮惨叫久久久久久| 在线播放91| 亚洲区一区| 中文字幕有乳无码| 日韩在线1| 国产成人8x视频一区二区| 青草视频久久| 中文纯内无码H| 欧美国产日韩另类| 国产小视频a在线观看| 多人乱p欧美在线观看| 精品国产黑色丝袜高跟鞋| 国产精品免费p区| 中文一级毛片| 波多野结衣一级毛片| 丝袜国产一区| 色天天综合久久久久综合片| 国产在线欧美| 亚洲天堂视频网站| 亚洲天堂区| 国产人在线成免费视频| 欧美伊人色综合久久天天| 日本午夜三级| 国产免费久久精品99re不卡| 亚洲熟妇AV日韩熟妇在线| 国产第四页| 亚洲第一视频网|