游戏程式设计初学者常遇之疑问

上传人:ldj****22 文档编号:35911518 上传时间:2018-03-22 格式:PDF 页数:13 大小:357.24KB
返回 下载 相关 举报
游戏程式设计初学者常遇之疑问_第1页
第1页 / 共13页
游戏程式设计初学者常遇之疑问_第2页
第2页 / 共13页
游戏程式设计初学者常遇之疑问_第3页
第3页 / 共13页
游戏程式设计初学者常遇之疑问_第4页
第4页 / 共13页
游戏程式设计初学者常遇之疑问_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《游戏程式设计初学者常遇之疑问》由会员分享,可在线阅读,更多相关《游戏程式设计初学者常遇之疑问(13页珍藏版)》请在金锄头文库上搜索。

1、遊戲程式設計初學者常遇之疑問 原文刊登於遊戲設計大師 1999 四月號 作者:陳昇瑋(原名 陳寬達) 網址:http:/www.iis.sinica.edu.tw/swc/index_c.html DirectX的角色 DirectX,這讓初學者最搞混學習重心的罪魁禍首。 DirectX 在遊戲開發者的歡呼聲中帶著一身眾人的期許誕生後,由於它的版本新速遠比作業系統還快 , 因此 , 使用者得自至網上下載或由光碟安裝DirectX runtime library,DirectX 就是由此吸引使用者的目光而得聲名大噪,就如同 ActiveX,COM,OLE一般,即使曉得它究竟是麼玩意,至少也能琅琅

2、上口,輸人輸陣嘛。 緊接著各大書局的電腦書區剛始成批出現打著 “Games SDK“ 及 “DirectX“ 名號的書籍,讓這些對遊戲設計有著憧憬夢想卻還得其門而入的遊戲愛好份子們誤以為 DirectX是遊戲程式設計最重要的一環。事實上,如同衣裝之於人,DirectX 之於 Game Application 的關係僅止於外表的打而已,至於內涵則是另話,與人的衣裝,Game Application 的 DirectX 同樣是八竿子打著邊。 DirectX 中,最重要的當屬 DirectDraw,它是屬於吃可,用型的,也就是,微軟沒有推出 DirectDraw 這套程式庫,堂堂一個功深厚上可飛天下

3、能遁地的程式設計師也照樣沒輒,無法突破 GDI 及 HAL 這些層層的防護直接控制顯示卡,唯有如此才能得到最高的畫面顯示效能呀 。 也就是 , 我們無法依賴DirectDraw而擁有DirectDraw所提供的功能及效。至於另一個重要的元件,Direct3D,也與顯示卡驅動程式直接私1 通,才能獲得快速的 3D 繪圖效能,同樣屬於吃可型(除非你偏好 OpenGL)。其它的元件,如 DirectSound,DirectMusic,DirectPlay,DirectInput 及 DirectSetup 等,都大大地方我們撰寫遊戲程式所花費的功夫,你也可以使用它們而作到一樣的功能,過既然別人都為我

4、們做的好好的,除非有充分的由(如自發展快速而穩固的TCP/IP 線函式庫),否則去使用還還真是自找苦吃:p 另外,雖然 DirectX 是真正構築於 COM (Common Object Model) 上的套件,我想是為低學習門檻及使用的方性,設計者將較容讓 COM 初學者困惑之處包裝起,讓你必先閉關修 COM 三後才能使用 DirectX,就當作是一般的物件導件程式庫用即可。所以當你迫急待想感受 DirectX 的 power 時,可以先暫時 COM,用再;當你已能活運用 DirectX 的好處時,可別忽在底層辛苦出的 COM,是它的功才讓 DirectX 能以二進位形式突破原始碼種的限制讓

5、你可以任意程式語言工具輕鬆享用物件導向程式設計的好處,對這大功臣還是可熟悉熟悉唷。 嗯,回到原題,提供極欲入門遊戲程式設計的各位一經驗談,必花太多的時間錢及精神在學習鑽研 DirectX 的微末細節,遊戲程式設計關鍵之處莫過於整個遊戲的核心製作及內容設計,相較之下,DirectX 真是比較輕鬆愉快的課題呢。試想: 以遊戲程式設計員的角瞧,對 DirectX 是 “user“,使用 DirectX 的 API; 而對遊戲核心及內容,是 “designer“,要設計高效運作好的核心及豐富迷人的內容滿足遊戲玩家們,你覺得,學習的重心該放在哪呢? 噢,順一提,直到現在,我仍認為對稍有經驗的程式員,學習

