首次发布开源多人游戏引擎 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 阶段。尚未实现的功能包括:网页启动功能、客户端 API、多线程 API、用于创建用户界面的库、用于使用自定义着色器的 API、声音支持、加载和保存 ECS(实体组件系统)组件、即时资源重新加载和自动缩放。 服务器一款用于协作创建游戏地图和游戏场景的编辑器。

播放视频


来源: opennet.ru
为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster