当前位置:首页 » 编程软件 » lua脚本和Q脚本

lua脚本和Q脚本

发布时间: 2024-12-14 22:20:53

编程语言中的脚本语言这么多,请问哪个最好

我认为脚本语言最好的是python和lua,它们都比较轻量级和简单易学

python和lua的优点

简单易学

开源

启动快、热更新、移植性强

嵌入性强

轻量级

依赖少

和c++交互性强

python和lua都是嵌入性强的语言,号称胶水语言,能够便捷的嵌入到c++中运行。用c++开发大型项目时,有的数据或者代码需要频繁改动,这个时候脚本语言就派上了用场。

python和lua比较

python更倾向于开发工具,因为python提供了大量的功能,语法糖也是相当多,并且能够做到快速开发。

lua更倾向于嵌入到c++项目中,做热更代码非常方便,还有就是非常干净,几乎不包含额外的功能,精简到极致。

我们做游戏开发经常会用到lua脚本,客户端方便热更新,而服务器作为辅助脚本使用,比如一些AI、scene、技能脚本等。



总结

python和lua都是很好的脚本语言,在具体的开发中做出合理的选择才是至关重要。

⑵ 游戏开发中常用哪种脚本语言

随着《魔兽世界》(以下简称wow)在世界范围内流行,脚本渐渐被人们所熟知。由于wow强大的自定义界面系统,Lua这一脚本语言一举成名。x0dx0ax0dx0a其实早在Lua脚本语言被大众所熟知以前,游戏业内人士就已经开始使用脚本来开发游戏了。我们熟悉的很多国内的网络游戏大都运用了脚本开发,比如网游的长青树“梦幻西游和《大话西游2就大量应用了脚本技术。特别是《大话西游2》,其实现基于Lua脚本游戏开发的时间要远早于《魔兽世界》。在脚本技术上,国内与国外其实是站在同一起跑线上的,并不存在什么差距,这也为国内游戏产业赶超国外游戏产业提供了强有力的技术保证。x0dx0ax0dx0a在单机游戏时代,脚本这个词几乎很少出现,那么,为什么在网络游戏时代它却成了业界的宠儿呢?原因是多方面的。x0dx0ax0dx0a单机游戏时代,无论游戏主机还是PC机,它们的性能都非常低下,从而需要具有较高执行效率的编译型语言对机器的性能进行“压榨”。随着科技发展和硬件性能的不断提升,脚本逐渐被开发者所接受并利用,但这并不是脚本流行起来的决定性因素,真正的原因还在于游戏市场有这方面的需求。x0dx0ax0dx0a网络游戏时代的市场竞争激烈、变化莫测,如果延用单机时代一年半载才出一个新版本的开发方式,必然会被游戏行业激烈的市场竞争所淘汰。正是这种游戏市场需求旺盛和开发工具效率底下之间的矛盾,促使脚本语言迅速地发展起来。脚本的兴起使得传统编译型语言(asngC/C )的性能优势在硬件功效大幅攀升的今天已经不复存在。x0dx0ax0dx0a除了市场和硬件这两个因素之外,还有一点我们不能忽略。那就是用C/C 进行游戏开发的高成本和高项目风险。随着java/.net逐渐流行,学习C/C 编程语言的人越来越少,而网络游戏市场的需求却越来越庞大,在程序人才大量匮乏的情况下,造成了c,C 人才的高成本。即便是有能力雇佣大量C/C 程序员的公司,在开发游戏的过程中,也不能无视C/C 的高级特性和高度灵活性带来的高项目风险。C/C 是易学难精的编程语言,在开发大型项目的时候由于程序员的水平参差不齐,所以极易造成沟通不畅。不仅如此,c,C 滥用的高级特性也容易引入大量bug。正是由于这些原因,游戏公司开始在游戏中使用脚本,希望通过脚本来解决这些高成本、高风险的问题。x0dx0ax0dx0a二.脚本的现状x0dx0ax0dx0a脚本不仅解决了c/C 无法解决的开发效率难题,还降低了开发的成本和风险。因此脚本技术在游戏业内蓬勃发展起来,并且已经成为游戏业中不可或缺的一环。纵观当前脚本技术现状,形势一片大好,不仅语言百家争鸣,而且书籍种类也越来越多;不仅在游戏业界开花结果,在web等其它应用领域也大放异彩。x0dx0ax0dx0a首先,我们来看看目前比较流行的脚本:Python、Lua、ruby和Erlang。Python和Lua是网络游戏开发的中坚力量;ruby凭借 rubyonrails的web开发框架的强劲力量,其在游戏业的发展前途亦不可小视;Erlang在高并发性上的原生优势吸引了无数追求高性能网游服务器的开发人员的目光。x0dx0ax0dx0a其次,我们来看看书籍方面。大家都知道,文字对语言的普及起到了催化剂的作用,甚至可以看作是语言的有机组成部分。Python经过基金会的多年经营而得到NASA、Google重用的原因,就是由于其相关书籍种类比较丰富;Ruby随着RoR的流行,这两年行情看好,书籍也出版得越来越多了;Erlang是典型的少众语言,但随着多核时代的来临和高并发网络应用的需求,Erlang有着光明的发展前景,现在<>等书也已经在策划出版了;反观Lua,虽然目前越来越流行,但由于它晦涩的接口设计和缺乏大型应用的支持,使得相关书籍寥寥无几。x0dx0ax0dx0a最后,我们把焦点重新聚集到游戏开发行业中,其实不难发现,除了前文提到的《魔兽世界》和网易经典“西游系列”使用了脚本外,现在大多数比较流行的程序也都使用了脚本,如腾讯的QQgame))和搜狐的《天龙八部》等。不仅如此,现今的游戏引擎也都提供了脚本接口,无论是商业的unreal引擎还是开源的 OGRE,无一例外。x0dx0ax0dx0a三.脚本的优势x0dx0ax0dx0a脚本之所以能够在游戏业中找到自己的一席之地,是因为网络游戏市场需要一个快速开发方案来避免C/C 开发带来的项目高成本和高风险。那么,脚本相对于C/C 这类编译型语言到底有什么优势呢?x0dx0ax0dx0aI易于学习,代码可维护性强x0dx0ax0dx0a脚本的语法通常都非常简单,也没有太多高阶的特性,学习的门槛较C/C 低得多,比如Python可能只需要花一个下午即可学会。这使得游戏开发公司可以招聘完全没有脚本、编程经验的新手,通过低成本的培训,他们便能迅速地走上工作岗位。除易于学习外,脚本代码也有较强的可维护陛(尽管写出没有人看得懂的Lua代码也非难事)。因为脚本没有很多高阶特性(如c 里的模板元编程就是高阶特性),所以脚本程序员就有更多的精力去架构、模式、重用和测试等工作,从而提高了代码的可维护性。相应地,正因为没有那么多让人困惑的高阶特性,也使得脚本代码“简洁”不少。x0dx0ax0dx0a2.降低开发成本x0dx0ax0dx0a如上所言,由于脚本易于学习,游戏开发公司可以大量起用新手,这正是降低成本的有效手段。那么如何来确保新手所写代码的质量呢?众所周知,新手无论用什么语言写程序肯定会出现bug,但用C/C 和Python做比较,可以看出,一个新手用C/c 编写出的程序所出现的bug肯定会比用Python编写出现的bug要多。由于c程序需要编译,而脚本程序(大部分)都可以直接解释执行,所以在排除 bug方面脚本也占有一定的优势,这也使脚本在降低成本的同时能够更好地保证代码质量。x0dx0ax0dx0a3.形成人才壁垒x0dx0ax0dx0a软件开发行业是一个颇为动荡的行业,无数的程序员都在跳槽和谋划跳槽的状态中生活,使用脚本开发形成人才壁垒是游戏业减少人才流动的有效手段。因为现在脚本除了在游戏业中非常流行外,并没有在其它行业形成广泛应用(虽然在web开发方面也有燎原之势,但终究不如在游戏业中的地位高)。这就使得游戏程序员很少会考虑非游戏行业的职位,但其它行业的程序员却可能会因为脚本的易学习性而转投游戏业。脚本除了能有效形成行业间的人才壁垒外,也能有效地形成企业间的人才壁垒。由于现有的脚本种类繁多,不同公司往往有不同的选择,甚至有些公司使用自己开发的脚本语言,所以程序员从公司A跳槽到公司B可能要学习使用另一种脚本,这就提高了跳槽的成本,从而减少了人才的流动。x0dx0ax0dx0a四.脚本的发展趋势x0dx0ax0dx0a依照目前趋势来看,脚本语言一定会更加的普及,而且会逐渐渗透到其它行业中。随着网络游戏从业人员数量的增长,脚本程序员也一直增加,而且Web2、0热潮引起的网络需求,也促成了一批批新脚本程序员的诞生。网络游戏市场就像一个正在滚动的雪球,推动着脚本的普及。x0dx0ax0dx0a随着脚本在游戏业中越来越流行,市场对生产效率的需要也会相应提高。脚本虽然在一定程度上缓解了生产效率与生产工具之间的矛盾,但仍然不够完善。由于市场竞争日趋激烈,而网络游戏在很多功能上的实现又都相差无几,如网络、数据库、图形甚至部分逻辑,这必然会引起网络游戏生产的组装化一一大量中间件相互组合形成新的网络游戏。从目前来看,Bigwofld、PhysX和Unreal等都是比较流行的网络游戏中间件。脚本语言则是粘合各个中间件的良好胶水语言,所以随着网络游戏的生产组装化,脚本将有更大的发展空间。x0dx0ax0dx0a那么,当脚本发展到如日中天的时候,可能取代C/C 这些编译型语言吗?笔者认为不会。脚本语言和编译型语言在生产效率和执行效率上各擅胜场,网络游戏既需要能快速应变的脚本,也需要能快速执行以提供更绚丽游戏效果的编译型语言。未来,它们之间一定会保持长久的和谐互补关系,相辅相成。x0dx0ax0dx0a五.结语x0dx0ax0dx0a综上所述,网络游戏时代是上帝赐予脚本语言发展的绝好时机,脚本语言很快将迎来光芒四射的时代。脚本语言拥有编译型语言无可比拟的生产效率优势,所以它们将互补互助并肩奋战在游戏的最前线。