6、 DirectX 最好的教科書即是 DirectX SDK 裏頭附的文件,厚厚幾百頁,一再寫一寫,絕大部分 DirectX 的馬步工夫是可以這樣就學得的。 開發環境的選擇 對於許多剛接觸 Windows 程式設計的新手而言,要在各家法紛云、眾多開發工具強伺的環繞之下,選擇一個明智有把握又最適合自己的開發工具的可算是最難的一道入關匣2 門。啻是新手,就許多手也常執著於同一套工具軟體,可使用鍾愛的工具埋頭苦幹,無視於身旁方好用的解決方法,即使它可以下開發者三倍的工作時間。開發工具確是這樣重要的一項選擇,選的好,可讓你天天有時間陪陪友看看電視逗逗小狗,萬一幸選到難學難用難寫或者根本適合該專案的開發工

7、具,就有無盡的漫漫長夜等著你囉。 常跟朋友聊起,面對開發工具及程式語言的選擇,約可將所有的程式員分為三大: 新手型 對所有的開發工具程式語言甚至開發平臺全然陌生,只是大聽過一些開發工具的名稱,而且還經常背錯,如 “Virtual C+“, “Virtual Basic“, “Dephli“, “Borland C Builder“ 等等。這個族群所佔的比最高,也往往是在網壇上詢問 該學麼程式語言? 我想寫遊戲,該用麼語言?這問題,甚至常是引發程式語言及開發工具優辯的導火線,雖然是懵懂無辜的。 專家型 所謂專家,即是訓有素的.呃,技術實高人一等的.呃,嗯,專家。他們通常精通一種開發工具,獨衷一派

8、程式語言,擅於撰寫特定域的程式,該開發工具提供的函式庫,framework 滾瓜熟。但,卻往往獨衷特定工具及語言,甚至帶點宗教式的狂熱,這型的玩家常是網壇上語言及工具辯的超級打手。 無入而不自得型 他們往往會熟悉至少三種以上的開發工具及程式語言,並將火集中在與語言無關的系統呼叫 (API)。於是,開發 Client/Server Database 專案時,拿 Delphi 資庫3 元件; 撰寫遊戲時 , 裝起 C+Builder 下載 DGC 元件刻拼湊出一個遊戲外框; 專案用到 VxD,WDM 或 kernel mode driver 時,捲起袖子拿出 SDK,DDK 加上 Visual C

9、+,再買套 VToolsD 或 Driver:Work 即動工。無所為無所為,執著於任何開發工具及語言,自然會被任何公司的規劃(如 MS 的 VBA 吃遍天下)或美好遠景(如 Inprise的 Information Network)等解決方案所羈絆,而隨波逐。 現在有許多電腦玩家常由自主地對自己所鍾情的作業系統、開發工具、應用軟體甚至遊戲及軟體公司產生幾近宗教崇拜式明究的狂熱。在此情況下,很容去找到一個貌似敵對的對手反,以堅定自己的信仰、壯大自己的聲勢,如 PC vs MAC、FreeBSD/Linux vs Microsoft Windows、Visual C+ vs C+Builder、

10、Delphi vs VB 等等。 在情況越益嚴重無法遏抑其勢的今日,只能期待點醒一些狂熱份子,擁 X 反 Y 並沒有麼對,但是: 一個人是為有宗教信仰而驕傲、自滿,甚至因此鄙薄無信仰的人,或動輒排斥與他信仰稍稍同的人,表示他自己還沒有找到信仰,所以,他也在他自己鄙薄和排斥之。 楊牧 TANet 一位大哥級的人物也曾語重心長地:科技的出現應該是要為人服務的,你盡可以擁抱 X 痛罵 Y,過記,知己知彼百戰百勝。這是看到網上一堆保護模式、檔案系統、系統軟體、排程問題、虛擬記憶體都知何物的網友痛罵 Windows 作業系統, API、DLL、物件導向、application framework 都摸清

