今天和同学讨论关于在手游上面,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开发,做出来的游戏效果怎么样,
这还是个需要验证的问题.