Hacker News 中文摘要

RSS订阅

Librebox:开源且兼容Roblox的游戏引擎 -- Librebox: An open source, Roblox-compatible game engine

文章摘要

Librebox是一款开源的、兼容Roblox的游戏引擎,支持运行Luau代码,旨在复制Roblox的公共API,使开发者能够在Librebox上运行Roblox代码。它赋予开发者对游戏代码和引擎的完全控制权,提供熟悉的界面,帮助开发者创建并完全拥有自己的沉浸式游戏平台。目前,Librebox处于演示阶段,支持基本场景渲染、光照、阴影、天空盒等有限功能。

文章总结

Librebox引擎(演示版)

开源且兼容Roblox的游戏引擎

注意:Librebox与Roblox或Roblox公司无任何关联。

什么是Librebox?

Librebox是一个开源的游戏引擎,支持运行Luau脚本。它的目标是复制Roblox的公共API,使得Roblox代码能够在Librebox引擎上运行。

为什么选择Librebox?

Librebox赋予开发者对游戏的完全控制权——从代码到引擎。通过熟悉的界面,开发者可以创建自己的沉浸式游戏,并完全拥有自己的平台。

示例

在Workspace中创建一个部件,同时旋转并循环改变其颜色。

```lua -- examples/part_example.lua local part = Instance.new("Part") -- 创建一个部件 part.Anchored = true -- 兼容性设置 part.Color = Color3.new(1, 0, 0) -- 将部件设为红色 part.Position = Vector3.new(0, 2.5, 0) -- 设置位置 part.Parent = workspace -- 放入Workspace

local rs = game:GetService("RunService") local t = 0 rs.RenderStepped:Connect(function(dt) t += dt part.CFrame = CFrame.new(part.Position) * CFrame.Angles(0, t, 0) -- 使用CFrame原地旋转 part.Color = Color3.fromHSV((t * 0.2 % 1), 1, 1) -- 设置部件颜色 end) ```

运行命令: bash ./LibreboxPlayer.exe examples/part_example.lua

兼容性

Librebox目前处于演示阶段,仅实现了Roblox API的有限子集,但已支持以下功能:

  • 基本场景渲染
  • 光照、阴影、环境、天空盒
  • 在game.Workspace中渲染部件
  • 基本相机移动
  • 标准数据类型:CFrame、Vector3、Color3、Random
  • 实例系统:几乎完整的实例API(缺少:WaitForChild())、.Parent、:Destroy()、:Clone()
  • 部件:实现BasePart、Instance.new("Part")、Part.Color、Part.Transparency、Part.Size、Part.Position、Part.CFrame
  • 客户端服务:Workspace、workspace.CurrentCamera、RunService、Lighting、game:GetService()
  • Luau脚本支持:强大的任务调度器、RBXScriptSignal、事件绑定、协程、脚本、LocalScripts、task.spawn、task.wait、task.delay
  • 窗口处理和全屏优化

注意:Librebox不使用任何Roblox源代码或资源,仅复制了运行游戏的环境。未来将提供开源资源。

下载

在此处下载发布版本。

未来计划

当前版本仅为渲染演示,Librebox具有可扩展性,易于添加新服务和功能。在下一版本中,将加入UserInputService和StarterPlayer,使Librebox成为真正的交互式引擎。

平台支持

Librebox目前支持Windows,但可轻松移植到其他平台。唯一的依赖是“raylib”,而raylib本身已是跨平台的。

未来支持

未来版本将增加以下功能:

  • 物理:碰撞事件
  • 网格支持
  • game.Players、Player
  • UserInputService、ContextActionService
  • 图像渲染、贴花
  • 屏幕GUI
  • 材质、更强的渲染
  • 复制支持(和服务器)

Librebox的未来

未来版本可能实现以下功能:

  • 在Librebox编辑器中创建游戏(资源和脚本)
  • 部署Librebox服务器(类似Minecraft服务器)
  • 实现自己的盈利模式
  • 获得完整的用户体验和专业游戏开发
  • 无平台依赖
  • 使用自己的API或重写源代码

使用和文档

将尽快添加。构建依赖项使用“builddependencies.bat”脚本,构建引擎使用“buildengine.bat”。对于.exe文件,可以指定路径作为第一个参数(仅限Lua脚本),或使用--path(脚本或文件夹)。LibreboxPlayer.exe包含三个参数:--no-place、--target-fps和--path。

许可证

本项目使用:

  • Luau,MIT许可证。
  • raylib,zlib/libpng许可证。

法律声明

Librebox是一个独立的开源项目,与Roblox公司无任何关联。“Roblox”和“Roblox Corporation”是Roblox公司的商标。对Roblox公共API和兼容性的引用仅用于互操作性。Librebox不使用任何Roblox源代码、资源或其他专有材料。

联系

如有问题或请求,请发送邮件至librebox.developers@gmail.com。

评论总结

评论内容主要围绕Librebox项目的意义、技术实现、潜在用途以及开发者决策等方面展开,观点多样且平衡。

  1. 对Librebox的积极评价

    • 评论4认为Librebox是保存Roblox游戏的有用工具,避免了类似Flash游戏的遗憾。
      引用
      "This is fantastic! It is a very useful tool for preservation of games on Roblox."
      “这是一个很棒的工具,对于保存Roblox上的游戏非常有用。”
    • 评论3希望Librebox能用于开发Linux原生客户端,并避免法律问题。
      引用
      "A potential use-case might be to create a Linux-native client."
      “一个潜在用途可能是开发Linux原生客户端。”
  2. 对Librebox的质疑与批评

    • 评论2认为Robux的使用限制是主要问题,引擎本身并无特别之处。
      引用
      "The whole problem is Robux isn’t it? It’s not like the engine is anything special."
      “问题在于Robux,不是吗?引擎本身并没有什么特别之处。”
    • 评论6指出项目名称与许可证不符,建议更名为“OpenBox”。
      引用
      "You should rename the project to OpenBox if you are not using a copyleft license."
      “如果你没有使用copyleft许可证,应该将项目更名为OpenBox。”
  3. 对技术实现的讨论

    • 评论7强调Librebox目前只是演示版,许多API功能尚未实现。
      引用
      "There’s a looooong list of API features that aren’t implemented."
      “有许多API功能尚未实现。”
    • 评论8探讨了Librebox是否可以提高本地测试能力,并提到相关技术挑战。
      引用
      "Does this increase local testability and thus QA-ability for roblox devs?"
      “这是否能提高Roblox开发者的本地测试能力,从而提升QA能力?”
  4. 对开发者决策的疑问

    • 评论5质疑开发者为何选择开发Librebox,而不是专注于特定游戏或现有项目。
      引用
      "How do the developers of Librebox decide to work on this instead of remaking one specific, good game on Roblox?"
      “Librebox的开发者为何选择开发这个项目,而不是重制Roblox上的某个特定游戏?”

总结:评论中对Librebox的评价褒贬不一,支持者认为其在游戏保存和跨平台开发方面具有潜力,而批评者则指出其技术限制和决策合理性存疑。