出品|开源中国
经过一年多的开发,Ambient 终于发布了 0.1 版本,这是一款采用 Rust 编写的开源多人游戏引擎。
据介绍,Ambient 是一个用于构建高性能多人游戏和 3D 应用程序的 runtime3D交通工具,使用了 WebAssembly 和 WebGPU 技术,与任何编译为 WebAssembly 或在 WebAssembly 上运行的语言兼容,旨在使构建和部署丰富的多人游戏世界和体验变得容易。其开发团队表示,通过 Ambient,他们希望构建多人游戏与构建单人游戏一样简单。
特性
示例
首先安装 Ambient,然后创建一个新的 Ambient 项目:
ambient new
接着打开 _src/lib.rs_,将以下内容添加到 main 函数中,让 IDE 自动导入:
spawn_query(player()).bind(move |players| { for _ in players { Entity::new() .with_merge(make_transformable()) .with_default(cube()) .with(translation(), rand::random()) .with(color(), rand::random()) .spawn(); } });
这将为每个加入的玩家生成一个随机立方体(完整示例点此查看)。开始启动:
ambient run
运行上述命令后会看到如下画面:
现在打开一个新的终端窗口,然后输入:
ambient join
这时会看到两个框,也就意味已经成功使用 Ambient 构建了第一个多人游戏体验。
Ambient 开发团队介绍了创建项目的初衷,他们发现许多游戏引擎都针对构建单人游戏进行了优化最新免费游戏引擎,但很少有旨在简化多人游戏的游戏引擎。于是他们很好奇:如果要让多人游戏能像单人游戏一样容易使用,该如何构建?当开发者从网络的细节中解放出来时,可以想象怎样的非凡体验 —— 新的和有趣的互动?
Ambient 便是他们回答这些问题的开始:一个旨在让各种开发者能够构建和分享他们想要构建的体验的运行时。然而,这里的问题不仅仅在于做好客户端 - 服务器通信。它还包括多人游戏开发中出现的所有其他挑战:服务器资源、分发游戏、可持续地以服务形式运行游戏、与用户交互等等。运行时只是他们朝着这个方向迈出的第一步,接下来还要解决许多其他问题。
Ambient 采用了 MIT License最新免费游戏引擎,其团队表示,这是因为他们的目标是建立一个标准来让大家构建多人游戏。作为一家公司,他们的计划是为将采取 “货币化” 的运行时提供增值服务(包括服务器和资产托管)3D植物,但运行时本身永远免费和开源。作为运行时的用户,他们可以选择使用 Ambient 团队提供的部分服务,以及选择自己实现其他服务。
未来,开发团队表示 Ambient 将会支持部署到 Web,支持更多可编译成 WebAssembly 的语言(目前只有 Rust),并提供协作编辑器。