亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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ù)、音樂(lè)、聲音效果、動(dòng)畫及程序設(shè)計(jì)技術(shù)的有機(jī)結(jié)合,以產(chǎn)生一種動(dòng)態(tài)的、具有很強(qiáng)交互性的電子娛樂(lè)形式。RPG游戲(角色扮演游戲),即游戲的形式是通過(guò)故事劇情牽引來(lái)使玩家融入一個(gè)主角所存在的虛擬世界。

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

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

        RPG游戲即為角色扮演游戲,它其實(shí)是一種由游戲玩家自己扮演角色的游戲??梢杂靡粋€(gè)三維坐標(biāo)系統(tǒng)來(lái)定位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ì)白、音效與音樂(lè)、界面、規(guī)則、命名。對(duì)應(yīng)于各個(gè)要素,一個(gè)完整的角色扮演游戲的制作從大的分工來(lái)說(shuō)可以分為:策劃、程序設(shè)計(jì)、美工、音樂(lè)制作以及項(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)的距離來(lái)確定。在一個(gè)游戲中,一般地圖的大小是固定的,要么全屏,要么固定大小,因?yàn)楦淖兇翱诖笮?huì)給顯示帶來(lái)很多麻煩。

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

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

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

        2.3 圖形圖像處理

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

        游戲畫面可以說(shuō)是由一個(gè)一個(gè)的場(chǎng)景組成的,每個(gè)場(chǎng)景都有一些圖形圖像,如背景圖、角色圖、道具圖,那么在游戲中就有大量的特殊的圖片要獲得并處理。在RPG游戲里,場(chǎng)景的構(gòu)成,是圖塊排列順序的記錄。首先制定一個(gè)場(chǎng)景構(gòu)成文件的格式,這里又用到了相應(yīng)的場(chǎng)景編輯器,見圖4中場(chǎng)景編輯器界面,它用來(lái)設(shè)置地圖上各個(gè)NPC的位置、添加道具列表、添加出口列表等工作,在這個(gè)文件里記錄構(gòu)成場(chǎng)景所需要的圖塊的排列順序,因?yàn)槲覀円呀?jīng)為每個(gè)圖塊建立了索引,所以只需要記錄這些索引就可以了。一個(gè)場(chǎng)景的構(gòu)成,是分成幾層來(lái)完成的:地面,建筑和植物,家具擺設(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)大的多媒體功能,越來(lái)越多的游戲支持Windows操作系統(tǒng)。由于VC++是微軟的產(chǎn)品,用它來(lái)編寫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)行庫(kù),通過(guò)DX編譯出來(lái)的程式必須要有運(yùn)行庫(kù)的支持,另外一個(gè)是開發(fā)庫(kù),也就是常說(shuō)的SDK,這部分是在編譯DX程序中是必需的。筆者所開發(fā)的小游戲DEMO使用GAF(Game Application Framework游戲應(yīng)用程式框架)開發(fā)包來(lái)進(jìn)行設(shè)計(jì),GAF開發(fā)包是由“第二人生游戲工作室”開發(fā)的,它是對(duì)DirectX包裝后的類庫(kù),它把游戲設(shè)計(jì)中經(jīng)常用到的DirectX功能包裝起來(lái),能代替DirectX用于游戲設(shè)計(jì)中。

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

        角色扮演游戲就像小說(shuō)一樣,缺少不了劇情,玩家跟著劇情的進(jìn)展來(lái)領(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)單的故事框架。接下來(lái)用上面的素材,把構(gòu)思還比較單薄的主線故事點(diǎn)和人物竄接起來(lái)。然后把出場(chǎng)人物,場(chǎng)景需求做成文檔,進(jìn)入一個(gè)很重要的中間步驟——游戲劇本制作。

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

        游戲引擎并不關(guān)心游戲內(nèi)容具體是什么,它只是負(fù)責(zé)將描述游戲內(nèi)容的數(shù)據(jù)讀取出來(lái),然后“扔”到某個(gè)地方就行了,所以需要以某種方式將游戲內(nèi)容交給外部文件來(lái)加以處理。這樣一來(lái),就只需要編寫一段短小而又緊湊的代碼并在某一段時(shí)間將所有這些物體描述由硬盤加載進(jìn)來(lái)就行了,這些代碼可稱之為腳本。由于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ī)模和未來(lái)需求發(fā)展方向的框架;二是游戲腳本的運(yùn)用上,考慮到系統(tǒng)會(huì)有變動(dòng)的部分,游戲的腳本語(yǔ)言為其擴(kuò)展和修改提供了很大的空間。

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

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

        [3]尚俊杰等.“輕游戲”:教育游戲的希望和未來(lái)[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無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(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
        爆笑游戲
        第八章直接逃出游戲
        無(wú)形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        国产人成无码视频在线观看| 久久久精品国产亚洲av网| 成人影院羞羞的视频免费观看| 日本女优激情四射中文字幕| 久久天天躁夜夜躁狠狠| 国产成人无码免费网站| 亚洲国产精品国自产电影| 亚洲AV成人综合五月天在线观看| 亚洲成人色黄网站久久| 蜜桃高清视频在线看免费1| 亚洲av无码国产精品色午夜软件| 中文字幕一区日韩精品| 天堂√最新版中文在线天堂| 国产360激情盗摄一区在线观看| 91青青草手机在线视频| 亚洲国产精品18久久久久久| 亚洲精品国产suv一区88| 在线免费日韩| 国产精品三级1区2区3区| 国产精品主播在线一区二区| 亚洲精品www久久久久久 | 成人免费看www网址入口| 日本丰满妇人成熟免费中文字幕| 在线亚洲精品国产成人二区| 日本一区二区在线播放视频| 精品国产这么小也不放过| 护士奶头又白又大又好摸视频 | 一本大道久久东京热无码av| 国产丝袜在线精品丝袜不卡| 国产精品亚洲在钱视频| 美女国产毛片a区内射| 99精品国产高清一区二区麻豆| 在线a亚洲视频播放在线观看| 激情视频在线观看国产中文| 国产一区二区av免费在线观看| 国产肉体xxxx裸体784大胆| 国产精品天堂| 精品亚洲乱码一区二区三区| 亚洲国产精品18久久久久久| 内射中出无码护士在线| 娇柔白嫩呻吟人妻尤物|