11、脈絡的新手卻大聲疾呼推或反對某某程式語言或開發工具的怪現所發的無之語吧!吾亦有同感。 對於我想寫遊戲,該用麼語言?這常也會永遠存在的問題,我曾在網上過這樣的回答: Visual C+ 最適合 、 VB 好學,所以 OOXX 等等十分 no-sense,是負責任也為過的言。想於空談,我想還是談談我自己的看法好,就像人戰士通常拿雙手巨劍,侏儒通常肩著巨斧,而魔法師無可選擇地手執魔杖一樣,選擇一把稱手武器還是得視個人的情況及需求身訂作: 4 一.學習動機 遊戲程式設計是程式設計各域中,狂熱及想成分比超高的一群,甚至有許多各種性質的程式設計師,當初都是因為熱衷遊戲設計,而就這樣持續掉入程式設計的漩渦呢

12、。學習動機是毫無疑問地: 想要具備撰寫遊戲的程式功。過,就依遊戲種的同,日後學習的方向與重心也迥,如 2D RPG,重點在於畫面設計及故事劇情,外加 DirectDraw 提供的快速捲軸能; 3D 動作遊戲,Direct3D 或 OpenGL 是跑掉的,對於圖學的,演算法及應用面,也最好花心思時間去努研究學習; 再如多人線棋遊戲,DirectDraw,Direct3D,DirectInput 我想都用太上,好好研究提供線功能的 DirectPlay 或發展一套穩固的 Client/Server Socket Library 才是重點。 二.目前基礎 目前基礎是決定工具及語言上手的最重要因素。許

13、多人在高中時代學 QB,之後接著玩 VB;有些大學的大一計概課程教的是 Pascal,接著可順進入 Delphi。必須承認的是,Basic 確實是開發大型程式適當的語言,它的先天,如執速慢,是物件導向語言卻硬加入物件導向功能(事實上,它只可算是 object-based,而非 object-oriented),甚至使得微軟為 Visual Basic 一個語言,將 COM 規格做些修改以配合之(如 IDispatch interface),即使有微軟如此強而有的大哥極護盤,先天缺陷仍舊無法去除,除學外,實在找出太多該使用 VB 的由。VB 雖然可以使用 DirectX,但還必須透過其它程式庫的

14、幫忙,因此除 VB,我很贊成就配合你目前的所學,會 Pascal 就用 Delphi,愛用 C+ 就請用 C+Builder 或者 Visual C+。 原本是一張白紙,還未學習過任何程式語言呢?那也好,請下段,視你的個人偏好囉。 5 三.個人偏好 Basic,C/C+,Object Pascal 這三個程式語言,雄霸著整個 Win32 程式設計域。Basic 學用,Pascal 嚴謹明確,C+ 強大複雜,各有各的擁護者及由。Basic 簡單是因為微軟希望 VB 及 VBA 維持在簡單到任何想依靠電腦做自動化程序的電腦用戶都可以輕地上手的程,因此雖然功能斷上疊,語言本身維持著 Basic 的所

15、有特性。過缺乏物向導向的支援及執速的緩慢,確是超級無敵讓人沒的致命傷,因此我會建議所有的初學者,能有能夠接受學習其它的語言如 C+/Pascal,轉移陣地為上策。 C+ 的強大無庸致疑,template, exception-handling, RTTI, Stardard Template Library 等功能斷地加入翻新,由於使用者眾,要求必多期望必高,再加上 C+ 本身定位於功能強大範圍廣泛的通用性語言,如江海之納百川,C+ 自然日益複雜。著名的雜誌 C+ Journal 上曾有段話讓我印象頗深,如果你認為 C+ 還算太複雜,那麼請你解釋何謂 protected abstract virtual base pure virtual private destructor,何你又會在何時需要它呢?(Tom Cargill, C+ Journal, Fall 1990) 雖然是最的 OOPL,但除非你有足夠的耐心及精神全盤掌握它,否則輕嘗試的後果可能只會得到一臉的挫折。當然囉,十分的複雜也帶十分的及同的趣,我有一位朋友,工作上使用其它語言,但將C+ 當作興趣把玩,跟酷企鵝一樣酷呆。 Pascal,其實應該是 Objec

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号