如何成為一名自豪的遊戲程式設計師

langeldep發表於2011-08-26

什麼工作最苦,程式設計師的工作最苦,我們號稱軟體民工。

什麼程式設計師工作最苦,遊戲程式設計師工作最苦,我們天天加班,拿著微薄的工資,號稱為了理想而奮鬥。

軟體民工,其實有點高抬自己了。其實我們除了衣服領子看著比農民工乾淨點外,我們內心的壓力比農民工高多了,我們必須天天學習新語言新演算法新架構,這種痛苦也只有程式設計師才能夠理解。

但是既然是為了理想而奮鬥,就要有很多的人為此而前仆後繼的付出。本人用切身的體會希望有志於做遊戲程式設計師的人少走彎路,或者給新人一個進入遊戲行業的方向。

也許你正在為成為一個遊戲程式設計師而找不到方向,因為你喜歡遊戲,希望也能製作自己的遊戲,但是你無從下手,更無人給你指點迷津,那就希望我寫的東西對你有點幫助,有幫助了就頂一下。

要成為一個遊戲程式設計師,首先你必須成為一個程式設計師,否則那是空談。只有你成為了一個“程式設計師”,你才有可能成為一個“遊戲程式設計師”,遊戲程式設計師要比其他行業的程式設計師付出更多艱辛的努力,要學習更多的知識,面臨的挑戰和困難也是你無法想象的。你不進入這個行業,可能你是無法體會的。

如果你連成為一個程式設計師的勇氣都沒有, 那肯定無法成為一個遊戲程式設計師了。一個合格的遊戲程式設計師一定是一個合格的程式設計師,需要具備程式設計師的基礎知識。而一個程式設計師,必須有紮實的資料結構,作業系統,軟體工程知識。語言你還必須掌握C/C++,否則一切將成為空中樓閣。

如果你目前只是一個普通的程式設計師,或者你還只是一個新人,但是你希望進入遊戲行業,那麼你不要著急學遊戲相關的東西,還是先準備成為一個合格的程式設計師,在考慮進入遊戲行業磨練吧。

首先你必須熟練掌握C/C++語言,至於要如何成為C/C++程式設計師,我部落格裡面有相關的文章,你可以看看。當你熟練掌握了C/C++語言,資料結構,作業系統的基礎知識後,下來最好也是最快的辦法就是應聘一個遊戲公司,進入到這個行業裡面去向高手學習,向同行業的人學習,去做一個完整的遊戲,讓別人帶著你一步步走下去,這樣你才知道你下來該從哪裡入手,從哪裡深入進去。

遊戲開發涉及到的東西太多太雜,是一個包羅永珍的複雜的系統工程,一個簡單的網路對戰棋牌遊戲的程式碼量都在20萬行以上。

下面我從框架上講講遊戲開發的底層引擎吧。

遊戲開發引擎有哪些?

1.圖形引擎(這是最核心的最複雜的,程式碼量也是最大的。本人推薦研究OGRE或IRRLICHT。國內用得最多的開源圖形引擎就是OGRE了,OGRE有良好的架構,程式碼質量和可讀性都非常不錯,值得研究。下來對初學者而言irrlicht這個3D引擎不錯,程式碼可讀性很好,關鍵是程式碼量少,簡單,容易看懂。)

2.聲音引擎(聲音引擎相對簡單得多了,推薦大家使用FMOD這個免費的引擎,很多世界一流的牛逼的遊戲都是用得這個聲音引擎,使用簡單方便,效果也不錯,支援的功能也很多。)

3.物理引擎(物理引擎在國內的遊戲裡面用的不多,一些物理效果基本都是3DMAX直接建模做的動畫,而不是程式去計算的,如果你的遊戲需要物理引擎的支援,推薦使用ODE這個物理引擎。)

4.遊戲引擎(遊戲引擎一般是一個遊戲框架,裡面封裝了對影像,對聲音,對網路,對指令碼等的一整套封裝解決方案,另外還附帶各種工具等,比如地圖編輯器,粒子編輯器,關卡編輯器,聲音編輯器,指令碼編輯器等,遊戲引擎可能還包括伺服器端對資料庫,對尋路演算法等的封裝。總之是一個非常複雜的系統工程。)

5.網路引擎(網路引擎需要根據不同的遊戲型別做不同的封裝,可能需要支援P2P功能,並且要對大規模大併發提供穩定的支援。開源的網路引擎推薦libevent, ACE,libev等。ACE比較龐大,學習曲線陡峭,但是一旦掌握了會非常好使,libevent比較輕量級,效率也非常高效。)

6、UI引擎(顧名思義,就是遊戲裡面供玩家點選的各種按鈕,比如揹包,血條,聊天框等,遊戲行業中用的比較多的是CEGUI這個開源庫,不過CEGUI並不能完全滿足遊戲的需求,需要對其進行二次開發和封裝,工作量也比較大。)

7、指令碼引擎(在遊戲行業裡面用得最多的指令碼就是lua了,另外python用的也比較多。指令碼引擎可以對封裝了讓策劃直接使用,通過視覺化的介面設定NPC的邏輯,屬性值等。)


看到上面這麼多的引擎,大家不要迷糊,每個人的發展方向不一樣,一個人不可能把所有這些東西全部掌握,在遊戲公司裡面,可能你只需要掌握其中的一種,鑽研到精通的程度即可。在遊戲公司裡面有專門負責3D引擎影像渲染的人,有專門負責遊戲邏輯的人, 有專門負責UI邏輯的人,還有專門負責資料庫的人,如果你只懂C/C++語言, 那你可以應聘遊戲邏輯程式設計師,或者應聘UI程式設計師。進入到這個行業,你再學習具體的圖形引擎渲染知識。另外遊戲行業常用的演算法你可以直接從網上找資料,用得最多的可能要算尋路演算法了,無論是2D遊戲還是3D遊戲,都牽扯到尋路,尋路演算法大家可以上網找資料,3D遊戲中三維空間的尋路演算法就更復雜了。總之作為一個程式設計師,要多動手寫程式碼,除錯程式碼,沒有什麼捷徑可走。


推薦幾本個人感覺不錯的遊戲書籍

Windows遊戲程式設計大師技巧

3D遊戲程式設計大師技巧

這兩本書從底層的原理入手講解了遊戲開發的基礎知識,對遊戲入門者非常實用。


相關文章