




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、游戲編程概述浙江大學軟件學院梁秀波Email:liangxb游戲是什么?游戲程序員看游戲游戲”只是一個具有某種“邏輯”和某些“數(shù)據(jù)”的結合體 游戲的組成游戲的基本部件游戲的運行流程游戲其實就是一個不斷按某種邏輯更新各種數(shù)據(jù)(畫面、聲音等)的過程。游戲的基本流程只是一個連續(xù)的循環(huán),它不斷地按某種邏輯來繪制新的圖像,并刷新畫面 Dave Roderick曾形象地把游戲類比為一個帶有前置終端的實時數(shù)據(jù)庫,該終端實時地接受用戶(玩家)輸入的各種交互指令,取出相應的數(shù)據(jù),并“優(yōu)雅”地將這些數(shù)據(jù)以各種形式(視覺、聽覺等)展現(xiàn)給用戶。 游戲開發(fā)的基本理念和方法 (1)數(shù)據(jù)驅(qū)動理念“邏輯”方面是一款游戲的靈魂
2、,主要由游戲設計人員來負責完成;“數(shù)據(jù)”方面主要起到描述性和修飾性的作用,主要由程序設計人員來處理。這樣的主次關系決定了只有高效地、靈活地處理和對付這些“數(shù)據(jù)”部分,才能讓游戲設計人員把更多的時間和精力花費在“邏輯”部分, 游戲編程人員必須把這些“數(shù)據(jù)處理”工作變得簡便和快捷,才能保證游戲開發(fā)的成功。游戲開發(fā)的基本理念和方法(2)數(shù)據(jù)驅(qū)動的基本策略預先開發(fā)專門的數(shù)據(jù)獲取和管理工具。游戲程序設計人員常常需要針對當前游戲的開發(fā),為游戲開發(fā)中的藝術創(chuàng)作人員專門設計和實現(xiàn)一系列的“數(shù)據(jù)”獲取和管理工具,包括聲音的處理程序、繪畫工具等,以提高藝術創(chuàng)作人員的工作效率;游戲程序設計人員在編寫代碼時,要采用可
3、以很容易修改游戲數(shù)據(jù)的方式,保證游戲數(shù)據(jù)的動態(tài)可調(diào)整性。 游戲開發(fā)是一個不斷修改完善的過程,游戲的設計人員常常需要訪問那些影響游戲不同實體行為的數(shù)據(jù),并且可以修改這些數(shù)據(jù)。游戲開發(fā)的基本理念和方法(2)保證游戲數(shù)據(jù)的動態(tài)可調(diào)整性的技巧和策略 創(chuàng)建一個可以解析文本文件或者命令的子系統(tǒng)它能對游戲的初始化數(shù)據(jù)/參數(shù)進行動態(tài)地解釋和配置,而不是簡單地“啟動”游戲的運行。把游戲程序中的一些常數(shù)放置在文本文件中,這樣,不需要重新編譯就可以很容易地對這些參數(shù)進行修改。所有的數(shù)據(jù)都不放在代碼內(nèi)。假設所有的數(shù)據(jù)內(nèi)容都可以修改,或者將來可能被修改。使用腳本來控制游戲的流程。腳本是定義各種行為控制的最簡單的方式,它
4、特別擅長定義游戲中順序執(zhí)行的步驟,或者各種等待觸發(fā)的游戲事件。在編碼實現(xiàn)中,時刻牢記把“邏輯”和“數(shù)據(jù)”分開的核心準則即把復雜的游戲邏輯放在代碼中,而把“數(shù)據(jù)”外置,這樣可以有效地提高游戲的功能清晰性和可調(diào)試性。避免重復的數(shù)據(jù)。如果你需要在不同的游戲場景中表現(xiàn)相同的人物行為,那么,只需要在一個地方實現(xiàn),而在另一個場景中直接調(diào)用就可以了。在大型的復雜游戲開發(fā)中,需要另外的編輯工具代替手工編輯方式,方便于產(chǎn)生游戲數(shù)據(jù)的文本文件,如關卡編輯器、腳本編輯器等。建構這些合適的編輯工具可謂是“磨刀不誤砍柴功”,它們將十分高效地加快大型游戲的開發(fā)過程。游戲開發(fā)的基本理念和方法(3)軟件工程中的原型法、中間件
5、方法等都是開發(fā)游戲軟件的有效方法 可玩性測試的原型系統(tǒng):專門用于檢驗游戲設計的合理性和用戶的可接受程度;用戶界面的原型系統(tǒng):檢查玩家如何與游戲進行交互;各個子系統(tǒng)的原型系統(tǒng):測試該子系統(tǒng)的功能,并可檢查各個子系統(tǒng)的交互關系和數(shù)據(jù)接口;算法測試的原型系統(tǒng):可用來檢查各種算法。尤其是特定領域的一些復雜算法需要通過原型系統(tǒng)進行不斷地改進和提高。游戲的測試與調(diào)試(1)游戲的測試與調(diào)試目標游戲BUG的出現(xiàn)可能是由于程序員的技術問題,也可能是由于策劃的設計問題,或者是因為美工的一時疏忽。不管是什么原因,在進行游戲的調(diào)試和測試工作時,要盡量把這些問題全部解決。游戲的調(diào)試是編程人員的任務,在這個階段中要找出游
6、戲程序的內(nèi)在缺陷,并加以修正。采用一般的軟件調(diào)試和測試方法就可以達到。游戲的測試相當于對游戲設計階段的BUG的修正,找出游戲設計本身存在的缺陷 。 游戲的測試與調(diào)試(2)游戲的測試人員一般由以下幾類人員組成:第一類游戲測試人員是開發(fā)隊伍的成員。看到自己制作的美工、聲效、代碼和游戲中使用的關卡,更好地知道如何進行改進;第二類游戲測試人員是傳統(tǒng)意義上的游戲測試人員,這些人在游戲進入“alpha”階段就開始對游戲進行測試。這些測試人員會將一半的時間用來跟蹤代碼中的“BUG”,并且還會提供一些重要的反饋信息,比如,如何玩游戲、游戲的難度過于簡單還是過于困難、游戲的交互控制是直觀還是遲鈍等;第三類游戲測
7、試人員比較注重第一印象,他們短期參與到項目中,從事玩游戲的工作,然后提供關于游戲的最直接的感覺。關于游戲中不太直觀的控制方式、不清晰的信息表示或者游戲難度設置不合理的部分,他們都可以提出建議;第四類游戲測試人員是沒有從事當前游戲開發(fā)的游戲設計者或者開發(fā)人員,會以比其他的測試人員更為獨到的方式提出自己對游戲優(yōu)缺點的見解,他們在某種程度上理解游戲的設計思想,可以分析出項目為何存在缺點,并提出改進方案。游戲的測試與調(diào)試(3)游戲中的測試工作可以分為兩種:有監(jiān)督的測試和無監(jiān)督的測試。有監(jiān)督的測試一般在游戲開發(fā)的早期進行,讓設計人員清楚地了解游戲有哪些部分不完整,需要從哪些方面獲得反饋信息。在項目開發(fā)的
8、后期,如果某個部分剛剛修改過或者返工過,設計人員只需要這一部分的反饋信息,以判斷所做的修改是否解決了現(xiàn)有的問題,或者是否會在某個重要方面對游戲造成影響。無監(jiān)督的測試也很重要,告訴他們開始玩游戲,觀察他們做些什么,并且傾聽他們的反饋意見,這樣可以為設計人員提供關于游戲的全面的反饋意見,這些信息對于解決所有的問題至關重要。游戲的測試與調(diào)試(4)游戲在整體上完成后,在進入全面測試階段的時候,就可以進行游戲參數(shù)的調(diào)整。參數(shù)的調(diào)整工作通常包括修改游戲中的某個設置,然后繼續(xù)玩游戲,以判斷修改是否達到了所要求的效果。在進行參數(shù)調(diào)整工作時,必須密切注意不同的值之間是如何相互作用和影響的。 在決定如何對游戲進行
9、參數(shù)調(diào)整時,沒有絕對的規(guī)則可以遵循。你必須要全面地觀察游戲,以理解比你玩游戲的經(jīng)驗少得多的玩家如何來玩這個游戲,并且還要了解哪些地方可以對他們提出挑戰(zhàn),而又不會不公平或者過于殘酷。一旦決定對一個行為參數(shù)或效果參數(shù)進行調(diào)整,那么大刀闊斧地將其加倍或減半,這樣在調(diào)試時才能清晰地感受到調(diào)整前后的變化,有利于快速地確定合適的參數(shù)值。 游戲開發(fā)的基本準則所有的游戲開發(fā)都必須為今后的重用作好準備。盡量使用可重用的模塊將會最大程度上縮短游戲的開發(fā)周期。開發(fā)文檔不是可有可無的。好的開發(fā)文檔不僅能為軟件重用提供有力的技術保證,而且在游戲開發(fā)過程中,它能讓其他的開發(fā)人員清楚地知道你在干什么。先設計,后編程。游戲的
10、設計和編程實現(xiàn)是明顯分開的,因此,游戲的開發(fā)一定要先進行設計,后進行編程實現(xiàn)。游戲開發(fā)是一個不斷進行自我完善的過程,在開始編程的時候,大概只完成了80%的游戲設計工作量,其余的設計工作隨著開發(fā)進程的推進而逐步地進行精致和完善。靈活有效地安排開發(fā)進程。在游戲開發(fā)過程中,一定要讓每一個游戲編程人員知道他們的開發(fā)目標。雖然執(zhí)著地實施既定的開發(fā)計劃很重要,但是,更重要的是如何在開發(fā)進程落后的時候,重新校準新的開發(fā)計劃。及時地發(fā)現(xiàn)錯誤。在開發(fā)過程中,及時地發(fā)現(xiàn)和糾正錯誤十分重要。時間越長,這些潛在的錯誤就越容易“發(fā)酵腐爛”,最終導致開發(fā)的失敗。游戲開發(fā)小組包括藝術家動畫師/造型人員編程人員音效/音樂設計
11、產(chǎn)品開發(fā)人員游戲開發(fā)所需要的資源通常,游戲開發(fā)需要3-5個程序設計人員3-5個藝術設計各種支持(產(chǎn)品開發(fā),市場推廣,音效師,音樂家,測試,系統(tǒng)管理員,法律顧問等)將近18個月的開發(fā)時間游戲開發(fā)基本過程游戲開發(fā)的基本過程設計人員:描述游戲內(nèi)容及其賣點開發(fā)人員:如何利用現(xiàn)有資源完成既定目標項目進度安排,充分調(diào)動積極性掩蓋復雜的細節(jié)實現(xiàn)與游戲程序員相關的任務游戲資源開發(fā)編輯工具/數(shù)據(jù)游戲引擎開發(fā)考慮注冊購買現(xiàn)有的產(chǎn)品具體實現(xiàn)(game play)定型測試/修改發(fā)布。游戲開發(fā)的輔助工具聲音數(shù)字轉(zhuǎn)換器音樂編輯器、編曲機圖形工具:Photoshop等攝像頭視頻采集卡圖形庫:包括建模和繪制游戲引擎。游戲引擎
12、技術(1) 游戲引擎技術的出現(xiàn)是游戲程序設計技術發(fā)展的里程碑之一,并已成為當前計算機游戲開發(fā)的關鍵技術和核心平臺。它也是軟件工程、專業(yè)化分工和游戲產(chǎn)品的獨特文化性要求在游戲開發(fā)的綜合體現(xiàn),對游戲產(chǎn)業(yè)的發(fā)展起了巨大的推動作用 游戲引擎的意義游戲編程人員就不需要從頭做起,而是可以直接調(diào)用游戲引擎提供的強大功能,高質(zhì)量地在很短的周期內(nèi)開發(fā)出新游戲,適應游戲產(chǎn)業(yè)的激烈市場競爭游戲引擎促使游戲編程人員進行更為專業(yè)化的分工 高水平的編程人員注重于性能要求很高的游戲引擎的開發(fā),一般水平的游戲編程人員則利用游戲引擎進行具體的游戲產(chǎn)品的開發(fā) 游戲引擎技術(2)游戲引擎相當于游戲的底層框架平臺??蚣芷脚_搭好后,只
13、要往里填充內(nèi)容就可以了。如果把游戲引擎比擬為一個“游戲操作系統(tǒng)”,那么最終的游戲產(chǎn)品則可比擬為一個個具體地運行在“游戲操作系統(tǒng)”上的應用程序。游戲引擎已經(jīng)發(fā)展為一套由多個子系統(tǒng)共同構成的復雜系統(tǒng)從建模、動畫到光影和粒子特效,從物理系統(tǒng)、碰撞檢測到文件管理、網(wǎng)絡流量控制等,包括專業(yè)的編輯工具和插件,幾乎涵蓋了游戲程序設計過程中的所有重要環(huán)節(jié)游戲引擎技術(3)游戲引擎的終極目標游戲編程的透明化,讓游戲的創(chuàng)意人員也能直接實現(xiàn)游戲根據(jù)創(chuàng)意,直接生成代碼著名的商用游戲引擎Doom QuakeUnrealLithTech 游戲引擎技術(4)Ogre引擎開源 /projects/ogre面向?qū)ο蟪橄蟮讓訄D形
14、庫(D3D,OpenGL)靈活的渲染引擎 (不是一個完整的游戲引擎)大量采用C設計模式以插件的形式方便擴展OGRE的功能提供了抽象的渲染API,封裝了底層的圖形庫。游戲引擎技術(5)Ogre引擎的學習讀Ogre的源代碼,學習Ogre的設計和編碼方式解析Ogre的結構和功能熟悉API調(diào)用嘗試改變Ogre的demo游戲引擎技術(6)Unity3D引擎閉源、收費($400/$1500)絢麗的3D渲染效果強大的跨平臺特性Web平臺、PC平臺、Mac平臺、iOS平臺、Flash平臺、Android平臺、XBox360平臺、PS3平臺、Wii平臺可開發(fā)所有種類的游戲電腦游戲、網(wǎng)頁游戲、網(wǎng)絡游戲、手機游戲編程腳本JavaScript、C#、Boo游戲程序員的基本素質(zhì)要求軟件設計的基本技能豐富的知識面 軟件工程、數(shù)據(jù)結構、數(shù)據(jù)庫、算法設計等2D/3D圖形學、人工智能、音頻/視頻處理 、人機交互、計算機網(wǎng)絡堅實的數(shù)學和物理基礎:線性代數(shù)、歐氏幾何、牛頓物理學經(jīng)驗和能力綜合運用各片斷技術的經(jīng)驗不斷學習新技術的能力游戲的開發(fā)常常受限于運行時間或者存儲空間等資源因素,但卻處處追求高效率和高性能。其他游戲引擎,如DirectX,OpenGL, Ogre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老顧聘用合同范本
- 先付款后供貨合同范本
- 保險投資合同范本
- 加工生產(chǎn)勞務合同范本
- 京東物流折扣合同范本
- 上門電纜轉(zhuǎn)讓合同范例
- epc裝飾工程合同范本
- 代人取藥兼職合同范本
- 不賒銷合同范本模板
- 化肥銷售協(xié)議合同范本
- 數(shù)字電子技術(武漢科技大學)知到智慧樹章節(jié)測試課后答案2024年秋武漢科技大學
- 綜合應用能力事業(yè)單位考試(綜合管理類A類)試題及解答參考
- 阿爾茲海默病的家庭護理
- bim技術課件教學課件
- 腹水形成的原因及治療
- 單晶爐車間安全培訓
- 高中地理必修第一冊期末試卷及答案-中圖版-2024-2025學年
- 護理核心制度測試題+參考答案
- 機械制造技術基礎(課程課件完整版)
- 《2023版CSCO卵巢癌診療指南》解讀課件
- 【醫(yī)院藥品管理系統(tǒng)探析與設計(論文)10000字】
評論
0/150
提交評論