⑶ 脚本语言有哪些

  • 脚本语言:脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。

  • 语言分类:

  1. Shell脚本:此类脚本用于自动化工作控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行界面,如Unix shell和MS-DOS COMMAND.COM。其他如AppleScript,可以为系统增加脚本环境,但没有命令行界面。具体分类有:

    4NT

    AppleScript

    ARexx (Amiga Rexx)

    bash

    csh

    DCL

    JCL

    ksh

    Cmd.exe batch (Windows, OS/2)

    Command.com batch (DOS)

    REXX

    tcsh

    sh

    Winbatch

    Windows PowerShell

    Windows Script Host

    zsh

  2. GUI脚本:GUI出现带来一种专业的控制计算机的脚本语言。它在用户和图形界面,菜单,按钮等之间互动。它经常用来自动化重复性动作,或设置一个标准状态。理论上它可以用来控制运行于基于GUI的计算机上的所有应用程序,但实际上这些语言是否被支持还要看应用程序和操作系统本身。当通过键盘进行互动时,这些语言也被称为宏语言。

    具体分类有:

    AutoHotkey

    AutoIt

    Expect

  3. 应用程序定制:许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。同样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(non-player character,non-playable character,non-player class)和游戏环境的预编程动作。此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC, modeled after C),但它们有自定义的功能。具体分类:

    Action Code Script

    ActionScript

    AutoLISP

    BlobbieScript

    Emacs Lisp

    Game Maker Language

    HyperTalk

    IPTSCRAE

    IRC script

    Lingo

    Maya Embedded Language

    mIRC script

    NWscript

    QuakeC

    UnrealScript

    Visual Basic for Applications

    VBScript

    ZZT-oop

  4. web编程脚本:应用程序定制的脚本语言中有一种重要的类别,用于提供WEB页面的自定义功能。它专业处理互联网通信,使用网页浏览器作为用户界面。当然,大多现代WEB编程语言都比较强大可以做一些通用编程。具体分类:

    ColdFusion (Application Server)

    Lasso

    Miva

    SMX

    IPTSCRAE-一些网络开发团队用于创建论坛的工具

  5. 文本处理语言:处理基于文本的枝唤激记录是脚本语言最早的用处之一。如Unix's awk最早是设计来帮助系统管理员处理调用UNIX基于文本的配猛袜置和LOG文件。PERL最早是用来产生报告的,现在它已经成了全面成熟的语言。

    具体分类:

    Awk

    Perl

    sed

    XSLT

  6. 通用动态语言:一些语言,比如Perl,从一门脚本语言发展成了更通用的编程语言。由于“解释执行,内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看作脚本语言。

    APL

    Dao

    Dylan

    Groovy

    Lua

    MUMPS (M)

    newLISP

    Nuva

    Perl

    PHP

    Python

    Ruby

    Scheme

    Smalltalk

    SuperCard

    Tcl (Tool command language)

  7. 程序语言:少数的语言被设计通过嵌入应用程序来取代应用程序定制的脚本语言。开发者(如使用C等其它系统语言)包入使脚本语言可以控制应用程序的hook。这些语言和应用程序定制的脚本语言是同种用途,但优链磨点在于可以在应用程序之间传递一些技能。

    具体分类:

    Ch (C/C++ interpreter)

    Dao

    ECMAScript 亦称 DMDScript, JavaScript, JScript

    GameMonkeyScript

    Guile

    ICI

    Lua

    RBScript (REALbasic Script)

    Squirrel

    Tcl

    Z-Script

  8. JavaScript直到现在仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入性语言。Tcl作为一种扩展性语言而创建,但更多地被用作通用性语言,就如同Python, Perl, Ruby一样。Q语言是在VBScript的基础上发展起来,专用于按键精灵系列产品,成为一门更接近“汉语”习惯的脚本语言。

    BeanShell (scripting for Java)

    CobolScript

    Escapade (server side scripting)

    Euphoria

    F-Script

    Ferite

    Groovy

    Gui4Cli

    Io

    KiXtart

    Mondrian

    Object REXX

    Pike

    Pliant

    REBOL

    ScriptBasic

    Shorthand Language

    Simkin

    Sleep

    StepTalk

    Visual DialogScript

⑷ 为什么将lua作为游戏脚本

就我个人的理解来看,使用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,没有不作为游戏脚本使用的理由。

热点内容
米思齐编译失败怎么看 发布:2025-03-12 19:26:27 浏览:847
sql语句notexists 发布:2025-03-12 19:16:11 浏览:59
快手安卓版如何玩 发布:2025-03-12 19:15:26 浏览:35
scott数据库 发布:2025-03-12 19:15:19 浏览:872
rom服务器是什么 发布:2025-03-12 19:10:27 浏览:61
我给你改个密码叫什么 发布:2025-03-12 19:09:32 浏览:673
宽带密码在手机上如何更改 发布:2025-03-12 19:07:52 浏览:115
python离线安装pip 发布:2025-03-12 19:06:18 浏览:28
超时代加密视频破解 发布:2025-03-12 19:03:10 浏览:95
服务器怎么做游戏 发布:2025-03-12 18:57:30 浏览:615