今天和同學討論關於在手游上面,socket到底是使用c++還是lua開發的問題.我比較傾向於使用Lua,
當然為什么傾向於使用Lua,當然是和團隊相關的.不過,我們短暫的交流並沒有得出一致的結果.
趁着晚上腦袋清醒的時間,又四處搜集了一些資料,隨便在紙上畫了畫,思考這個問題.
首先,本身cocos2d-x對Lua做了集成,這使得完全使用Lua開發單機版的游戲成為可能.當然,如果是
針對單機游戲的開發,那思考這個問題也就沒有必要了.
其次,當需要使用進行數據交互的時候,可以使用原生的BSD SOCKET.另外,lua project提供了socket
的集成封裝包--luasocket.可以將luasocket集成到cocos2d-x,當然,這類的話題可以很容易在網上
找到帖子.
將游戲中的UI和其他處理都放到lua中去處理,而在使用socket的時候需要解決阻塞的問題,要不然玩家
就在數據交互的時間一直waitting,這樣的游戲誰能受的了.
也就是說,如果完全采用lua開發,那么就需要使用lua線程.我不知道這樣子表述正不正確,因為lua中只有
協程.不過這個問題可以解決.
llthread https://github.com/Neopallium/lua-llthreads
lua-llthread是在github開源的一個lua模塊,有了這個模塊,就可以解決Socket以及http請求處理的問題
了.
當然,上面說到的,只是個人的想法,還沒有經過試驗驗證.當然,完全使用lua開發,做出來的游戲效果怎么樣,
這還是個需要驗證的問題.
