如何解决我可以使用C作为引擎的脚本语言吗?
| 我现在有一个游戏引擎,我正在寻找一种脚本语言。我尝试了Lua,发现它相当不错,但是我想让我的脚本看起来像C或更好的C ++,或者看起来像虚幻引擎的脚本会更好。 那有可能吗?解决方法
当然,您可以:P如果您愿意,您可以做所有事情。
我目前看到这三种方式:
您自己编写代码以解析C / C ++代码,这确实不是一件容易的事
您使用分析器来分析和解释C代码。 Ch Standard Edition应该可以解决问题,因为它可以作为脚本语言包含在自己的项目中。
另一种方法是创建一个脚本,该脚本将用户生成的代码动态编译为共享库,该共享库由引擎动态加载。尽管这不再是“脚本”。
,检查AngelScript,GameMonkey,还有很多其他功能
http://codeplea.com/game-scripting-languages
或者,也许会努力将CINT C / C ++解释器(http://root.cern.ch)与ROOT库集成在一起。这个想法是,您将解释所有正在工作的.c / .cpp文件,而其余文件将被编译(您的选择)。
例如,您是音频程序员,您希望其余的非音频代码非常快,而您正在积极从事的工作却不是这样,而是要具有快速迭代-热加载,动态更改等。
此外,CINT解释器还具有额外的动态语言功能-您可以进行内省(反思)-例如,允许您创建用于包装游戏资产或任何可能需要的序列化程序。
还有UnderC和Ch(如上所述)以及许多其他...
,Metalua是基于Lua代码库的语言实现系统,它公开了各种语言内部信息,例如解析器(gg / mlp),因此允许您扩展语言或完全更改语法。考虑一下yacc和Lispy元圆解释器之间的交叉。
对于我来说,使用C或更好的C ++到底要做什么,我不太清楚,但是我认为这听起来很正确,并且在实现的便捷性和灵活性之间取得了不错的平衡。
,有许多脚本语言或多或少具有C语法。其他人已经提到ECMAScript,另一种选择是s-lang,它被设计为脚本语言,易于嵌入,并且语法非常类似于C。
,TCC有一个允许动态编译C代码的库,并且看到它像C编译器一样快,它可以用于(几乎)即时编译内容,这里有一个非常基本的示例,但是TCC标头中的文档可以更好地解释内容。
它还提供了一个更好的示例,展示了使用libtcc时如何向编译器公开符号,如果禁用了编译器的某些部分(主要是导入外部库,而不是导入外部库),则可以让您对脚本进行沙盒处理。安全清单),因为它是完全开源的,并且不太复杂,并且内部结构上有一些基本文件。
,就像@Charles所说的那样,如果您想要易于实现且具有灵活性的东西,请使用Metalua。如果您想要类似C的脚本语言,则可以尝试ECMAScript或其任何超集(JavaScript,JScript,ActionScript)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。