Lua云风在九十年代就开发游戏引擎并建设个人网站(云风工作室),在游戏开发领域声望高。网易《大话西游II》是首个在市场上取得成功的国产网络游戏。所以后来国内游戏开发行业纷纷受此影响采用Lua。
《大话西游》用的脚本语言是微软的JScript(JavaScript的一种方言),维护不便bug多,受系统IE版本的影响兼容性差。所以2002年网易开发《大话西游II》时,决定在客户端内嵌别的脚本语言。当时该项目技术负责人云风认为要挑不出名的语言,让做外挂的人搞不懂(《大话西游》一代被外挂《月光宝盒》搞死了),于是就选择了Lua 40。
现在,2013年,Lua和其他流行脚本语言Python、JavaScript各分秋色:
语言规范精简、运行时库小。其创始人称Lua是穿过针孔的语言(Passing a Language through the Eye of a Needle),他加入的任何语言特性都能用C API简单的调用。
易于创建受限环境,C语言一端可以控制暴露给Lua脚本的任何功能。我猜这也是《魔兽世界》的插件语言选用Lua的原因。
性能方面,虽然仍然比Python快,但不如V8(谷歌的JavaScript实现)。
1生成Lua静态库(1)下载lua src。
最新版本是523。 下载地址。
(2)新建VS Win32控制台应用程序,取名为Lua。在应用程序设置中选择应用程序类型为静态库,附加选项中取消预编译头的勾选。
(3)在Lua的VS项目文件夹中新建LuaSrc目录,用于存放Lua源码。解压下载的lua src,拷贝src目录下所有 c和 h文件到LuaSrc。
(4)在Lua的VS项目文件夹中新建bin目录,用于存放Lualib。
(5)在VS环境中,右键点击Lua项目,选择添加->现有项,导入LuaSrc目录下所有的文件。
(6)右键点击Lua项目,选择属性,在顶部选择所有配置,然后修改配置属性->常规->输出目录为
$(SolutionDir)bin
(7)为了禁止一些安全警告(Windows程序员知道为什么),需要再修改配置属性->C/C++–>预处理器->预处理器定义,在末尾添加
;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE
(8)选择release模式,点击项目,生成Lualib即可。Lualib生成在bin目录下。
2调用Lua静态库
(1)在Lua解决方案下新建名字为HelloLua的Win32控制台程序,采用默认选项,不做修改。
(2)右键点击HelloLua项目,选择属性,修改配置属性->C/C++–>附加包含目录,新增
\LuaSrc
(3)在修改配置属性->链接器->输入->附加依赖项,新增
\bin\Lualib
或者使用代码链接lua库,即在HeloLuacpp中添加如下代码,
#pragma comment (lib,"/bin/Lualib")
(4)设置HelloLua项目为默认启动项,点击生成项目即可。
(5)因为此时main函数并没有执行任何代码,所以控制台一闪而过。右键HelloLua项目的源文件,添加新建项,取名hellolualua。
我认为脚本语言最好的是python和lua,它们都比较轻量级和简单易学
python和lua的优点
简单易学开源启动快、热更新、移植性强嵌入性强轻量级依赖少和c++交互性强
python和lua都是嵌入性强的语言,号称胶水语言,能够便捷的嵌入到c++中运行。用c++开发大型项目时,有的数据或者代码需要频繁改动,这个时候脚本语言就派上了用场。
python和lua比较
python更倾向于开发工具,因为python提供了大量的功能,语法糖也是相当多,并且能够做到快速开发。
lua更倾向于嵌入到c++项目中,做热更代码非常方便,还有就是非常干净,几乎不包含额外的功能,精简到极致。
我们做游戏开发经常会用到lua脚本,客户端方便热更新,而服务器作为辅助脚本使用,比如一些AI、scene、技能脚本等。
总结
python和lua都是很好的脚本语言,在具体的开发中做出合理的选择才是至关重要。
lua是一种脚本语言,但是用它可以完成很多的事情,比如游戏里面游戏配置(其实就是一些游戏的数据,比如level1 的某个英雄的能力值应该是多少, level2的英雄又是多少之类的), 游戏里面的逻辑(比如用某种武器,伤害到了某个英雄,对英雄的伤害值是多少, 当英雄的HP用完后, 又会怎样)但是这种语言,不能"独当一面", 它只能通过和其他语言一起,才可以发挥它的作用, 它的结构是通过:
C++ -> Lua -> C++ -> 游戏底层(从而展现给玩家一些画面,一些声音)
上面就是一些简单的回答, 有不清楚的地方可以多交流
OpenResty一个全功能的Web应用服务器,它打包了标准的Nginx核心,很多的常用的第三方模块,以及它们的大多数依赖项。
OpenResty通过汇聚各种设计精良的Nginx模块,从而将Nginx有效的变成一个强大的Web应用服务器,Web开发人员可以使用Lua脚本语言调动Nginx支持的各种C以及Lua模块,快速构造出足以胜任 10K+并发连接响应的超高性能Web 应用系统。
openresty性能内存储器容量:
openresty性能需要执行的程序与需要处理的数据就是存放在主存中的。内存储器容量的大小反映了计算机即时存储信息的能力。随着 *** 作系统的升级,应用软件的不断丰富及其功能的不断扩展,人们对计算机内存容量的需求也不断提高。
openresty性能运行Windows 95或Windows 98 *** 作系统至少需要 16 M的内存容量,Windows XP则需要128 M以上的内存容量。内存容量越大,系统功能就越强大,能处理的数据量就越庞大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)