首次發布開源多人遊戲引擎 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(Entity Component System)組件、動態重新加載資源、自動服務器擴展、協作創建遊戲地圖和遊戲場景的編輯器。



來源: opennet.ru

添加評論