经过一年的发展,e 发布了第一个版本 新的开源游戏引擎 周围。 该发动机 提供用于创建多人游戏和 3D 应用程序的运行时 它们被编译成 WebAssembly 表示并使用 WebGPU API 进行渲染。
开发 Ambient 的一个关键目标是提供工具来简化多人游戏的开发,并使它们的创建不比单人游戏项目难。
该引擎最初的目标是创建一个通用运行时,支持使用任何可以编译为中间 WebAssembly 代码的编程语言开发游戏和应用程序。 然而,第一个版本目前只支持 Rust 开发。
关于环境
在从 Ambient 中脱颖而出的特征中,有人提到 对网络有透明的支持. 该引擎结合了客户端和服务器的功能,提供了创建客户端和服务器逻辑所需的所有组件,并自动同步客户端的服务器状态。
还提到 客户端和服务器端使用通用数据模型,这使得在后端和前端之间传输代码变得容易。 它在自己独立的环境中运行每个模块,以限制不受信任代码的影响,并且使一个模块崩溃不会使整个应用程序崩溃。
环境,c它具有面向数据的架构, 从而提供一个基于每个 WASM 可以操作的组件系统的数据模型。 使用ECS(实体组件系统)设计模式。
除此之外,还有 将所有组件的数据存储在服务器上的中央数据库中r,其状态会自动复制到客户端,而客户端又可以根据本地状态扩展数据。
能够在编译为 WebAssembly 的任何编程语言中创建 Ambient 模块(目前仅支持 Rust),同时生成通用可执行输出文件,可以在 Windows、macOS 和 Linux 上运行,并作为客户端和服务器工作。
另一方面也强调有能力定义自己的组件和“概念” (组件的集合)。 使用相同组件和概念的项目确保数据是可移植和共享的,即使数据不是专门为特定项目使用而设计的。
在 Ambient 中脱颖而出的其他功能:
- 支持编译不同格式的资源,包括“.glb”和“.fbx”。 能够通过网络流式传输资源:客户端在连接到服务器时可以获得所有需要的资源(无需等待所有资源加载完毕即可开始播放)。
- FBX 和 glTF 模型格式,支持各种声音和图像格式。
- 先进的渲染系统,使用GPU加速渲染,支持GPU端LOD和裁剪。
- 默认使用基于物理的渲染 (PBR),支持动画和级联阴影贴图。
- 支持基于PhysX引擎模拟物理过程。
- 类似 React 的 UI 构建系统。
- 独立于当前平台的统一入口系统。
- 带有插入式过滤器的空间音响系统。
- 开发仍处于 alpha 阶段。 在尚未实现的功能中,我们可以注意到在 Web 上运行的能力、客户端 API、用于管理多线程的 API、用于创建用户界面的库、用于使用您自己的着色器的 API、声音支持、负载并保存
- ECS(实体组件系统)组件、动态重新加载资源、自动服务器缩放、共同创建游戏地图和游戏场景的编辑器。
最后,对于那些有兴趣进一步了解它的人,他们应该知道代码是用 Rust 编写的并且是 在麻省理工学院许可下分发。