首页 / 知识
关于lua:游戏引擎脚本语言
2023-04-16 20:50:00

Game Engine Scripting Languages我正在尝试从Ogre3d渲染引擎中构建出一个有用的3d游戏引擎,以模拟我提出的一些想法,并且已经出现了一些十字路口。有许多可用的脚本语言,我想知道是否有一种或两种经过审查并且有适当的关注者。 LUA和Squirrel似乎更受审查,但我对所有人开放。 最理想的情况是,为该语言提供一种便于分发和易于加载的编译形式。 一个有趣的选项是stackless-python。这是在《夏娃在线》游戏中使用的。 语法是个问题,Lua类似于Javascript,但花括号用类似Pascal的关键字替换。它具有很好的语法功能,不需要分号,但空格也不重要,因此您甚至可以删除所有换行符并使它仍然有效。作为以C开头的人,我会说Python比起其他所有语言都具有深奥的语法。 LuaJIT的速度也大约是Python的10倍,而Lua解释器要小得多(150kb或大约15,000行C,您可以实际阅读和理解)。您可以让用户编写游戏脚本,而无需嵌入大量语言。另一方面,如果将解析器部分从Lua中撕裂,则它会变得更小。 Python / C API手册比整个Lua手册(包括Lua / C API)更长。 Lua的另一个原因是对协同程序的内置支持(一个OS线程内的协作式多任务处理)。它可以使大约1000多个看似独立的脚本彼此并排运行。就像每个怪物/武器一个脚本一样。 (为什么人们在SO上用大写字母写Lua?它是" Lua"(请参见此处)。) 对Lua再投票一次。体积小,速度快,易于集成,这对于现代控制台来说很重要-您可以轻松控制其内存操作。 由于它是C库,因此我建议使用JavaScript或Squirrel,后者是我个人最喜欢的两者,因为它们与C的距离更近,尤其是在处理表/结构和类的方式方面。由于所有相似之处,最容易习惯C编码器。 但是,如果您使用JavaScript并找到了Ogre3D的HTML5版本,则您只需最少的更改(如果有的话)就可以将游戏代码直接移植到Web版本中。 这两个都是不错的选择,并且都有各自的优缺点,但是由于您可能已经在C中工作,所以两者绝对是最容易学习的。如果您使用的是Java,则同样适用;如果是Game Maker,则不需要任何一个,除非您尝试制作一个人们不需要Game Maker本身即可运行的可执行文件,在这种情况下,祝您找到可以运行这些扩展程序的扩展名。 python也很不错,因为它具有实际的OGRE绑定,以防万一您需要即时修改较低级别的内容。我不知道Lua有任何等效的绑定。 嵌入解释器没有问题。目前,我对功能和性能更感兴趣。 LUA和Squirrel都被解释了,这很好,因为我正在开发的游戏之一是包含可修改的代码,该代码在游戏中具有编辑器。 我很想听听python的知识,因为我相信它在战场系列中的使用。 我不推荐LUA,它具有独特的语法,因此需要一些时间来习惯。根据谁来编写脚本,这可能不是问题,但是我会尝试使用相当容易访问的内容。 我可能会选择python。它通常编译为字节码,因此您需要嵌入解释器。但是,如果必须,则可以使用PyPy例如将代码转换为C,然后进行编译。 我会选择Lua,因为编写绑定非常容易,许可证非常友好(MIT),并且现有库也倾向于使用该许可证。 Scheme也很好并且易于绑定,这就是为什么将它选作Gimp图像编辑器的原因。但是Lua很棒。魔兽世界使用它作为一个非常著名的例子。 LuaJIT为您提供本机编译的性能。小于纯C的一个数量级。 |
最新内容
相关内容
linux模拟请求命令?
linux模拟请求命令?,地址,工作,系统,工具,信息,标准,命令,目录,发行,数据,linux怎么加端口url请求在/etc/services中添加端口以及对应进程名及linux模拟命令ls?
linux模拟命令ls?,系统,地址,工作,命令,时间,基础,标准,信息,文件,目录,LS(LINUX中ls命令)详细资料大全ls命令是linux下最常用的命令之一,ls跟dlinux在线模拟器命令?
linux在线模拟器命令?,系统,设备,管理,命令,软件,数据,在线,网络,环境,盘中,linux必学的60个命令_linux必学的60个命令怎么读起来简单安装和登linux命令模拟软件?
linux命令模拟软件?,软件,系统,地址,平台,电脑,环境,网上,工具,名字,名称,windows环境下的linux模拟软件1、首先需要打开电脑里的VirualBox软python脚本语言
python脚本语言,代码,设计,情况,培训,语句,项目,基础,意外,异常,空格,Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被pythonpython是脚本语言吗?
pythonpython是脚本语言吗?,设计,培训,大规模,项目,软件,面临,开发者,语言,脚本语言,方法,Python是脚本语言。python是一种计算机程序设计语关于c#:模拟方法结果
关于c#:模拟方法结果,关于c#:模拟方法结果,方法,调用,数据,伪造,Mocking method results我试图找到一种方法来伪造从另一个方法中调用关于xml:从WebRequest中模拟WebResp
关于xml:从WebRequest中模拟WebResponse,关于xml:从WebRequest中模拟WebResponse,应用程序,运行,界面,我都,Mocking WebResponse's fr关于单元测试:对象模拟是否被广泛使
关于单元测试:对象模拟是否被广泛使用?,关于单元测试:对象模拟是否被广泛使用?,单元,测试框架,模拟,框架,Is object mocking used extens关于Windows:最好的Win32编译脚本语
关于Windows:最好的Win32编译脚本语言?,关于Windows:最好的Win32编译脚本语言?,编译,服务,脚本语言,公司,Best win32 compiled scripting关于python:测试GUI代码:我应该使用
关于python:测试GUI代码:我应该使用模拟库吗?,关于python:测试GUI代码:我应该使用模拟库吗?,验证,应用程序,的是,我在,Testing GUI code: s关于tdd:RhinoMocks:模拟属性获取器
关于tdd:RhinoMocks:模拟属性获取器的正确方法,关于tdd:RhinoMocks:模拟属性获取器的正确方法,对象,用户,语法,我是,RhinoMocks: Correct