APP下载

知名游戏《机器砖块》使用的脚本语言Luau现在开源

消息来源:baojiabao.com 作者: 发布时间:2024-11-25

报价宝综合消息知名游戏《机器砖块》使用的脚本语言Luau现在开源

知名游戏《机器砖块》开发商Roblox现在开源自家改良的Lua语言Luau,Luau是一个快速、安全的渐进式类型嵌入脚本语言。官方提到,在15年前他们创建Roblox,选择使用Lua作为脚本语言,由于游戏生态系重度使用Lua,因此他们着手改进,开发了这个相容于Lua 5.1的新语言Luau。

过去Roblox将Lua作为脚本语言,整个游戏发展过程,利用《机器砖块》开发游戏的角色,从新手游戏开发人员,转移到了专业游戏开发工作室,再加上Roblox自家工程团队建构应用程序的需求,因此需要提高现有程式码的效能和品质。

官方提到,由于他们无法对Lua语言进行重大修改,虽然有LuaJIT这类更快的Lua 5.1实作可用,但是在可移植性和易修改性上,并无法满足Roblox的需求,而且LuaJIT也没有办法解决大规模建置强健程式码的问题。

这些原因促使Roblox自己根据Lua 5.1,重新打造一个新的脚本语言,这个新语言称为Luau,其亮点在于比Lua更好的效能,还有更丰富的功能,并透过渐进类型系统的linting和类型检查功能,供开发者更简单地编写强健的程式码。

虽然Luau衍生至Lua,但是Roblox重新改写了大部分的程式码,Roblox提到,他们需要一套工具来编写语言分析工具,但由于Lua的解析器和字节码编译器整合在一起,因此不适合复杂的语义分析。虽然在字节码编译上,单次编译器(Single Pass Compiler)能够提供更好的编译吞吐量,但是却极大程度限制了可以在字节码进行的最佳化工作。

所以Roblox重头开发了Luau编译器和分析工具,并严格遵循Lua的语法和语义,至于Runtime,Roblox也必须要重写直译器,才能获得更快的效能,官方提到,他们结合使用LuaJIT的技术,并且透过控制整个堆叠来最佳化Luau直译器,获得接近LuaJIT直译器的效能。

Luau被Roblox游戏开发人员用来编写游戏程式码,而Roblox工程师也使用Luau来实作大部分面向用户的程式码,以及编辑器的扩充套件。Roblox提到,他们选择开源Luau,来促进Roblox社群的运作,也让其他公司和社群能使用到Luau,并从中受益。现在Luau语言实作和相关工具程式码、语言文件和RFC等资料,已经全都在GitHub公开。

2021-11-05 09:47:00

相关文章