如何成為一名自豪的遊戲程式設計師
什麼工作最苦,程式設計師的工作最苦,我們號稱軟體民工。
什麼程式設計師工作最苦,遊戲程式設計師工作最苦,我們天天加班,拿著微薄的工資,號稱為了理想而奮鬥。
軟體民工,其實有點高抬自己了。其實我們除了衣服領子看著比農民工乾淨點外,我們內心的壓力比農民工高多了,我們必須天天學習新語言新演算法新架構,這種痛苦也只有程式設計師才能夠理解。
但是既然是為了理想而奮鬥,就要有很多的人為此而前仆後繼的付出。本人用切身的體會希望有志於做遊戲程式設計師的人少走彎路,或者給新人一個進入遊戲行業的方向。
也許你正在為成為一個遊戲程式設計師而找不到方向,因為你喜歡遊戲,希望也能製作自己的遊戲,但是你無從下手,更無人給你指點迷津,那就希望我寫的東西對你有點幫助,有幫助了就頂一下。
要成為一個遊戲程式設計師,首先你必須成為一個程式設計師,否則那是空談。只有你成為了一個“程式設計師”,你才有可能成為一個“遊戲程式設計師”,遊戲程式設計師要比其他行業的程式設計師付出更多艱辛的努力,要學習更多的知識,面臨的挑戰和困難也是你無法想象的。你不進入這個行業,可能你是無法體會的。
如果你連成為一個程式設計師的勇氣都沒有, 那肯定無法成為一個遊戲程式設計師了。一個合格的遊戲程式設計師一定是一個合格的程式設計師,需要具備程式設計師的基礎知識。而一個程式設計師,必須有紮實的資料結構,作業系統,軟體工程知識。語言你還必須掌握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遊戲程式設計大師技巧》
這兩本書從底層的原理入手講解了遊戲開發的基礎知識,對遊戲入門者非常實用。
相關文章
- 如何成為一名成功的程式設計師程式設計師
- 如何成為一名合格的(Java)程式設計師Java程式設計師
- 如何成為一名 Java 冠軍程式設計師?Java程式設計師
- 如何成為一名Java冠軍程式設計師Java程式設計師
- 如何成為一名專家級的程式設計師程式設計師
- 如何成為一名真正專業的程式設計師程式設計師
- 為什麼成為一名程式設計師?程式設計師
- 程式設計師如何成為一名自由職業者程式設計師
- 成為一名更好的程式設計師:如何閱讀原始碼程式設計師原始碼
- 你為什麼成為一名程式設計師?程式設計師
- 作為程式設計師,我們理應自豪程式設計師
- 職場10年之如何成為一名合格的程式設計師(上)程式設計師
- 如何使用搜尋技巧來成為一名高效的程式設計師程式設計師
- 如何成為遊戲行業的圖形程式設計師遊戲行業程式設計師
- 成為一名好程式設計師的關鍵因素程式設計師
- 成為一名程式設計師要做的幾件事情程式設計師
- 程式設計師,你自豪什麼程式設計師
- 我是程式設計師,我自豪程式設計師
- 別讓自己成為一名廢棄的程式設計師程式設計師
- 來自阿里的P7高階程式設計師教你如何成為一名合格的Java程式設計師阿里程式設計師Java
- 如何成為10倍速的程式設計師程式設計師
- 如何成為偉大的程式設計師?程式設計師
- [水文] 什麼原因讓我成為一名程式設計師程式設計師
- 如何成為真正專業的程式設計師程式設計師
- 如何成為一個糟糕的程式設計師程式設計師
- 如何成為一個卓越的程式設計師程式設計師
- UI培訓分享:如何成為一名優秀的UI設計師UI
- 10個習慣助你成為一名優秀的程式設計師程式設計師
- 如何成為高階java程式設計師Java程式設計師
- 如何成為一個程式設計師高手程式設計師
- 如何成為一名架構師架構
- 如何成為有程式碼潔癖的程式設計師?程式設計師
- 《演講之禪》助你成長為一名合格程式設計師程式設計師
- 如何成為更好的Java程式設計師?- javarevisitedJava程式設計師
- Java程式設計師如何成為優秀的架構師Java程式設計師架構
- Python書單|成為一名優秀的Python程式設計師Python程式設計師
- 程式設計師如何成為程式設計高手,並以此創業程式設計師創業
- 一名遊戲設計師的思考——遊戲性遊戲設計師