Rust开发的多人游戏引擎-Ambient
2023-05-08 09:29:51 阿炯

Ambient 是一个用于构建高性能多人游戏和 3D 应用程序的运行时,采用 Rust 编写,并使用了 WebAssembly 和 WebGPU 技术,与任何编译为 WebAssembly 或在 WebAssembly 上运行的语言兼容,旨在使构建和部署丰富的多人游戏世界和体验变得容易。其开发团队表示,通过 Ambient希望构建多人游戏与构建单人游戏一样简单。采用ApacheV2.0与MIT协议双授权模式。


Ambient is a runtime for building high-performance multiplayer games and 3D applications, powered by WebAssembly, Rust and WebGPU.


特性
Seamless networking:Ambient 既用作服务器,同时也是客户端。开发者只需构建服务器和客户端逻辑,Ambient 可自动处理数据同步。
独立沙盒:开发者为 Ambient 构建的项目通过 WebAssembly 的隔离功能执行。因此如果出现崩溃,它不会破坏整个程序,这也意味着可以安全地运行不受信任的代码。
面向数据的设计:Ambient 的核心数据模型是每个 WASM 模块都可以操作的实体组件系统。
多语言:开发者能够使用任何可以编译为 WebAssembly 的语言构建 Ambient 模块(目前,Rust 是唯一受支持的语言,团队正在努力扩展到其他语言)
单一可执行文件:Ambient 是一个单一的可执行文件,可以在 Windows、Mac 和 Linux 上运行。它可以充当服务器或客户端。
互操作性:Ambient 允许定义自定义组件和 "concepts"(组件集合)。只要 Ambient 项目使用相同的组件和 "concepts",它们就能够共享数据和互操作。
Asset 管道和流处理:Ambient 包含 Asset 管道,支持编译多种 asset 格式,包括.glb 和.fbx。asset 通过网络流式传输,因此客户端在加入时能够接收所需的一切数据。
强大的渲染器:Ambient 渲染器由 GPU 驱动,裁剪 (Culling) 和细节级别切换完全由 GPU 处理。默认情况下,它使用 PBR,此外还支持级联阴影贴图和实例化所有可以实例化的东西。


最新版本:0.2
2023年5月上旬发布的0.2版本主要变化:
对播放声音的基本支持
除了服务器端,WASM 现在还可以在客户端运行
服务器由 Ambient Proxy 自动代理,允许任何拥有 URL 的人进行连接
UI 框架 Ambient UI 现在可以从访客代码中使用。在此基础上再结合网络和 ECS,这解锁了一个令人兴奋的新功能:多人游戏 UI!

更多信息可参考发行公告

项目主页:https://github.com/AmbientRun/Ambient