[游戏入门基础]淺談遊戲程式設計入門 - [概論篇] 

2007-01-08 10:38 发布

引擎学习交流 /[参考文档]
4381 0 0
『我想做遊戲!』

        『我的夢想就是做出一個怎樣怎樣的遊戲..

        我們之中的許多人從小就是玩遊戲長大的,遊戲是人類的天性與本能;人類的「遊戲心」自古至今沒有改變過,只是不停地在演進。從最原始單純的運動競賽,到今日各種各樣的電子娛樂,莫一不是為了滿足人類的「遊戲心」。遊戲的理由,或許你我心中都有一個不盡相同的答案,但是它的本質始終是相同的 — for fun。然而在玩著遊戲的我們之中,開始有了一群人,不滿於現存的遊戲世界與遊戲規則。「那麼我們就自己創造一個新的世界吧。」他們想。於是世界的命運巨輪緩緩的轉動,在人類的遊戲史上,又寫下了嶄新的一頁。

        『嗯?你也想加入他們?..... 那你會什麼?』

        『無比的熱誠,學習力強,有潛力,喔,還有一大卡車的好點子.......?』

        工作、興趣、賺錢、養家活口、理想、夢想、偉大的抱負、台灣的史克威爾,無論你的理由是什麼,無可否認地,做遊戲這一行的確是有種無可置信的超凡魅力,使多少人前仆後繼的夢想著投入這一行裡。若以現今台灣的遊戲公司來講,一般最常見的核心職稱有:企畫、美術及程式三種類。如果你的夢想或心願或目標剛好是程式,遊戲程式設計的話,那麼我必須要說:「你或許選擇了一條最難走的路了。」

        在許多電子討論版上,不時總會看到有發文者問:「請問遊戲設計如何入門?」「請問遊戲設計的入門書籍...」諸如此類的問題。可惜我到目前為止,還沒見過任何一篇較有系統性的專文,能就各種不同的角度,給予提問者一個適當的答案。我想這也是因為問題的方向太大、涵蓋範圍太廣,要做出完整的答覆,也不是簡單的三、四十行字句可以完全表達的。想當初,自己也是一路跌跌撞撞的到處提問題、埋頭苦讀了好一陣子,再把努力後的成果拚拚湊湊起來,勉強才為略窺得遊戲程設的一點朦朧身影。所以,我想我能體會到,要入這一行門有多難多辛苦。

        『路很長。不前進,不如趁早回頭。』

        在這一系列的四篇文章中,我將由淺入深逐一論述,做一個遊戲程式設計者,所應培養具備的基礎能力。聲明在先,我,作者本人,目前並非任職於遊戲業界中,也從未參與過任何遊戲的開發過程。在文章中所提到的一切論述與觀點,皆是自己由自學過程中整理歸納出來的方法途徑,或許並沒有完全的信服力。在業界前輩們的眼光看來可能是野人獻曝、不值一哂;不過我也希望我致力寫出來的這些文章,還是能對一些剛入門、或不知從何入門的新手,有些微的幫助與貢獻。也可以算是拋磚引玉,希望先進前輩們不吝批評指教,寫出更好的文章,造福有心人。

 

 

 

