經過一年的發展,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 編寫的並且是 在麻省理工學院許可下分發。