首次发布开源多人游戏引擎 Ambient

经过一年的开发,全新开源游戏引擎 Ambient 首次发布。 该引擎提供了一个运行时,用于创建多人游戏和 3D 应用程序,这些应用程序编译为 WebAssembly 表示并使用 WebGPU API 进行渲染。 该代码是用 Rust 编写的,并根据 MIT 许可证分发。

Ambient 开发的一个关键目标是提供工具来简化多人游戏的开发,并使它们的创建不比单人游戏项目更困难。 该引擎最初的目标是创建一个通用运行时,支持使用任何可以编译为 WebAssembly 中间代码的编程语言开发游戏和应用程序。 不过,第一个版本目前仅支持 Rust 开发。

新发动机的主要特点:

  • 透明的网络支持。 该引擎结合了客户端和服务器功能,提供了创建客户端和服务器逻辑所需的所有组件,并自动跨客户端同步服务器状态。 客户端和服务器端使用通用的数据模型,简化了后端和前端之间的代码传输。
  • 在自己的隔离环境中运行每个模块,允许您限制不可信代码的影响。 模块崩溃不会导致整个应用程序崩溃。
  • 面向数据的架构。 提供基于可由每个 WASM 模块操作的组件系统的数据模型。 使用ECS(实体组件系统)设计模式。 将所有组件的数据存储在服务器上的集中数据库中,该数据库的状态会自动复制到客户端,客户端可以根据本地状态扩展数据。
  • 能够使用任何编译为 WebAssembly 的编程语言创建 Ambient 模块(目前仅支持 Rust)。
  • 生成通用可执行文件作为输出,可以在 Windows、macOS 和 Linux 上运行,并充当客户端和服务器。
  • 能够定义自己的组件和“概念”(组件集合)。 使用相同组件和概念的项目可以实现数据的可移植性和共享,即使数据不是专门设计用于特定项目的。
  • 支持编译各种格式的资源,包括.glb和.fbx。 通过网络流式下载资源的可能性 - 客户端在连接到服务器时可以接收所有必需的资源(您可以开始播放而无需等待所有资源加载)。 支持FBX和glTF模型格式,各种音频和图像格式。
  • 先进的渲染系统,使用GPU来加速渲染,并支持GPU端裁剪和细节级别更改。 默认情况下使用基于物理的渲染 (PBR),支持动画和级联阴影贴图。
  • 支持基于PhysX引擎的物理过程模拟。
  • 一个用于构建类似于 React 的用户界面的系统。
  • 独立于当前平台的统一输入系统。
  • 带有插入式滤波器的空间音响系统。

开发仍处于 alpha 版本阶段。 在尚未实现的功能中,我们可以注意到在 Web 上运行的能力、客户端 API、用于管理多线程的 API、用于创建用户界面的库、用于使用自己的着色器的 API、声音支持、加载和保存ECS(实体组件系统)组件、动态重新加载资源、自动服务器扩展、协作创建游戏地图和游戏场景的编辑器。



来源: opennet.ru

添加评论