Second Life 引入 Luau 脚本与 VS Code 集成,向现代游戏开发平台靠拢
在推出二十多年后,Second Life 正试图让其持久化的虚拟世界变得对当代游戏开发者 更加平易近人。凭借约 70 万月活跃用户,Linden Lab 正在 Second Life 中引入 基于 Lua 的现代脚本编写——这套系统与 Roblox 高性能的 Luau 语言密切相关——同时还提供 Visual Studio Code 集成,以及一套让创作者可以直接在其实时多人环境中测试改动的工作流。
此次更新并非意在取代沿用已久的 Linden Scripting Language,也不是要把 Second Life 变成传统意义上的游戏引擎。相反,Linden Lab 希望为创作者提供一个更熟悉的基础,以便构建和维护雄心勃勃的互联体验。
在我们的采访中,Linden Lab 产品高级副总裁 Anya Kanevsky 谈到了为何 Luau 胜过 C#、JavaScript 和 WebAssembly 等备选方案;安全运行数千个持久脚本所面临的挑战;以及为来自 Roblox 和其他基于 Lua 环境的开发者所带来的机会。
前往 此处查看有关新平台工具的更多细节,并在下方阅读我们的完整采访。

Second Life 一直是由创作者驱动的,但完整的 Lua 脚本支持似乎是将它更明确地定位为现代游戏开发平台的重要一步。为什么 Lua 是现在引入 Second Life 的正确语言?
Linden Lab 产品高级副总裁 Anya Kanevsky:Lua 给了我们一个机会,让 Second Life 的脚本现代化,同时保留 Second Life 作为创作者平台的独特之处。有意思的是,我们启动这个项目时并没有说“我们需要 Lua”。我们评估了多种方案(包括 C#、JavaScript 和 WebAssembly),对照的是 Second Life 所带来的一些非常特殊的技术要求。脚本需要与成千上万个其他脚本一起安全运行、能够暂停和恢复、保留自身状态,甚至能随着物体跨区域移动或进入物品栏而在服务器之间迁移。Luau 最终在这些要求上提供了最佳的契合度。
额外的好处是,Lua 已经被非常庞大的游戏开发者社区所熟悉。因此,我们最终得到的技术方案既能改善现有创作者的体验,又能降低从未在 Second Life 中构建过的开发者的入门门槛。
Lua 和 Luau 已经被许多游戏开发者所熟悉,包括 Roblox 创作者。这次更新在多大程度上是为了让来自 Roblox 或其他基于 Lua 环境的开发者更容易上手 Second Life?
Anya Kanevsky:这实际上是两件事同时发生。首先,Lua 大幅降低了来自其他环境的开发者的学习曲线。已经了解 Lua 或 Luau 的人来到 Second Life,马上就能开始尝试。这当然包括 Roblox 开发者,但范围比 Roblox 更广。Lua 在游戏开发领域有着悠久的历史,因此有相当规模的开发者社区会觉得这门语言和编程概念已经很熟悉了。
其次,这也是对已经在 Second Life 中构建的创作者的投资。我们希望给他们一个更现代、更高效的脚本环境,同时继续支持我们自己的 Linden Scripting Language(LSL);而且虽然 Lua 提供了更多功能,Lua 和 LSL 脚本仍可以共存——甚至可以在同一个对象内共存。 在我们与创作者进行的最早测试中,我们听到了关于内存上限提高的正面反馈,以及相比 LSL,现在用更少的脚本就能在 Second Life 中用 Lua 做更多整体工作的能力。
最重要的是,这两件事实际上都是对 Second Life 中所有居民体验整体多样性的投资。通过给创作者更强大的工具,我们确保每个人都能获得更多乐趣。
对于那些从未在 Second Life 中开发过的开发者来说,Lua 解锁了哪些用现有工具集更难创建的交互体验或游戏?
Anya Kanevsky:Lua 改变的是开发者构建和演进它们的方式。它提供了现代语言特性和编程模式,使更大的系统更容易组织、维护和扩展。诸如表(tables)、动态事件处理、协程、JSON 支持以及可选类型注解等特性,为开发者提供了他们在当代开发环境中更为熟悉的工具。
重要的区别在于,Lua 并不会突然让在 Second Life 中制作游戏成为可能。多年来,居民们一直在用 LSL 创造非常精密的游戏和交互体验。
因此,我们认为这个机会既在于说“这是一个你以前永远无法构建的游戏”,更在于让雄心勃勃的项目更容易开发和维护——并让 Second Life 对那些已经了解现代脚本语言的开发者来说更加平易近人。
这里的卖点不只是开发者可以编写内容脚本,而是他们可以在世界内实时启动和更新脚本。这种工作流程如何改变创作者对游戏系统进行原型设计、测试和迭代的方式?
Anya Kanevsky:实时迭代实际上长期以来一直是 Second Life 开发的一部分。创作者一直能够修改脚本并立即在世界中看到结果,因此协作式构建一直是 Second Life 创造力的基石。Lua 以及我们正在推出的开发工作流程,正在让创造力更顺畅地流动。
我们与 Visual Studio Code 的集成让开发者可以在专业开发环境中工作,同时将这项工作直接连接到 Second Life 中的对象。这意味着创作者可以受益于熟悉的开发工具来浏览和管理代码,以及处理对象和链接集(linksets),同时仍能看到他们的更改反映在实时虚拟世界中。我们最近在客户端上的工作特别改善了 Second Life 与 VS Code 扩展之间的通信,包括对对象和链接集的实时探索。
这就形成了一个非常快速的创作循环:编写、在实际多人环境中测试、调整,然后再次测试。

《第二人生》(Second Life)的用户基数比 Roblox 等平台要小,但创作者变现的数据却相当有说服力。对于那些习惯于在规模大得多的平台上进行创作的开发者,你如何解释这里的经济机会?
Anya Kanevsky:规模只是创作者机会的一面。另一面是经济账:如果你做出了人们看重的东西,你能真正获取其中多少价值?
Second Life 拥有一个运转了二十多年的用户对用户经济体系。创作者可以直接在世界内向居民销售,也可以通过 Second Life Marketplace 销售。林登币(Linden Dollars)可以兑换成现实世界货币,创作者保留对其知识产权的控制权。我们目前的创作者经济结构是:在扣除适用的提现费用之前,创作者可保留约 85% 的销售收入(与 Roblox 支付的比例相比相当有利)。
所以,我们的卖点并不是 Second Life 的受众比 Roblox 更大——它确实没有。Second Life 提供的是一个成熟的受众群体,他们有着为用户创建内容花钱的既定文化,以及一种旨在让创作者保留其创造价值中相当大一部分的经济模式。我们认为,Second Life 为成熟创作者提供了一个机会,让他们把在其他平台的触达范围和受众延伸过来,以补充现有收入来源,并以其他限制更多的平台无法实现的方式拓展创作边界。特别是,我们认为创作者有一个新机会:把他们已有的粉丝带入一个全新的空间,不仅延伸收入,还能通过更深入、更吸引人的体验拓展创作边界。
用户群体有多健康?每个月有多少人在 SL 中构建内容,有多少人只是来玩的?构建者真的能从这个平台赚到钱吗?
Anya Kanevsky:Second Life 很特别,因为“玩家”和“创作者”之间的界线远没有许多游戏平台那样分明。一个人可能今天社交或角色扮演,明天定制化身或家园,最终开始制作并销售自己的内容,同时仍然是世界内紧密社区的一部分。就数字而言,多年来我们的月活跃用户(MAU)中高参与度用户数量一直相当稳定。
我们平均稳定在略低于 70 万月活跃用户,其中略高于 11% 的用户积极编写脚本和创建内容,无论是为了娱乐还是盈利。所以,是的,创作者确实赚到了真金白银。Second Life 二十多年来一直支撑着一个运转正常的创作者经济,林登币可兑换为现实世界货币。今年迄今为止,已有超过 13,000 名独立创作者通过他们的创作提现了真钱。在这个艰难的经济环境中,Second Life 可以提供一份重要的“副业”,既有利润又能实现创作满足感。

你认为 Roblox 开发者可以把哪些经验带入 Second Life?考虑到 Second Life 的文化、受众、经济和虚拟世界结构,你认为他们在哪些方面需要以不同方式思考?
Anya Kanevsky:有很多知识可以直接迁移:设计引人入胜的游戏循环、进度系统、多人互动、实时内容更新,以及鼓励人们回归的体验。
Second Life 非常不同的一点在于,你不一定是在构建一个孤立的游戏会话。你是在一个持久存在的虚拟世界中构建,这个世界有自己的社区、经济、身份和既有内容生态系统。
这对创作者来说既是令人兴奋的机会,也是挑战。创作者可以立即融入一个由志同道合者组成的成熟社区,这些人既能在你的虚拟环境内外消费体验,也能创造体验。真的就像生活在一个虚拟社会里。
Second Life 也不像许多当代游戏平台那样依赖实例化。创作者需要考虑并发性,以及一个体验如何在各个区域内运行,尽管体验可以分布到多个区域,或通过垂直设计来增加可用空间。
这种限制也可以变成创作机会。Second Life 中的创作者或许不会只问:“我如何让玩家进入我的游戏?”而是会问:“我的游戏如何成为一个更大、活着的世界的一部分?”以及“我的内容如何同时构建社区?”
你能谈谈 Resona 作为 Lua 支持的 Second Life 体验可以成为什么样子的早期例子吗?对于那些目前可能不认为 Second Life 是构建 RPG 之地点的游戏开发者来说,它为什么是一个有用的展示?
Anya Kanevsky:Arcback 使用 Lua 在相互关联的游戏系统中广泛构建了 Resona,将其作为一个 RPG 风格体验;我们相信 Resona 提供了一个展示示例,说明创作者已经开始构建这类体验。
Resona 表明,一个由 Lua 支持的 SL 体验可以远远超越单个脚本化交互,成为一个持久、相互关联的 RPG,其中进度、战斗、制作、物品栏、任务、世界构建、HUD、附件和世界对象全部协同工作。
Arcback 一直在帮助我们突破 Second Life 中更大规模游戏设计架构的可能性边界:使用 Lua 在多个脚本之间开发共享状态、扩展对象到对象消息传递、连接 HUD、附件和世界对象、管理持久数据,并找出模拟器、消息传递和脚本限制从哪里开始塑造设计。
通过与 Arcback 这样的开发者合作,我们向经验丰富的 Lua 开发者学习,并从他们在 Second Life 中以有意义的规模应用开发技能的过程中获得重要反馈。这些早期合作帮助我们了解这门语言和 API 在哪些方面运作良好、开发者在哪些方面遇到阻力,以及我们接下来应该改进什么。

从技术角度看,为一个像 Second Life 这样长期运营、以创作者为核心的平台加入 Lua 支持,最大的挑战是什么?
Anya Kanevsky:最大的挑战在于,Second Life 拥有超过 20 年由创作者构建的内容,这些内容必须继续正常工作。我们并不是在为一个可以从零开始的全新平台设计脚本系统。
Second Life 还对脚本提出了不同寻常的要求。一个区域(region)内可能同时运行着数千个脚本。它们必须公平且安全地共享资源。脚本可能需要在执行中途暂停,随物体一起跨越区域边界,甚至进入某人的物品栏,之后再恢复执行,同时保持其状态。
这些要求淘汰了大量原本颇具吸引力的技术,数量之多令人意外。事实上,我们最初曾研究过将现代 C# 引入 Second Life,但最终得出结论:沙箱化、内存管理、微线程和状态序列化让它与我们的架构并不契合。
Luau 为我们解决这些问题提供了好得多的基础,同时还能保持 Second Life 创作者所期待的行为。
随着越来越多的创作者开始在共享的实时空间中构建更丰富的脚本化体验,Linden Lab 如何看待安全性、内容审核、性能和稳定性?
Anya Kanevsky:这些考量是根本性的,因为 Second Life 是一个共享的、持久存在的环境。创作者不一定是在把代码部署到一个孤立的游戏实例中——他们的脚本可能与许多其他人的脚本一起运行。
这也是架构如此重要的原因之一。脚本仍然处于沙箱中,并在 Second Life 各区域的服务器端运行,而不是在另一位居民的查看器(viewer)上执行任意代码。我们还刻意排除了 loadstring() 等能力,因为它们会带来不可接受的性能影响;脚本架构围绕资源限制和公平调度来设计,以确保单个脚本不会独占执行资源。
目标并不仅仅是给创作者更强大的工具。而是在做到这一点的同时,维持一个由成千上万个独立创建的系统共存的实时世界所必需的稳定性和信任。

展望未来,Second Life 作为游戏开发平台的更大愿景是什么?开发者应该将 Lua 支持视为一项独立功能,还是将其视为让 Second Life 中游戏和互动体验制作方式现代化这一更广泛努力的一部分?
Anya Kanevsky:Lua 绝对是更广泛现代化努力的一部分。
Second Life 一直是一个平台,人们可以在这里构建游戏、商业、社交空间、娱乐以及我们从未预料到的事物。我们现在所做的是对支撑这种创造力的工具进行现代化,让开发体验对当今的创作者来说更加熟悉。
Lua 是其中的重要组成部分,因为它为我们提供了现代化的脚本基础。
VS Code 集成改善了开发工作流。随着时间的推移,这一基础将为我们提供更多空间来改进 API、调试、性能以及整体创作者体验。
我们不想把 Second Life 变成一个传统游戏引擎,也不想让它成为另一个创作者平台的复制品。机会在于将现代开发工具与 Second Life 已经拥有、且从零开始创建要困难得多的东西结合起来:一个持久、互联的虚拟世界,一个成熟的创作者经济,以及二十多年用户创建的内容和社区。
正因如此,Lua 的意义远不止一次脚本语言更新。

Anya Kanevsky,Linden Lab 产品高级副总裁
有兴趣测试 Second Life 的 Lua 开发工具的 80 Level 读者,可以发送邮件至 editor@lindenlab.com,并在邮件主题中注明 “80 Lvl beta”。创作者还可以通过 Second Life 的创作门户 获取更多资源。
相关链接
原文链接:https://80.lv/articles/second-life-wants-its-23-year-old-world-to-be-a-modern-game-platform
喜欢这篇内容吗?