總結半年的遊戲開發經驗
如有轉載,請申明:
轉眼我做遊戲開發已經半年多了,回顧這半年,印象最深的是當初一心想學遊戲什麼都阻擋不了我的決心。記得那會為了學遊戲,網上找了好多資料,才確定從cocos2d入門。然後下了好多入門的電子書和視訊。那會剛好是學校課程最多的一個學期。基本每天都是滿課,一週晚上4天有選修。為了擠出時間學習,養成了一個習慣,吃飯的時候看一集教學視訊。這個習慣持續到現在,感覺還不錯。好了,不多說往事了,這裡給新人們介紹一下游戲開發的經驗。
1 遊戲開發是什麼樣的
這裡說的遊戲開發是指客戶端開發,伺服器端的沒接觸過。
我理解的大概遊戲開發過程是 策劃核心玩法-確立專案(大致和軟體開發的流程差不多,如果是自己做一個十幾天工作量的小遊戲,就沒必要了
談談具體開發分工。大致分為策劃、程式、UI、原畫、建模、特效、音效。還可以往細分,比如策劃分為總策劃、關卡策劃、數值策劃等。什麼?你跟我說只有你一個人做遊戲?那麼恭喜你未來的路異常艱辛。並不是說你很難身兼所有重任,主要是因為你不在歪(mei)果(guo)。作為獨立開發者,最好不要惦記著國內這塊蛋糕。
2 做遊戲開發需要會什麼
如果你只是負責客戶端程式這塊,那麼大概是掌握一個遊戲引擎。
大致分為哪些類的知識呢?(因為我只做過2D遊戲,這就是按照2D的範疇來說的)
遊戲框架基本原理、影象處理API、遊戲引擎的座標系、物理引擎、動畫處理
下面具體介紹一下我所學過了兩款遊戲引擎。
Cocos2d:這款引擎是開源的程式碼框架,還有cocos studio編輯器,2016年還推出了元件化的Cocos Creator。這引擎和傳統的軟體開發很像,通過程式碼來建立場景、圖層、精靈等。對於熟悉軟體開發的人來說,上手應該不難。這引擎用的是c++,所以熟悉c++的學cocos2d也是比較合適。但今年cocos推出了Creator,採用的是js作為開發指令碼,底層還是用的cocos2d-x那套程式碼。如果是用cocos2d-x直接開發的話,可能要面臨以下問題:有限狀態機需要自己寫,物理引擎用起來比較麻煩,官方的動畫編輯器不太好用,要預覽遊戲效果需要重新編譯執行,容易導致記憶體洩漏等問題。不過也有相應的優點,執行效率高,靈活性強等。
Unity3d:這是一款元件化的遊戲引擎,用來快速開發小遊戲比較合適。採用的是c#作為主語言,當然也支援js。引擎最大的優點當然是元件化,很多東西只需要在面板上設定,不用寫程式碼去實現,可以說省了很多事。對於建立一個場景來說,只需要選單中點選一下儲存到一個資料夾中就建好。當然這不是最大的優點,最大的有優點是,重用性得到了飛躍性的提升。對於一個指令碼,只要內聚不是太鬆散,我們可以用很多次,而在cocos2d-x中,則需要精妙的設計才能實現。當然缺點也很明顯,比如靈活性差(相對的),打包的安裝包體積大,執行效率低等。
3 怎麼學習效率高
從我閱片無數的經歷來看,先找個簡單的視訊入門為好,因為有人給你講比自己看書簡單。我認為入門視訊講得好的,一般都不會把全部瑣細的知識都提出來,這也符合人的認知習慣,先整體,再細節。如果一開始就告訴你當一個優秀的程式設計師,需要學.........此處略去幾張A4紙。大部分人都會被嚇跑。一開始學得簡單點能讓你更有信心走下去。
入門之後,要做的是先找個小專案練練手,當然專案中不可能所有知識點都照顧到,但用來熟悉常用的知識點已經夠了。
當你可能輕鬆的寫一些小專案的時候,就可以開始看書補充遺漏的基礎知識。然後就是找進階的書。進階的視訊其實也可以,但是比較少,不好找,你能找到當然學起來更輕鬆。當你把這些知識補充完之後,可以嘗試著大一點的專案(這裡略去專案管理方面的東西,作為新手,應該先學會寫程式碼。等你自己覺得專案難以維護的時候,自然會去學習規範管理的東西啦)。
最後在這裡長嘆一句,阿爸終於可以從坑中“逃出生天”了。
遊戲有風險,入行需謹慎。