全国咨询热线: 400-7728-258

棋牌游戏开发软件用什么程序好?

棋牌游戏开发软件用什么程序好?lua和js都是游戏编程语言,可以用来做棋牌软件开发使用,一些不懂程序的客户对此感到疑惑。那么棋牌软件开发用lua好还是js好?

棋牌游戏开发软件用什么程序好?

棋牌游戏开发软件用什么程序好?

1.运行效率:Lua的性能在各种测试里都比JavaScript快不少。而移动设备上存在不支持JIT的情况(未越狱的iOS设备),Lua对比JavaScript的性能优势就更明显。

2.安全性:现在cocos2d-x使用LuaJIT来执行Lua,所以可以把Lua代码编译为字节码再打包到游戏里。由于LuaJIT的字节码是高度优化过的,所以目前还没有反编译工具。而JS虽然也可以用字节码,但从目前的情况看还达不到LuaJIT的安全性。

3.与C/C++的交互:Lua原本就是作为嵌入式语言来设计的,所以天然和C/C++很容易交互。JS这方面是个劣势。

4.与Java/Objective-C的交互:不管是quick-cocos2d-x里提供的luaoc/luaj模块,还是wax,luajava这些开源项目,都让我们可以绕过C/C++层实现Lua和Java/Objc的交互。这个优势在游戏发行阶段,集成各种第三方SDK时绝对会节约巨量时间。

当然,cocos2d-x目前明显是在主推JS的解决方案,因为JS可以跨越移动设备、桌面的界限,实现一套程序跑任意平台。不过我个人认为以当前HTML5的发展情况,对于要强调体验的游戏来说,HTML5还要一些时间。

从目前的市场情况来说,Lua明显是更理性的选择:成熟、安全性高、众多大作采用。

前面提到JS更容易面向对象,我想可能是因为大家对Lua还不够了解造成的错觉。实际上,Lua和JS实现面向对象的机制几乎是一样的。JS基于prototype,Lua基于metatable,在我看来仅仅是名字不同而已。

最后,不得不向大家推荐quick-cocos2d-x这个基于cocos2d-x+Lua的扩展版。quick在cocos2d-x+Lua的基础上提供了诸多简化开发的扩展功能,以及开发框架。

棋牌软件开发为什么用lua?

语言规范精简、运行时库小。其创始人称Lua是穿过针孔的语言,他加入的任何语言特性都能用CAPI简单的调用。

易于创建受限环境,C语言一端可以控制暴露给Lua脚本的任何功能。我猜这也是《魔兽世界》的插件语言选用Lua的原因。

性能方面,虽然仍然比Python快,但不如V8(谷歌的JavaScript实现)。

协程对于编写并行逻辑,非常有用。而Python、JavaScript都不支持协程,只有StacklessPython、call/cc等方言支持类似功能。

Lua的元表很有用。不过我听说Python也支持类似的功能。JavaScript的原型链则只是元表功能的十分之一左右吧。

Lua支持弱引用。对于上层逻辑用处不大。但对于底层引擎管理资源,超级有用。JavaScript不支持弱引用;Python支持。

Lua有个非官方实现,Luajit,性能不错。

我不去谈Lua一些高级特性,实际上长期以来,游戏需要的脚本,功能上要求不会太高。但是,必须方便与C/C++集成。

用过Lua的都知道,Lua无论在与C/C++数据传递,还是在封装都很方便,API非常简单。同时Lua的许可证和紧凑性(把lib编译进程序即可),都十分利于集成。这些都是Python和V8不能比的。同时,Lua编程学习难度极低。Python虽然容易学,但不简单;JavaScript学习难度不够低。

实际上,Lua进入游戏业非常早,早在1998年卢卡斯的《异域狂想曲》(GrimFandango)中,就首次在游戏领域用到了Lua。十年之前著名的游戏博德之门、猴岛4都用了Lua。

至少从开源代码来看,对Lua的使用是十分重度的,比如skynet的入口是在Lua上。很多游戏对Lua的使用很浅,多是把一些需要经常改的运算放出来给Lua做。所以很多特性显得不那么重要,有三大结构用,能传递返回参数就成。如果嵌一个脚本机到程序里来有那么多麻烦,估计他们会自己写套命令脚本。

棋牌开发咨询热线
400-7728-258
收起