




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:軟件工程課程設(shè)計(jì)題目:游戲引擎開發(fā)姓 名:戴智亮系:計(jì)算機(jī)科學(xué)與技術(shù)系專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)年 級(jí):2007學(xué) 號(hào):071150062承擔(dān)角色:主程序員同組組長:戴智亮同組其他成員:張世強(qiáng)、柯躍宗、梁成地實(shí)驗(yàn)地點(diǎn):田家炳樓指導(dǎo)教師:王李進(jìn)職 稱:講師完成起止日期:2010.12.52011.1.92011年 1月 10日福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院課程設(shè)計(jì)結(jié)果評(píng)定評(píng)價(jià)內(nèi)容評(píng)價(jià)指標(biāo)評(píng)分權(quán)值評(píng)定成績業(yè)務(wù)水平有扎實(shí)的基礎(chǔ)理論知識(shí)和課程知識(shí);能正確設(shè)計(jì)實(shí)驗(yàn)方案;獨(dú)立進(jìn)行實(shí)驗(yàn)工作;能運(yùn)用所學(xué)課程知識(shí)和技能去發(fā)現(xiàn)與解決實(shí)際問題0.2設(shè)計(jì)質(zhì)量實(shí)驗(yàn)正確,
2、分析處理科學(xué);設(shè)計(jì)結(jié)果有應(yīng)用價(jià)值;圖紙繪制符合國家標(biāo)準(zhǔn),質(zhì)量符合要求;計(jì)算及測(cè)試結(jié)果準(zhǔn)確;工作中有創(chuàng)新意識(shí);對(duì)前人工作有改進(jìn)或突破,或有獨(dú)特見解; 0.4工作量、工作態(tài)度按期完成規(guī)定的任務(wù),工作量飽滿,難度較大;工作努力,遵守紀(jì)律;工作作風(fēng)嚴(yán)謹(jǐn)務(wù)實(shí)0.2報(bào)告質(zhì)量文字通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,書寫工整規(guī)范,圖表完備、整潔、正確;0.2合 計(jì)1.0指導(dǎo)教師簽字:評(píng)定日期:目錄1課程設(shè)計(jì)概述12項(xiàng)目的可行性研究與需求分析23項(xiàng)目設(shè)計(jì)的基本原理和采用的主要方法與技術(shù)33.1系統(tǒng)組成33.2模塊化分解44本人實(shí)現(xiàn)項(xiàng)目的過程與步驟54.1驅(qū)動(dòng)核心模塊54.2文本模塊54.32D模塊54.4界
3、面模塊54.5音頻模塊64.6網(wǎng)絡(luò)模塊74.73D模塊74.8腳本模塊74.9輔助模塊75個(gè)人遇到的困難與獲得的主要成果86課程設(shè)計(jì)完成結(jié)果分析與個(gè)人小結(jié)97附錄10參考文獻(xiàn)10游戲引擎開發(fā)1 課程設(shè)計(jì)概述假想客戶(以下簡(jiǎn)稱客戶)是具有一定開發(fā)能力,從事或試圖從事Windows平臺(tái)的C+游戲開發(fā),但又不想接觸復(fù)雜死板的DirectX和Win32 API,因此需要一個(gè)能提供簡(jiǎn)單靈活接口的游戲引擎類庫。客戶對(duì)該類庫的功能要求大致可歸納為:l 方便重用的驅(qū)動(dòng)核心。包括處理游戲窗口創(chuàng)建、主線程、消息處理等。l 2D圖形渲染。能讀取并繪制流行圖片格式,為了美工方便必須能以貼片形式繪制一張圖片的某部分,并
4、且支持圖片的旋轉(zhuǎn)縮放通道混合等。l 3D圖形渲染。能讀取并渲染流行3D建模工具導(dǎo)出的網(wǎng)格模型,并提供網(wǎng)格模型基本的操作如旋轉(zhuǎn)縮放和動(dòng)畫控制等。l 音頻處理。能對(duì)ogg vorbis進(jìn)行讀取解析播放。l 玩家輸入處理。能處理來自于鍵盤、鼠標(biāo)的玩家輸入。l 網(wǎng)絡(luò)功能。能將客戶機(jī)連接到Internet與其他玩家對(duì)戰(zhàn)。l 文本輸入和繪制。能繪制豐富字體的文本,支持接受各種輸入法的輸入。l 方便自定義的UI框架。提供一個(gè)UI框架,客戶可根據(jù)需要改變界面方案為自己的游戲創(chuàng)建獨(dú)一無二的UI界面。l 腳本集成。集成一種強(qiáng)大而簡(jiǎn)單的腳本。2 項(xiàng)目的可行性研究與需求分析針對(duì)客戶所提出的要求,結(jié)合各方所能提供的AP
5、I,對(duì)各項(xiàng)功能進(jìn)行逐一分析,初步將引擎分為幾大模塊,各模塊之間相互獨(dú)立,可單獨(dú)使用:l 驅(qū)動(dòng)核心。處理窗口創(chuàng)建、主線程、消息處理。l 音頻模塊。對(duì)DirectX和 Ogg vorbis的音頻處理API,提供加載播放ogg音頻的接口。l 2D模塊。封裝了DirectX的紋理繪制API,可繪制2D圖形圖像。l 文本繪制模塊。封裝了DirectX的字體繪制API,滿足游戲中的文本繪制需求。l 界面模塊。界面繪制基于2D模塊,模擬微軟MFC框架及其消息機(jī)制的一個(gè)界面框架,可為游戲提供靈活的交互界面。l 網(wǎng)絡(luò)模塊。封裝Winsock提供的網(wǎng)絡(luò)API為游戲提供網(wǎng)絡(luò)功能。l 3D模塊。對(duì)DirectX的3D
6、接口進(jìn)行封裝,包含了.X文件解析,網(wǎng)格控制等。l 腳本模塊。集成了Lua腳本語言,為有劇情發(fā)展的游戲提供便利的腳本處理功能。l 輔助模塊。提供其他便于游戲開發(fā)的工具類。3 項(xiàng)目設(shè)計(jì)的基本原理和采用的主要方法與技術(shù)3.1 系統(tǒng)組成游戲引擎的核心部分是驅(qū)動(dòng)核心,包含主線程和消息處理,以及供用戶擴(kuò)展成自定義游戲的初始化、邏輯、渲染、釋放等接口,用戶的游戲開發(fā)主要在驅(qū)動(dòng)核心的接口里調(diào)用其他功能模塊進(jìn)行。游戲引擎業(yè)務(wù)流程的活動(dòng)圖如下圖:3.2 模塊化分解如下圖,系統(tǒng)根據(jù)功能分為9個(gè)模塊,其中驅(qū)動(dòng)核心作為核心部分必不可少,其他模塊可根據(jù)實(shí)際開發(fā)的游戲需要進(jìn)行選擇。除界面模塊必須用到2D模塊以及網(wǎng)絡(luò)模塊需要
7、用到界面模塊外,其他各模塊之間沒有任何聯(lián)系,均可單獨(dú)使用。4 本人實(shí)現(xiàn)項(xiàng)目的過程與步驟開發(fā)采用原型模型,先快速開發(fā)出預(yù)期系統(tǒng)的一個(gè)可執(zhí)行版本,交付客戶試用并收集反饋,然后對(duì)原型進(jìn)行改正擴(kuò)展,追加新模塊后再次交付客戶,循環(huán)整個(gè)過程直至系統(tǒng)最終完成。為了符合原型模型開發(fā)的需要,模塊設(shè)計(jì)順序按照:驅(qū)動(dòng)核心>基本功能模塊>高級(jí)功能模塊的順序進(jìn)行。我作為主程序員負(fù)責(zé)各模塊的初期設(shè)計(jì),并對(duì)實(shí)現(xiàn)難點(diǎn)進(jìn)行攻克。4.1 驅(qū)動(dòng)核心模塊該模塊包擴(kuò)一個(gè)引擎類和一個(gè)用戶自定義的擴(kuò)展文件構(gòu)成。引擎類GameEngine類以單例實(shí)現(xiàn),主要用于處理Windows處理過程,包括注冊(cè)窗口類,創(chuàng)建應(yīng)用程序窗口和主線程,
8、消息循環(huán),并提供共用戶自定義游戲用的接口。擴(kuò)展文件DirectxGE則實(shí)現(xiàn)了引擎類提供的自定義接口,客戶可在擴(kuò)展類里調(diào)用其他模塊來開發(fā)自己的游戲。4.2 文本模塊該模塊僅有一個(gè)類DxFont類。 該類封裝一個(gè)ID3DXFont COM對(duì)象,對(duì)外提供創(chuàng)建字體,繪制文字,獲取字體信息等方法。注意ID3DXFont的繪制要求初始化LPD3DXSPRITE,驅(qū)動(dòng)核心模塊里已事先對(duì)其進(jìn)行初始化。4.3 2D模塊該模塊僅有一個(gè)類DxTile類。該類封裝一個(gè)DirectX紋理,并增加了貼片性能,實(shí)現(xiàn)紋理、貼片數(shù)據(jù)的讀取,以及貼片的繪制,支持旋轉(zhuǎn)縮放等。注意DirectX紋理的繪制要求初始化LPD3DXSPR
9、ITE。4.4 界面模塊界面模塊模擬微軟MFC框架及其消息機(jī)制構(gòu)建一個(gè)界面框架,可為游戲提供靈活的自定義交互界面。用戶還可以根據(jù)需要自行對(duì)其控件擴(kuò)充。該模塊的繪圖依賴于2D模塊。DxCmdTarget類:作為消息基類,向所有子類派發(fā)消息。DxWnd類:派生自DxCmdTarget,作為窗口控件基類。DxFrameWnd類:派生自DxWnd類,窗口類基類。DxBoxWnd類:派生自DxWnd類,容器類,可容納其他控件。DxComboBox類:派生自DxBoxWnd類,組合框類。DxEditBox類:派生自DxWnd類,文本輸入框類。DxButton類:派生自DxWnd類,按鈕類。DxTextBu
10、tton類:派生自DxButton類,文本控件。整個(gè)模塊的類圖如下:4.5 音頻模塊該模塊由負(fù)責(zé)播放長時(shí)音樂的DxSound類以及對(duì)短時(shí)效果音進(jìn)行強(qiáng)化的派生類DxSoundEffect類組成。4.6 網(wǎng)絡(luò)模塊該模塊由一個(gè)網(wǎng)絡(luò)消息處理類MMsgManager類作為處理網(wǎng)絡(luò)消息的核心,以及封裝了Socket的SocketProxy類及其子類來處理服務(wù)器和客戶端的行為。4.7 3D模塊該模塊主要封裝了Direct3D的相關(guān)COM對(duì)象,為游戲提供3D開發(fā)的支持。包括.X文件解析類CAllocateHierarchy類、骨骼蒙皮網(wǎng)格模型類CSkinMesh類、3D角色類D3dChara類。4.8 腳本模
11、塊該模塊集成了Lua腳本語言,為游戲提供一個(gè)強(qiáng)大又易用的腳本。Lua堆棧操作類MLua類封裝了Lua腳本語言的相關(guān)堆棧操作的API;腳本類MScript類包含一個(gè)Mlua類對(duì)象,擴(kuò)展了作為游戲腳本的基本功能。4.9 輔助模塊該模塊只是一些便于游戲開發(fā)的類集合,類之間并沒有很強(qiáng)的聯(lián)系。5 個(gè)人遇到的困難與獲得的主要成果作為組長兼主程序員,負(fù)責(zé)需求分析體系結(jié)構(gòu)設(shè)計(jì),各模塊的初期設(shè)計(jì),并向成員闡釋模塊的設(shè)計(jì)思路,解決成員在工作中遇到的問題,攻克項(xiàng)目開發(fā)中的難點(diǎn)。整個(gè)項(xiàng)目的一個(gè)較大難點(diǎn)在于建立一套靈活的自定義UI,界面模塊模擬微軟MFC框架及其消息機(jī)制構(gòu)建一個(gè)界面框架,可為游戲提供靈活的自定義交互界面
12、。用戶還可以根據(jù)需要自行對(duì)其控件擴(kuò)充。其中消息基類是整個(gè)界面模塊的核心和難點(diǎn),該類由主程序員來負(fù)責(zé)設(shè)計(jì)。只要繼承該類即可響應(yīng)消息,所有消息由該基類向子類派發(fā)。該類對(duì)外必須提供全局初始化、全局渲染、全局消息三個(gè)靜態(tài)函數(shù)。子類只要加入全局消息映射網(wǎng)后,相應(yīng)的初始化、渲染、消息函數(shù)都會(huì)由DxCmdTarget類調(diào)用。派生類所要做的工作很簡(jiǎn)單,繼承該類,在構(gòu)造函數(shù)里調(diào)用父構(gòu)造,用DXUI_ENTRY宏添加映射項(xiàng),最后用DXUI_LINK宏鏈接到全局消息映射網(wǎng)。該消息基類內(nèi)部維持一張全局消息映射網(wǎng),把系統(tǒng)發(fā)給應(yīng)用程序窗口的消息通過映射網(wǎng)派發(fā)給各個(gè)子類,由子類去處理各自的消息。該類同時(shí)負(fù)責(zé)在應(yīng)用程序窗口關(guān)
13、閉后,對(duì)沒有手動(dòng)釋放的子對(duì)象進(jìn)行安全釋放。另一個(gè)較大的難點(diǎn)在于DirectX開發(fā),負(fù)責(zé)該模塊的小組成員之前沒有DirectX開發(fā)經(jīng)驗(yàn),因此主程序員不得不負(fù)責(zé)對(duì)其指導(dǎo)和監(jiān)督。而且諸如游戲引擎類,.X蒙皮骨骼模型文件解析,ogg音頻解析等重難點(diǎn)部分也由主程序員來設(shè)計(jì)。最后為了給客戶展示類庫效果,由主程序員利用類庫編寫數(shù)個(gè)演示游戲供客戶參考。6 課程設(shè)計(jì)完成結(jié)果分析與個(gè)人小結(jié)通過這次課程設(shè)計(jì),拓寬了知識(shí)面,鍛煉了能力,綜合素質(zhì)得到較大提高。安排課程設(shè)計(jì)的基本目的,在于通過理論與實(shí)際的結(jié)合、人與人的溝通,進(jìn)一步提高思想覺悟。尤其是觀察、分析和解決問題的實(shí)際工作能力,以便培養(yǎng)成為能夠主動(dòng)適應(yīng)社會(huì)主義現(xiàn)代
14、化建設(shè)需要的高素質(zhì)的復(fù)合型人才。對(duì)我們計(jì)算機(jī)專業(yè)的本科生來說,實(shí)際能力的培養(yǎng)至關(guān)重要,而這種實(shí)際能力的培養(yǎng)單靠課堂教學(xué)是遠(yuǎn)遠(yuǎn)不夠的,必須從課堂走向?qū)嵺`。通過課程設(shè)計(jì),讓我們找出自身狀況與實(shí)際需要的差距,并在以后的學(xué)習(xí)期間及時(shí)補(bǔ)充相關(guān)知識(shí),為求職與正式工作做好充分的知識(shí)、能力準(zhǔn)備,從而縮短從校園走向社會(huì)的心理轉(zhuǎn)型期。通過對(duì)軟件開發(fā)流程的了解,進(jìn)一步激發(fā)了我們對(duì)專業(yè)知識(shí)的興趣,并能夠結(jié)合實(shí)際存在的問題在專業(yè)領(lǐng)域內(nèi)進(jìn)行更深入的學(xué)習(xí)。7 附錄課程設(shè)計(jì)文件夾(以下為下屬文件夾)Ø marineMikuTest文件夾。項(xiàng)目工程及演示程序。Ø supports文件夾。編譯工程所必須的lib和include,請(qǐng)按照同目錄下的help.txt中的指示安裝。同目錄下的ReadMe.txt是演示游戲程序的說明。Ø document文件夾。相關(guān)文檔。參考文獻(xiàn)1. 美Jim Adams著,黃際洲/劉剛譯,DirectX角色扮演游戲編程,重慶大學(xué)出版社,20062. 美McCuskey著
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省深圳市福田區(qū)西交利物浦大學(xué)基礎(chǔ)教育集團(tuán)外國語高級(jí)中學(xué)2024-2025學(xué)年高二下學(xué)期期中考試歷史試題(含答案)
- 針對(duì)項(xiàng)目管理專業(yè)人士考試的復(fù)習(xí)計(jì)劃試題及答案
- 心理活動(dòng)描寫作文指導(dǎo)技術(shù)介紹
- 農(nóng)作物繁育員考試模擬試題及答案
- 模具設(shè)計(jì)的整體解決方案試題及答案
- 模具設(shè)計(jì)師考試的動(dòng)態(tài)與試題及答案
- 游泳救生員工作效率試題及答案解析
- 2023年8月全國事業(yè)單位考試聯(lián)考A類綜合應(yīng)用能力真題試題試卷答案解析
- 優(yōu)化復(fù)習(xí)效果2024年農(nóng)作物種子繁育員考試試題及答案
- 2024年救生員職業(yè)資格考試各科目試題及答案
- 浙江超鈉新能源材料有限公司高性能鈉離子電池材料零碳智能產(chǎn)線項(xiàng)目環(huán)評(píng)報(bào)告
- 《血管活性藥物靜脈輸注》標(biāo)準(zhǔn)解讀護(hù)理課件
- 《IPV4地址簡(jiǎn)介》課件
- 天然氣管道風(fēng)險(xiǎn)評(píng)估模型
- 血液透析發(fā)生失衡綜合癥的原因及預(yù)防
- 兒童滑膜炎護(hù)理查房
- 瓦特改良蒸汽機(jī)課件
- 2024年螞蟻云客服支付寶云客服工作證客戶工作證培訓(xùn)試題及答案
- 酒店水單模板
- NB-T31022-2012風(fēng)電達(dá)標(biāo)投產(chǎn)驗(yàn)收規(guī)程1-風(fēng)電發(fā)電場(chǎng)工程達(dá)標(biāo)投產(chǎn)驗(yàn)收專用
- 熔射(熱噴涂工藝)
評(píng)論
0/150
提交評(píng)論