オープンソースのマルチプレイヤー ゲーム エンジン Ambient の最初のリリース

3 年間の開発を経て、新しいオープンソース ゲーム エンジン Ambient の最初のリリースが発表されました。 このエンジンは、WebAssembly 表現にコンパイルし、レンダリングに WebGPU API を使用するマルチプレイヤー ゲームおよび XNUMXD アプリケーションを作成するためのランタイムを提供します。 コードは Rust で書かれており、MIT ライセンスの下で配布されます。

Ambient の開発における重要な目標は、マルチプレイヤー ゲームの開発を簡素化し、その作成をシングルプレイヤー プロジェクトと同じように難しくしないツールを提供することです。 このエンジンは当初、WebAssembly 中間コードへのコンパイルが可能なあらゆるプログラミング言語でのゲームやアプリケーションの開発をサポートするユニバーサル ランタイムを作成することを目的としていました。 ただし、最初のリリースは今のところ Rust 開発のみをサポートしています。

新しいエンジンの主な特徴:

  • 透過的なネットワークのサポート。 このエンジンはクライアントとサーバーの機能を結合し、クライアントとサーバーのロジックを作成するために必要なすべてのコンポーネントを提供し、クライアント間でサーバーの状態を自動的に同期します。 共通のデータ モデルがクライアント側とサーバー側で使用され、バックエンドとフロントエンド間のコードの転送が簡素化されます。
  • 各モジュールを独自の隔離された環境で実行することで、信頼できないコードの影響を制限できます。 モジュールをクラッシュしてもアプリケーション全体がクラッシュするわけではありません。
  • データ指向のアーキテクチャ。 各 WASM モジュールで操作できるコンポーネントのシステムに基づいたデータ モデルを提供します。 ECS (Entity Component System) デザイン パターンを使用します。 すべてのコンポーネントのデータをサーバー上の集中データベースに保存し、その状態がクライアントに自動的にレプリケートされ、クライアント側でローカルの状態を考慮してデータを拡張できます。
  • WebAssembly にコンパイルされる任意のプログラミング言語でアンビエント モジュールを作成する機能 (現時点では Rust のみがサポートされています)。
  • Windows、macOS、Linux 上で実行でき、クライアントとサーバーの両方として機能するユニバーサル実行可能ファイルを出力として生成します。
  • 独自のコンポーネントと「コンセプト」(コンポーネントのコレクション)を定義する機能。 同じコンポーネントと概念を使用するプロジェクトでは、データが特定のプロジェクトで使用するために特別に設計されていない場合でも、データの移植性と共有が可能になります。
  • .glb や .fbx など、さまざまな形式でのリソースのコンパイルのサポート。 ネットワーク経由でのリソースのストリーミング ダウンロードの可能性 - クライアントはサーバーに接続するときに必要なすべてのリソースを受信できます (すべてのリソースがロードされるのを待たずに再生を開始できます)。 FBX および glTF モデル形式、さまざまな音声および画像形式をサポートします。
  • GPU を使用してレンダリングを高速化し、GPU 側のクリッピングと詳細レベルの変更をサポートする高度なレンダリング システム。 デフォルトで物理ベース レンダリング (PBR) を使用し、アニメーションとカスケード シャドウ マップをサポートします。
  • PhysX エンジンに基づく物理プロセスのシミュレーションのサポート。
  • React に似たユーザー インターフェイスを構築するためのシステム。
  • 現在のプラットフォームに依存しない統合された入力システム。
  • プラグインフィルターを備えた空間サウンドシステム。

開発はまだアルファ版の段階です。 まだ実装されていない機能としては、Web 上で実行する機能、クライアント API、マルチスレッドを管理するための API、ユーザー インターフェイスを作成するためのライブラリ、独自のシェーダーを使用するための API、サウンドのサポート、ロードと保存が挙げられます。 ECS (Entity Component System) コンポーネント、オンザフライでのリソースのリロード、自動サーバー スケーリング、ゲーム マップとゲーム シーンを共同作成するためのエディター。



出所: オープンネット.ru

コメントを追加します