在學習游戲的時候就有意的搜索這方面的知識,知道游戲需要游戲引擎,引擎聽著很厲害,不過就是一個游戲框架。也許某一個游戲框架火起來了,就很流行了,不過我認為任何游戲引擎對小白來說都是有借鑒意義的。說起小白了,我給不同知識領域的人起了不同的名字,什么也不知道的叫小白,略微懂一些的人叫小灰,專業(yè)能應用知識的人叫做小黑,呵呵,暫時這篇文章是小灰給小白傳授知識的。回過頭來,cocos2d-x主要還是關注2d程序方面的制作,當然游戲比較實用,不過,你寫別的程序是完全可以的。
我在網絡上查閱了不少資料,慢慢的就總結出來了,一個引擎主要的就是四個方面,圖形系統,物理系統,網絡系統和音頻系統,這四個部件就構成了最基本的商業(yè)引擎。各種開源的引擎就是專注實現這些部分或者一部分,畢竟沒有資金支持,例如我所喜歡的orge就在圖形方面非常出色,其他的比如網絡就有些空白了。那么cocos2d-x都有那些部件呢。這個作為一個稍微成熟的流行的引擎四個部件都是有的。按照官網的描述,還有一個腳本部件。如圖
這張圖的地址在
http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v2/getting-started/architecture-and-directory-structure/zh.md
主要的就是六個平臺,Mac,Windows,Linux,Ios,Andriod,WP,當然還有別的,只不過這六個平臺用戶最多,所以寫程序關注他們差不多就沒有什么問題了,這里就要抱怨一句了,在高端的平臺上沒有一個是中國的,顯示出我們的路還好長的,沒有民族的產品啊。前幾天有意的查找一些這方面的信息,自主知識產權需要的時間何其多,COS系統卻說一兩年做出來,有點太吹了,怪不得人人不相信。
我也沒有吹牛的意思,不過是做過微軟的項目,再加上有意的打開過各種項目的代碼看過,例如cocos2d-x,linux,mysql,log4net等等開源的項目。其實沒有深入就是研究他們的目錄組織,一個大一些的項目目錄到底是怎么組織的,還不錯,沒有白費我不分白天黑夜的下載代碼,總結出了一點,僅供借鑒,一個項目的目錄主要分為三部分,第一部分就是本項目的關注。例如cocos2d-x的,主目錄就是cocos2d-x.也可以叫做核心的目錄吧,主要功能就是這個文件目錄了。再者就是部件目錄,很多項目是有一些可供選擇的部件來供用戶選擇的,例如dxut中的optional,cocos2d-x中的CocosDenshion.再者還有就是項目的擴展了,名字在各種項目里面幾乎都是extension。加不加s倒是小問題了,項目的擴展功能或者部件。這樣子項目的目錄就完成了。第二部分就是利用的別的庫了。比如你用qt庫,opengl庫,這些東西放到哪兒呢。就是external,這個在各種項目里面也是差不多。呵呵,第二部分就是這些了。第三部分就比較具體一些了,主要是小的方面。例如doc說明文檔的目錄,developer參與開發(fā)者的目錄,sample入門的例子程序目錄,license各種庫或者協議的利用許可,tools如果項目中利用到這些工具就放到這個目錄了。我見過的最大的項目程序20G,目錄組織和我說的也是類似的 ,不過會有一個Public目錄,一般存放sdk,不知道應該歸到哪部分,暫時不提。看了這些那么cocos2d-x的目錄就會很快的讀懂了,甚至再遇見別的項目的目錄也可以觸類旁通了。我就不說了。
我還沒到實戰(zhàn)的地步,不過也知道,主要的編程語言就是C++了,再者控制腳本語言就是lua和js了,不過創(chuàng)建工程的時候用到python。
學習引擎的時候需要關注一個深入點,不是說不了解別的引擎,而是廣泛的查閱以后,最后選擇一個你認為比較好的去研究。研究一個以后你甚至可以自己寫一個,哪個都是后話了。
這篇博客主要是關注cocos2d-x的討論,沒有什么實質的內容,不過討論的越多才會越深入,了解的才會越多。