為什麽會有 quick
quick 和 cocos2d-x 的差別
quick 由哪些部分組成
應該選擇 Lua 還是 JavaScript
怎麽入門 quick
為什麽會有 quick
cocos2d-x 是壹個用 C++ 開發的遊戲引擎,其架構設計和 API 基本上是照搬的 cocos2d-iphone(壹個用 Objective-C 的 iOS 遊戲開發引擎)。
由於 C++ 對開發人員要求較高,所以網龍科技利用 tolua++ 這個工具,將 cocos2d-x 的 C++ 接口轉為了 Lua 接口(這種將 C++ 接口導出為 Lua 接口的庫通常稱為 luabinding)。讓開發者可以使用 Lua 這種簡單易懂的腳本語言來編寫遊戲,從而大大提高開發效率。
大概在 2012 年上半年,我們公司開始使用 cocos2d-x + Lua 來開發遊戲。但是發現當時 cocos2d-x 對 Lua 的支持還存在相當多不完善的地方。所以我重寫了整個 luabinding 的支持代碼,解決了內存泄露、只能使用全局函數做回調等問題。
在 cocos2d-x 2.0 發布後,luabinding 又進行了不少改進和完善。截止到 cocos2d-x 2.1.4,整個 luabinding 已經可以說是相當穩定了。所以《我是 MT》、《大掌門》這些賺錢像印錢的遊戲,就紛紛采用 cocos2d-x + Lua 的解決方案了。
可惜 cocos2d-x 團隊從 2012 年以來壹直在強力推廣 cocos2d-x 的 JavaScript 解決方案,所以在 Lua 支持上基本上就沒有什麽大動作了。而從我們使用 Lua 解決方案的開發商看來,需要 luabinding 具備更強大的功能,因此這就是我們開發 quick 的最初原因。
quick 的目標:
降低學習曲線
提高易用性
創建壹個精簡、但更容易擴展的架構
quick 和 cocos2d-x 的差別
雖然 cocos2d-x luabinding 已經很完善了,但是要開發壹個遊戲,我們還需要做許多基礎工作。
將 luabinding 導出的 C++ 接口重新封裝成 Lua 風格的接口是最基本的工作。重新封裝後的接口應該更容易學習和使用,並且壹些 C++ 和 Lua 之間數據格式轉換也應該隱藏起來。而這就是 quick 裏首先實現的目標。