Cocos2d-x script language binding:Lua or Javascript?
Cocos2d-x script language binding:Lua or Javascript?
2014-01-15更新: 加入Gwill的文章连接。
cocos2dx script binding: lua or javascript?
这篇文章是我在之乎的一个回答: http://www.zhihu.com/question/21130385/answer/18827858 ,有修改。
强调:这篇文章有极强的时效性,在1年时间内应该有一定指导意义。本文成文日期是2013年9月11日。
目前 Javascript 风头似乎超越一切,所以我一直在纠结,到底是使用Lua Binding还是 Javascript Binding。
我找了一些资料。如果把下面的资料看完,相信每个人心里都会自有分辨。
- Why I switched from Lua to Javascript
- Lua is simple and fast
- Lua vs. Javascript
- A discussion on JIT compilers by Brendan Eich
- Learning Lua Form JS
- Why Lua?
- Cocos2dx+lua合适还是Cocos2dx+js合适
- Lua 语言有哪些不足?
- LUA程序设计(第2版)豆瓣书评中云风的评论
- subtle differences between javascript and Lua
- 乐元素CTO凌聪-基于cocos2d-x二次开发的自有引擎方案分享
- Cocos2d-x 2013春季新功能发布和发展规划
- Architecture and Directory Structure
- cocos2d-x changelog
- cocos2d-x官方论坛,请比较lua binding和js binding帖数
- cocos2d JavaScript tests and games
下面说说我的分析,不一定正确。
再说一遍, 把上面的资料全部认真看完,你一定会有一个对你来说正确的选择。
就我的感觉,虽然王哲说 Javascript Binding 和 Lua Binding 会并重发展,但我认为对于cocos2d-x团队来说,应该是偏向于Javascript。从现在cocos2d-html5的频繁更新就能看出来了。不过cocos2d-x是开源的引擎,即使官方团队不重视(或者相比JS而言不够重视),也依然有优秀的实现 。
Javascript 和 Lua 语言本身的优势(性能、语法、特性、 学习曲线、熟练程度),上面已经说了很多,我提供的资料中也有许多深入的讨论。我个人认为这两种语言性能上的差异并不是我选择的主要原因,学习曲线也不是。我没用过Lua,JS能写点东西。但我并不在意学习Lua “浪费” 的那两天时间。
从 cocos2d-x官方论坛 比较,Lua Binding 和 Javascript Binding帖数差别不大,JS略多,毕竟现在JS在流行程度上更强一些。
比较最近的 cocos2d-x changelog,会发现JS的相关修改更多一些。而且比较有趣的是,JS的修改有许多是Bug fix,而Lua的修改就只是feature。这是不是从侧面说明了,Lua Binding目前更加稳定呢? 稳定是多重要的特性啊!
Javascript Binding最大的优势,我认为就是游戏可以直接通过cocos2d-x html5移植到网页。但我看过 cocos2d JavaScript tests and games 之后,真的感觉到是无法接受那种性能。即使抛开 手游是否需要开发一个网页版本 这种运营问题不谈,运营的同学也一定不希望开放一个这样的HTML5玩家吐槽专版。
我的选择,已经很明确了,就是Lua。各位提到的IDE问题、调试问题等等,我只能再想办法去解决。我相信即使我选了JS,碰到的此类问题也不会比Lua更少。上面提到的资料中有人讲到了cocos2d-x lua的IDE和调试,应该是个正确的思路。
这个游戏完成之后,Javascript Binding应该成熟了(以现在的速度,应该会很快),到下一款游戏考虑也不迟。
强调:这篇文章有极强的时效性,在1年时间内应该有一定指导意义。本文成文日期是2013年9月11日。
发现 G_will 也写了一篇类似的文章: Cocos2d-x 绑定脚本究竟选择 Lua 还是 JS ?
- 文章ID:1924
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/cocos2dx-binding-lua-or-javasrcipt/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。