彭艦老師怎么樣 游戲是怎樣制作出來的??
四川師范大學文理學院VS四川大學錦江學院,游戲是怎樣制作出來的??四川大學錦江學院那個專業(yè)好。
本文導航
四川師范大學文理學院VS四川大學錦江學院
文理應該比較便宜,就是收費少點,因為依托師范學校,可想女生很多,美女也很多。四川大學錦江依托名校川大資源,教育資源優(yōu)秀,但學費稍高。都是四川省較出名的三本院校。
游戲是怎樣制作出來的??
一種2D游戲引擎的設計與實現(xiàn)2007-09-28 08:17 作者:曾旭晟 倪勝巧 彭艦 出處:計算機與信息技術 責任編輯:方舟 摘 要 對現(xiàn)有游戲引擎開發(fā)技術進行改進,提出了一種有效的2D游戲引擎設計與實現(xiàn)方法,該方法以引擎架構為基礎,以累積渲染技術作為主要渲染加速手段;結合精靈與動畫技術進行具體實現(xiàn),達到游戲引擎設計的目的。最后通過該方法實現(xiàn)了一個2D游戲引擎,并用實驗驗證了該方法的有效性。 1、引言 2D游戲開發(fā)是游戲開發(fā)領域中一個不可或缺的重要分支,絕大多數(shù)休閑游戲與動漫游戲都是使用2D游戲技術開發(fā)實現(xiàn)的。2D游戲技術已經(jīng)成為了手機及一系列小型設備游戲開發(fā)的主導技術。游戲引擎是游戲開發(fā)的最基礎部分,為此我們提出了一種有效的2D游戲引擎的設計與實現(xiàn)方法。通過該方法,我們設計并實現(xiàn)了一款2D游戲引擎?! ?、2D游戲引擎核心構架 2.1 引擎構架 引擎構架是游戲引擎的骨架,它的任務就是把圖像渲染、輸入處理、音頻播放、資源管理等游戲引擎的基本功能組合成一個有機的整體。目前已經(jīng)有很多比較成熟的引擎架構方法包括: (1)結構化構架。結構化構架采用的方法是將游戲引擎內(nèi)部的模塊以結構化的形式組合,并以API的形式提供接口,這種構架模式的優(yōu)點是效率高,接口簡單清晰,適合于做一些速度要求比較高的引擎,但是缺點是其模塊之間耦合度高,不易修改?! ?2)基類根形式構架。基類根形式構架是以基本的幾個抽象服務提供接口類為基礎,并以接口與實現(xiàn)相分離為原則,來進行引擎實現(xiàn),提供的實現(xiàn)類在引擎內(nèi)部創(chuàng)建,而將接口供給用戶使用。這種構架模式的優(yōu)點是結構清晰,實現(xiàn)靈活,可以適應比較大的變化,適合于做一些較大且有跨平臺需求的引擎,但是該架構依賴于基本的抽象類的繼承關系,導致引擎內(nèi)部類繼承了無用的功能而變得虛大,況且接口的通用性使得實現(xiàn)的效率不高,導致整體效率偏低。 (3)組件形式構架。組件形式構架是把不同功能的模塊做成互相獨立的系統(tǒng),模塊內(nèi)部可以使用任何構架方式,只需要提供相應的接口即可。引擎以模塊管理器為核心,支持插件形式組件增加方式,可以將新增的功能組件以插件的形式來插入系統(tǒng)工作,這種構架方式極其靈活,且模塊內(nèi)效率比較高,所以某些大型商用游戲引擎采用這種方式,但這種方式設計比較困難,實現(xiàn)比較復雜,需要大量的開發(fā)經(jīng)驗?! ¤b于本文所提引擎開發(fā)是以研究為主,且2D游戲要求效率不是很高,我們決定采用結構最為清晰的基類根形式構架方法。以4個基本服務抽象類作為整個引擎底層提供服務的基礎(如表1)。在基本類的基礎上派生出引擎使用的基本類結構(見表2)。表1 基本服務抽象類及功能說明類名功能說明IRefCount提供引用計數(shù)功能ITypeInfomation提供類型識別功能IObjectInfomation提供對象識別功能IPersistence提供對象持久化功能表2 基本類結構繼承關系類名父類IBaseITypeInfomationIResourceIBase、IObjectInfomation、ITypeInfomation 其中,IBase類是引擎中絕大部分接口類的基類,它實現(xiàn)了的類型識別虛方法。IResource類是引擎中資源的基類,它在IBase基礎上實現(xiàn)了引用計數(shù)和對象信息功能。 2.2 引擎模塊實現(xiàn) 為了實現(xiàn)方便,我們把引擎劃分成7個功能模塊:core,math,video,system,input,audio,scene。 (1)core模塊。除了定義了引擎基本類及功能以外,還提供了一些基本設施,例如日志系統(tǒng),異常處理,以及資源管理等?! ?2)math模塊。提供引擎需要的數(shù)學庫,包括向量,矩陣,基本圖元的定義和實現(xiàn)功能?! ?3)video模塊。負責基本圖元的渲染,對渲染環(huán)境的設置,對紋理的創(chuàng)建及加載,以及基本字體渲染。 (4)system模塊。提供引擎在操作系統(tǒng)下的驅(qū)動以及對操作系統(tǒng)功能使用的封裝,包括窗口管理,定時器等?! ?5)input模塊。負責處理輸入設備產(chǎn)生的事件,及對輸入設備的管理,如對鍵盤,鼠標,手柄等的管理?! ?6)audio模塊。處理音頻文件的播放以及音效處理等?! ?7)scene模塊。負責引擎中的場景管理?! ∫娴木唧w架構見圖1?! D1 引擎架構 3、2D游戲引擎核心渲染技術 3.1 累積渲染技術簡介 在2D游戲中,常常將需要的游戲圖像合并到一個大紋理中,渲染時使用該紋理進行大量圖元渲染。如果一個一個渲染所需圖元,引擎的效率必然會低,但如果一次性大量渲染許多圖元,則效率會有較大提升。,鑒于2D圖元的簡單性,我們使用累積渲染技術就可以實現(xiàn)高效率的對大批量的圖元進行渲染?! ±鄯e渲染技術的主要思想就是,在渲染2D圖元時,不設置世界矩陣,而是創(chuàng)建一個相同的圖元。利用原本的世界矩陣對此新圖元的頂點直接進行變換,并且放入一個緩沖中,等適當?shù)臅r機再一次性渲染。一次性渲染是在任何一個下列條件被滿足之時進行的: (1)2D場景結束時?! ?2)圖元類型變化?! ?3)紋理變化?! ?4)渲染狀態(tài)變化。 (5)緩沖滿?! ?6)更換渲染目標(RenderTarget)?! ?.2 與一般渲染技術的對比 在一般渲染技術和累積渲染技術中,處理世界矩陣和渲染方式都有較大的差別。一般渲染技術在將一個物體從模型坐標轉(zhuǎn)換成世界坐標時,需要先設置世界矩陣,然后對這個物體進行渲染,這種渲染方式適用于每一個物體都有比較多的圖元數(shù)據(jù)的3D場景。但是對于2D場景來說,這種技術效率太低。而累積渲染技術的世界矩陣一直為單位矩陣,在渲染2D圖元時創(chuàng)建一個相同的新圖元。利用此圖元所需的世界矩陣對此新圖元的頂點直接進行變換,并且放入一個緩沖中,需要時再一次性渲染緩沖?! ?.3 累積渲染技術實現(xiàn)核心算法 算法1:渲染圖元(render) 功能:使用累積渲染技術對2D圖元進行批量渲染 輸入:2D圖元obj,紋理tex,世界矩陣world,渲染緩沖buffer,渲染設備videoDriver 輸出:無 算法描述:if (一次性渲染條件滿足)
// 實現(xiàn)累積渲染
videoDriver->renderBuffer(buffer);
buffer->clear();
//設置當前圖元類型
videoDriver->setType(obj->type);
//設置當前紋理
videoDriver->setTexture(tex)
end if//從當前圖元復制產(chǎn)生新圖元,并對新圖元進行變換,并壓入緩沖newObj = obj
//此變換改變的是newObj的頂點數(shù)據(jù)
newObj.transform(world);
//將定點數(shù)據(jù)放入buffer
buffer->push_back(newObj); 4、2D精靈與動畫處理 在2D游戲中,精靈和動畫處理是實現(xiàn)游戲效果的最基本方法,下面就對它們進行簡要的分析。 4.1 精靈的實現(xiàn)分析 (1)精靈是一個矩形圖元,其坐標分布為:以矩陣中心為原點,四個頂點分別位于(w/2,h/2),(-w/2,h/2),(w/2,-h/2),(-w/2,-h/2)。 (2)精靈通過使用顏色鍵(colorkey)或紋理中的alpha通道來實現(xiàn)圖像透明化。 (3)精靈通過指定紋理坐標來實現(xiàn)從組合大紋理中尋址小紋理。 (4)精靈使用各種變換(平移,旋轉(zhuǎn),縮放等)在2D屏幕坐標上面定位渲染,常用平移T(x,y)來將圖元中心定位于屏幕的(x,y)處?! ?.2 2D動畫的實現(xiàn)分析 (1)動畫是精靈的擴展,靜止的動畫與精靈無異,實現(xiàn)上也大致按照精靈的實現(xiàn)方法?! ?2)動畫需要一個動作序列,可將紋理按照矩形分塊,然后把分塊編號與每一個動作需要渲染的幀數(shù)儲存至動畫對象中的動作序列?! ?3)動畫的渲染與更新分開成兩個過程。渲染同精靈一致,即對當前動作進行渲染,更新即為對當前動作與其所剩渲染幀數(shù)進行更新。 (4)如有必要,可以在一個動畫中定義多個狀態(tài),每個狀態(tài)對應一個動作序列,在游戲中可隨時變換動畫的狀態(tài)?! ?、引擎測試 通過以上方法,我們具體實現(xiàn)了一個2D游戲引擎,并對引擎的性能進行了測試,測試表明,引擎的性能非常令人滿意?! y試環(huán)境:Athlon 2500 + 512M RAM+ Geforce 5200 FX 在全屏下旋轉(zhuǎn)3100個精靈來進行alpha混合渲染時,使用累積渲染技術可以達到60.0fps
圖2 測試截圖 6、小結 本文提出了一種2D游戲引擎的設計與實現(xiàn)的方法,通過對引擎架構的分析,明確了2D游戲引擎的設計思路與方法。通過與3D引擎的渲染技術對比下,本文提出了專用于2D游戲引擎的高效渲染技術及其核心算法,即累積渲染技術,此方法在2D圖元的渲染方面效率方面遠比3D引擎使用的渲染技術高。最后闡述了2D游戲引擎中精靈與動畫的簡要實現(xiàn)方法。
四川大學錦江學院那個專業(yè)好
我是錦江學院06的學生,學的是計算機。學院里面的理工科老師絕大多數(shù)是川大著名的教授,比如先后教過我們課程的 操作系統(tǒng)的有川大著名碩士生導師李炳發(fā)教授,我們的網(wǎng)路技術史計算機網(wǎng)絡學院的副院長謝汶教授,嵌入式系統(tǒng)開發(fā)式計算機學院的副院長彭艦博士,還有涂元釗、于中華等等教授,總之我們的師資配置在川大本部同年級的學生中他們是沒有我們好的哈。
打字不易,如滿意,望采納。
掃描二維碼推送至手機訪問。
版權聲明:本文由尚恩教育網(wǎng)發(fā)布,如需轉(zhuǎn)載請注明出處。