• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 7, comments - 13, trackbacks - 0, articles - 37
               :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理
            角色扮演游戲(RPG)是深受廣大游戲迷們喜愛(ài)的一種游戲, 它以獨(dú)特的互動(dòng)性和故事性吸引了無(wú)數(shù)的玩家。它向人們提供了超出現(xiàn)實(shí)生活的廣闊的虛擬世界,使人們能夠嘗試扮演不同的角色,去經(jīng)歷和體驗(yàn)各種不同的人生旅程或奇幻經(jīng)歷。這些體驗(yàn)都是在現(xiàn)實(shí)生活中無(wú)法實(shí)現(xiàn)的。在玩過(guò)許多游戲后,許多玩家都不再僅僅滿足于一個(gè)游戲玩家的身份,而會(huì)思考游戲是如何制作的,并且打算制作一個(gè)自己的游戲,網(wǎng)上的各種游戲制作小組更是如雨后春筍般涌現(xiàn)。下面我就給大家介紹一下角色扮演游戲引擎的原理與制作,希望能對(duì)游戲制作愛(ài)好者有所幫助。 一 游戲引擎的原理   說(shuō)到引擎,游戲迷們都很熟悉。游戲引擎是一個(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)用這些資源。 二 角色扮演游戲的制作   一個(gè)完整的角色扮演游戲的制作從大的分工來(lái)說(shuō)可以分為:策劃,程序設(shè)計(jì),美工,音樂(lè)制作以及項(xiàng)目管理,后期的測(cè)試等。   策劃主要任務(wù)是設(shè)計(jì)游戲的劇情,類型以及模式等,并分析游戲的復(fù)雜性有多大,內(nèi)容有多少,策劃的進(jìn)度要多快等因素。   程序設(shè)計(jì)的任務(wù)是用某種編程語(yǔ)言來(lái)完成游戲的設(shè)計(jì),并與策劃配合,達(dá)到預(yù)期的目的。   美工主要是根據(jù)游戲的時(shí)代背景與主題設(shè)計(jì)游戲的場(chǎng)景及各種角色的圖象。   音樂(lè)制作是根據(jù)游戲的劇情和背景制作游戲的音樂(lè)與音效。   項(xiàng)目管理主要是控制游戲制作的進(jìn)程,充分利用現(xiàn)有的資源(人員,資金,設(shè)備等),以達(dá)到用盡量少的資金實(shí)現(xiàn)最大的收益。   后期的測(cè)試也是非常重要的一個(gè)環(huán)節(jié),對(duì)于一個(gè)幾十人花費(fèi)幾個(gè)月甚至是幾年時(shí)間制作的游戲,測(cè)試往往能找到許多問(wèn)題,只有改進(jìn)程序才能確保游戲的安全發(fā)行。   由于文章主要是講解游戲程序的制作的,所以策劃,美工,音樂(lè)制作等方面請(qǐng)讀者參考其它文章,下面我就講講游戲程序的設(shè)計(jì)。 (一) 開(kāi)發(fā)工具與主要技術(shù) 1.件開(kāi)發(fā)工具   游戲程序開(kāi)發(fā)工具有很多,在不同游戲平臺(tái)上有不同的開(kāi)發(fā)工具。在個(gè)人計(jì)算機(jī)上,可以用目前流性的軟件開(kāi)發(fā)工具,比如:C,C++,VC++,Delphi,C++ Builder等。由于Windows操作系統(tǒng)的普及和其強(qiáng)大的多媒體功能,越來(lái)越多的游戲支持Windows操作系統(tǒng)。由于VC是微軟的產(chǎn)品,用它來(lái)編寫Windows程序有強(qiáng)大的程序接口和豐富的開(kāi)發(fā)資源的支持,加之VC嚴(yán)謹(jǐn)?shù)膬?nèi)存管理,在堆棧上良好的分配處理,生成代碼的體積小,穩(wěn)定性高的優(yōu)點(diǎn),所以VC++就成為目前游戲的主流開(kāi)發(fā)工具。 2.DirectX組件的知識(shí)   談到Windows系統(tǒng)下的游戲開(kāi)發(fā),我們就要說(shuō)一下微軟的DirectX SDK。   Windows系統(tǒng)有一個(gè)主要優(yōu)點(diǎn)是應(yīng)用程序和設(shè)備之間的獨(dú)立性。然而應(yīng)用程序的設(shè)備無(wú)關(guān)性是通過(guò)犧牲部分速度和效率的到的,Windows在硬件和軟件間添加了中間抽象層,通過(guò)這些中間層我們的應(yīng)用程序才能在不同的硬件上游刃有余。但是,我們因此而不能完全利用硬件的特征來(lái)獲取最大限度的運(yùn)算和顯示速度。這一點(diǎn)在編寫Windows游戲時(shí)是致命的,DirectX便是為解決這個(gè)問(wèn)題而設(shè)計(jì)的。DirectX由快速的底層庫(kù)組成并且沒(méi)有給游戲設(shè)計(jì)添加過(guò)多的約束。微軟的DirectX軟件開(kāi)發(fā)工具包(SDK)提供了一套優(yōu)秀的應(yīng)用程序編程接口(APIs),這個(gè)編程接口可以提供給你開(kāi)發(fā)高質(zhì)量、實(shí)時(shí)的應(yīng)用程序所需要的各種資源。   DirectX的6個(gè)組件分別是:     DirectDraw: 使用頁(yè)面切換的方法實(shí)現(xiàn)動(dòng)畫,它不僅可以訪問(wèn)系統(tǒng)內(nèi)存,還可以訪問(wèn)顯示內(nèi)存。     Direct3D: 提供了3D硬件接口。     DirectSound: 立體聲和3D聲音效果,同時(shí)管理聲卡的內(nèi)存。     DirectPlay: 支持開(kāi)發(fā)多人網(wǎng)絡(luò)游戲,并能處理游戲中網(wǎng)絡(luò)之間的通信問(wèn)題。     DirectInput: 為大量的設(shè)備提供輸入支持。     DirectSetup: 自動(dòng)安裝DirectX驅(qū)動(dòng)程序。   隨著DirectX版本的提高,還增加了音樂(lè)播放的DirectMusic。 3.AlphaBlend 技術(shù)   現(xiàn)在許多游戲?yàn)榱诉_(dá)到光影或圖象的透明效果都會(huì)采用AlphaBlend 技術(shù)。所謂AlphaBlend技術(shù),其實(shí)就是按照"Alpha"混合向量的值來(lái)混合源像素和目標(biāo)像素,一般用來(lái)處理半透明效果。在計(jì)算機(jī)中的圖象可以用R(紅色),G(綠色),B(藍(lán)色)三原色來(lái)表示。假設(shè)一幅圖象是A,另一幅透明的圖象是B,那么透過(guò)B去看A,看上去的圖象C就是B和A的混合圖象,設(shè)B圖象的透明度為alpha(取值為0-1,0為完全透明,1為完全不透明),Alpha混合公式如下:     R(C)=alpha*R(B)+(1-alpha)*R(A)     G(C)=alpha*G(B)+(1-alpha)*G(A)     B(C)=alpha*B(B)+(1-alpha)*B(A)   R(x)、G(x)、B(x)分別指顏色x的RGB分量原色值。從上面的公式可以知道,Alpha其實(shí)是一個(gè)決定混合透明度的數(shù)值。應(yīng)用Alpha混合技術(shù),可以實(shí)現(xiàn)游戲中的許多特效,比如火光、煙霧、陰影、動(dòng)態(tài)光源等半透明效果。 4.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) = g(n) + h(n)   這里,f(n)是節(jié)點(diǎn)n的估價(jià)函數(shù),g(n)是起點(diǎn)到終點(diǎn)的最短路徑值,h(n)是n到目標(biāo)的最斷路經(jīng)的啟發(fā)值。由于A*算法比較復(fù)雜,限于篇幅,在此簡(jiǎn)單介紹一下,具體理論朋友們可以看人工智能方面的書籍了解詳細(xì)的情況。   其它技術(shù)還有粒子系統(tǒng),音頻與視頻的調(diào)用,圖象文件的格式與信息存儲(chǔ)等,大家可以在學(xué)好DirectX的基礎(chǔ)上逐漸學(xué)習(xí)更多的技術(shù)。 (二)游戲的具體制作 1.地圖編輯器的制作   RPG游戲往往要有大量的場(chǎng)景,場(chǎng)景中根據(jù)需要可以有草地,湖泊,樹(shù)木,房屋,家具等道俱,由于一個(gè)游戲需要很多場(chǎng)景且地圖越來(lái)越大,為了節(jié)省空間,提高圖象文件的可重用性,RPG游戲的畫面采用很多重復(fù)的單元(可以叫做“圖塊”)所構(gòu)成的,這就要用到地圖編輯器了。我們?cè)谥谱饔螒蛞媲埃瓿傻貓D編輯器的制作。在 RPG游戲里,場(chǎng)景的構(gòu)成,是圖塊排列順序的記錄。首先制定一個(gè)場(chǎng)景構(gòu)成文件的格式,在這個(gè)文件里記錄構(gòu)成場(chǎng)景所需要的圖塊的排列順序,因?yàn)槲覀円呀?jīng)為每個(gè)圖塊建立了索引,所以只需要記錄這些索引就可以了。一個(gè)場(chǎng)景的構(gòu)成,是分成幾層來(lái)完成的:地面,建筑和植物,家具擺設(shè),和在場(chǎng)景中活動(dòng)的人物或者物體(比如飄揚(yáng)的旗幟),按照一定的順序把它們依次顯示到屏幕上,就形成了一個(gè)豐富多采的場(chǎng)景。我們可以用數(shù)組來(lái)表示地圖場(chǎng)景的生成過(guò)程。 MapData[X][Y]; //地圖數(shù)據(jù),X表示地圖寬度,Y表示地圖高度 Picture[num]; //道具的圖片,num表示道具的總數(shù) void MakeBackGround() //生成場(chǎng)景函數(shù) {  int n;  for( int i=0; i

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久久久久夜精品精品免费啦| 嫩草影院久久99| 精品欧美一区二区三区久久久| 久久亚洲私人国产精品vA| 欧美亚洲国产精品久久久久| 久久久久久一区国产精品| 久久97久久97精品免视看秋霞| 久久亚洲高清观看| 久久99精品国产99久久6| 婷婷久久综合九色综合绿巨人| 久久国产精品二国产精品| 久久e热在这里只有国产中文精品99| 91精品国产91久久久久久青草| 国产精品九九久久精品女同亚洲欧美日韩综合区| 国产午夜免费高清久久影院| 国内精品久久久久| 国产高清国内精品福利99久久| 三级片免费观看久久| 久久久www免费人成精品| 久久精品aⅴ无码中文字字幕重口| 国产韩国精品一区二区三区久久| 亚洲一区二区三区日本久久九| 伊人久久免费视频| 久久笫一福利免费导航| 久久精品国产亚洲av日韩| 亚洲午夜精品久久久久久人妖| 亚洲人成无码网站久久99热国产| 亚洲av伊人久久综合密臀性色| 色综合久久久久| 久久综合亚洲色HEZYO社区| 久久噜噜电影你懂的| 四虎国产精品免费久久| 久久99毛片免费观看不卡| 久久久久香蕉视频| 亚洲国产另类久久久精品黑人| 国产精品久久久99| 久久久无码精品亚洲日韩蜜臀浪潮| 久久国产午夜精品一区二区三区| 日本久久久久亚洲中字幕| 久久久久无码国产精品不卡| 精品国产一区二区三区久久|