为什么将lua作为游戏脚本

为什么将lua作为游戏脚本,第1张

就我个人的理解来看,使用LUA作为脚本语言有三个好处:
1、轻量级
LUA只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。
2、可配置性、可扩展性
LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。
3、兼容性
LUA由标准C编写而成,几乎在所有 *** 作系统和平台上都可以编译,运行。
这些都是LUA本身所具备的一些特质。而这些特质正好就决定了LUA的广泛使用:
1、轻量级
没人希望自己的应用程序需要附加几十M甚至几百M的库类文件才能运行。如果一个应用程序这么做了,那么它很难做到Run Anywhere。当然,这个Run Anywhere只是这么一说。
2、可配置性、可扩展性
游戏研发的过程中,修改是必不可少的过程。如果每次修改都需要从底层做起,那必定是一个非常繁琐的过程。而LUA的可配置、扩展正好可以解决这一问题。
3、兼容性
游戏只是游戏,不能决定玩家的机器配置,更不能决定玩家的 *** 作系统。如果因为游戏与用户的 *** 作系统不兼容导致游戏销量下降,我想,这肯定是不被允许的。
所以,具备了以上三个特点的LUA,没有不作为游戏脚本使用的理由。

首先是因为很多游戏公司的服务器是用的C++ 而LUA和C++基本是无缝拼接
为什么不能全用C++呢 不更无缝吗因为C++ 每做一点点更改,都要重新编译执行文件要修复BUG必须重启服务器这对于大型应用几乎是不可以接受的所以运行时编译语言也就是所谓的"脚本语言"就应运而生 脚本语言可以在运行时修改/编译/替换,可以在不重启游戏服务器的情况下修复BUG,更新逻辑
而LUA可以算是效率最高的"脚本语言"之一其他脚本语言,效率/ 简单程度/易用程度/稳定程度,和LUA都有相当的距离

把lua脚本注入到魔兽世界:

Lua脚本在魔兽世界里的应用不仅限于做宏,做脚本宏,其本质就是编程,只不过在编以魔兽世界为平台和限制的程序,所以要想做出好的脚本宏,根本问题就是建立和提高编程的思维,魔兽世界脚本的限制很大。

在魔兽世界lua的脚本宏中,是用/script [宏语句]来执行宏的,在下面的代码中,就不写整个宏(一个一个在前面加/script)了,直接把宏语句写出来。

赋值语句,在lua编程中,一切都是在处理变量,要定义变量并指定这个变量的值,这个指定变量的值的过程叫做赋值。

[变量名]=[值]这个语句的作用是把变量的值变成[值],如a=1就是把变量a的值指定为1。

[变量名1],[变量名2],[变量名3]……[变量名n]=[值1],[值2],[值3]……[值n]。这个语句相当于[变量名1]=[值1],[变量名2]=[值2],[变量名3]=[值3],[变量名n]=[值n]。比如a,b,c,d,e=14,20,93,61,0相当于a=14,b=20,c=93,d=61,e=0。

条件判断语句,也就是如果什么什么条件成立,就做什么什么事,甚至是否则做什么事。

if [做这件事的条件] then

[要做的事]
      end
       即如果[做这件事的条件]成立则做[要做的事]
       还可以加一个else表示否则做什么事:
       if [做这件事的条件] then
      [要做的事]
       else

[否则做的事]
       end
       即如果[做这件事的条件]成立则做[要做的事],否则做[否则做的事]
       有时需要根据多种情况决定如何做,就会用到elseif:
       if [做A事的条件] then
       [A事]
       elseif [做B事的条件] then

[B事]
       else
       [否则做的事]
       end

在Android手机上编写并运行Lua脚本
利用开源项目SL4A ( Scripting Layer for Android 项目地址:可以快速在Android手机上搭建各种脚本运行环境。目前SL4A支持 Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, shell 等脚本语言 。
1、下载并安装SL4A运行环境
​这个应用提供了各种脚本的运行环境,通过拆APK可以看到应用内嵌了两个so动态链接库。其中一个是ConnectBot的库,另一个是79K大小的脚本执行库,但显然不是脚本语言解析库。具体关于SL4A的原理,可以参考博文:《SL4A 之实现原理解析》
2、下载 Lua for android 支持lua_for_android_r1apk
3、运行Lua for android ,它将从网络下载一些Lua脚本Demo。这些例子在SL4A中运行。
使用SL4A可以在Android手机上直接运行Lua等脚本。

lua看不同公司不同用法
比较一般的用法是 服务器端的lua脚本 实现的功能逻辑一般也不复杂 甚至有的游戏里很偏向于当作游戏配置使用
其实没必要刻意去追求什么环境,把那本黄皮的书拿来仔细看一看 怎么样执行效率会高 就很足够了
而且你的环境搭的再好,一转到策划,进入游戏,就全变了,接口什么全都不一样了,所以唯一有用的就是处理问题的逻辑和习惯以及方法了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10603998.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存