Make Sure What You Want

        其實,遊戲的程式設計,並不是那麼難的事。可以在閒暇之餘,找本 Visual Basic 的好書來讀讀,再稍具一點遊戲程設的概念,要一個人做出一些很不錯的小遊戲也不是什麼難事。「嗯?那為什麼我還在這邊正經八百的說著廢話?」至此有兩種可能性存在:一,我是個多話又閒閒沒事做的顯然十足大笨蛋。二,我是個有著不同目的的潛伏型大笨蛋。

        我覺得,無論要做什麼,先弄清楚「自己真正想要的」是什麼,是一件非常重要的事情。寫遊戲,可以是三五好友在課餘工作後,大家共同投入的一種興趣;可以是程式高手無聊時自娛娛人的創作共享軟體;當然,也可以是你未來的職業、理想的開端,或賺大錢的利器。好之者不如樂之者,工作即樂趣,樂趣即工作,可能不再是一種無知的幻想。只要做好準備,歷史的新頁隨時等著你去寫下。

        政府不支持、父母不願意、學校不重視、資源不充足,從小在這裡長大的我們,接受這個社會的教育,接受傳統價值觀的灌輸,都可以深深的體會到,走這一行的人將會遭遇到多大的阻力。「但是,那又怎樣?」與其怨天怨地怪自己生錯地方,何不從「自己」開始努力?只會空談、只會埋怨、只會夢想,是到不了任何地方的。如果每個有心的人,都能從自己開始,點點滴滴的累積實力,我相信這個「大環境」的風向,也會有改變的一天。

        『是的,這一系列文章的主要目的是在於,培養足以踏入遊戲程設業界的一些基本能力。』

        因此,我期望能提供給已經確立志向、卻不知如何入門的新手,一條最佳化的路徑。省去一些新手可能會有的獨自摸索與嘗試錯誤的時間,早日踏入這片苦海,喔不,是美麗的樂園,攜手共創另一個島國奇蹟 : p

        附註兩項很重要的說明:在之後的文章裡,可能會到處充滿我個人的偏見,例如請愛用 C++,如此之類的專斷用語。如果因為我的文章引起任何的偏頭痛或上吐下瀉等不適症狀,歡迎寫信來罵我。我一定會虛心受教。另一項是,在這一系列的文章中,主要我是以培養「即時3D遊戲程式設計」入門基礎的能力來撰文的。所以,如果你是希望知道多人線上遊戲的設計,或有著美美圖片的2D遊戲設計,那你可能會稍微失望了。但是大部分學習的道理都還是相通的,所以應該還是可以參考看看。關於為什麼選擇「3D」作為學習目標的原因,我就不在此贅述了,或許在之後的其他文章再談吧。

        『路在眼前拓展開來,無止境的向地平線的那端延伸而去,始終無法看清這條路的終點有些什麼。經過這條路的旅人們猶豫著。』

        你只能做出選擇。要走,或不走,端看自己個人的決定。我希望我的文章扮演著引路人的角色,為迷途的旅人們一解前路的疑惑。在這一系列文章中,我不會教你「如何寫出一個叫好又叫座的遊戲」,不會「教授什麼高深的遊戲程式寫作技巧」。也請不要花費力氣和我爭論「做出好遊戲不一定需要什麼高深的技術」或其他之類的控訴。

         『It's none of my business at all; I just show you the way.

 

 

 

Basic Ability Requirement

        在學習遊戲程設的路上,一開始所應具備的最基本能力是什麼?沒錯,就是一般最令學生頭痛的「英文」和「數學」。「那到底是為什麼?」或許你已經猜想到一些顯而易見的原因,現在再讓我老生常談的來補充一下,你應該趁你還有機會的時候,好好地和他們做個好朋友的理由。    對一個程式設計師來說,最重要的基本素養之一,就是就是吸收消化知識的速度與能力。在遊戲程設的領域中,各種技術,尤其是3D圖學,的進步往往是日新月異,能夠快速地將新來的知識轉化為自己的智識,得以應用於做遊戲的過程中,我想是一件非常重要的事。偏偏不巧,最新的知識原理或書籍文件,往往都是以英文作為發表的語言;更不巧的是,我們生長的島國不是以英文作為母語。因此,對於英文閱讀能力的培養,絕對是相當重要且首要的事情之一。從今天起,不要總是一直詢問「有沒有中文的某某書籍或網站」,是時候開始訓練自己,對英文這語言的敏銳度與習慣性了。

        嗯,那數學呢?它對遊戲程式到底有什麼重要性?過去很長一段日子以來,我也一直在問自己這個問題。直到我真的遇上它為止。或許很多人都聽過,空間向量、矩陣、線性代數,這些知識可以說是3D圖學的基本架構。沒錯,可是需要瞭解多少呢?不是只要會用、記得它的規則就行了嗎?一般來說,的確這樣就夠了。然而,在你寫作程式的經歷日漸增長後,也許會在某個夜闌人靜的深夜裡,突然問起自己:「為什麼這個方法是這樣作用的?」

        『想創造規則的人,必先瞭解規則。』

        瞭解所謂「實做」背後的理論基礎,一定會得到什麼很大的好處嗎?那也未必。但是瞭解它可以帶來另一種不同於寫程式的滿足感。或許你會感到手中握住的知識,因此變得踏實許多。同樣的理論,可能可以用數種到數十種不同的方法來實做;但無論方法或介面怎麼改變,只要掌握住它的「本質」,自然可以找到數種方法中的最佳化答案。我們可以把數學看作一種嚴謹的思考邏輯訓練,磨練一個人的抽象化組織能力;任何最具體化的理論方法,都可以解構成數學中最基本的 model 來解釋與描述其行為本質。

        總而言之,在你仍擁有機會的時候,不要放棄學習它的動力,無論是微積分、離散數學、工程數學、機率統計也好,雖然學習數學的過程可能是最充滿痛苦,而成果可能是最隱晦難見的,但也許在某天的某個場合,它會以某種意想不到的形象,蹦出來幫了個大忙呢。

        『OK,確定你站穩腳步了嗎?我們要開始囉!』

B Color Smilies

你可能喜欢

[游戏入门基础]淺談遊戲程式設計入門 - [概論篇] 
联系
我们
快速回复 返回顶部 返回列表