有那些值得學習的C/C++和Lua開發的項目源碼?
01-04
最近在學習Lua,pil也看完了,但是對於使用C++和Lua的交互來開發項目還是沒什麼實感。雖然代碼都能讀懂,但是還是感覺不出C++和Lua交互開發的優點在哪,想找一個小型而成熟的項目源碼看看,不知道有哪些開源項目源碼值得學習?
Torch7一定算一個:torch/torch7 · GitHub
它是一個正在流行,而且將更為流行的機器學習和科學計算框架。說到機器學習,Yann LeCun識得伐,他的大部分工作已經轉移到torch上了。除了LeCun,還有很多的大牛也正在漸漸地轉向Torch,這使得Torch7正在成長為可以和Caffe一戰的工具。它提供了:
一個強大的 N 維數組提供大量索引、切片和置換的函數線性算術程序神經網路以及其他有用的基礎模型
數值優化程序通過 LuaJIT 實現方便的C介面易用的多GPU支持和並行模型少年,開始閱讀代碼吧~openresty
既然邀請我,我肯定就推薦廖大的quick了 chukong/quick-cocos2d-x · GitHub
基於cocos2d-x做的lua擴展和封裝,反正在cocos2d-x社區超級流行,在quick基礎上也誕生了大量月流水千萬級的手游。半年前cocos2d-x v3就已經把Quick框架合併了到主倉庫 cocos2d/cocos2d-x · GitHub 了,不過你要學習的話,還是用quick倉庫開始,免得看到cocos2d-x混雜著各種C++實現JS實現跨平台實現容易迷路暈掉。前面給的那個倉庫比較純粹容易學習理解。skynet : cloudwu/skynet · GitHub
輕量級的遊戲伺服器,核心 c 代碼不多,只有4-5k 行,很好讀,然後通過 LuaAPI 來完成服務間的通訊協作。而且通過對 Lua 做了一些 hack 工作來實現了一些特殊的需求,具體可以參照 wiki。
koreader/koreader · GitHub
我搞了個和ejoy2d類似的做遊戲的東西,很精簡,個人覺得比較有意思。一會兒放到網上去。=============================
已經上傳上去了gmmybu/Fariy2D · GitHub,就那樣吧。
其實雲風大俠的ejoy/ejoy2d · GitHub也很值得學習
可以看看開源遊戲引擎love2d,代碼寫得很不錯,c++和lua交互完全使用的lua c api,沒有使用第三方庫。我覺得很適合用來學習。
openresty啊,一次滿足你兩個願望~最近我還在嘗試模仿openresty,[將 ssdb 嵌入 lua 模塊](GitHub - rainingmaster/ssdb_with_lua: Embed the Power of Lua into SSDB),有興趣可以一起試試~
love
nginx lua tolua++
開源遊戲框架cegui。
我們團隊在github上有一個開源項目叫CLAIMS,是一款支持事務處理,基於內存分析的分散式RDBMS資料庫。CLAIMS的特點是實時分析,可擴展,高吞吐,支持數據一致性。用來處理海量數據,可以對新加入的數據和歷史數據同時進行處理,支持實時數據處理,實時返回處理結果。它的對標項目是Impala,VoltDB。我們使用C++開發,在機器擴展自感知,NUMA性能優化,網路數據壓縮,動態job調度等多項技術上均有創新。目前,我們處於開發階段,十分希望有技術高手能夠加入,一起加快這個項目的開源進程。你可以通過dase/CLAIMS · GitHub 了解我們的項目以及代碼。 如果你感興趣的話可以從github上直接聯繫我們!
推薦閱讀:
※什麼是面向對象編程?它與面向過程編程的異同有哪些?
※C++中為什麼有delete[]這種寫法?
※關於指針數組的初始化的一個問題?
※C++ string + 號返回的是右值,為什麼下面這段代碼不報錯?
※為什麼C++的庫函數的定義會這麼複雜?