Box3D オープンソース 3D 物理エンジン リリース
Box3D オープンソース 3D 物理エンジン リリース
Box3D は、実績のある Box2D のアーキテクチャに基づいた、高性能なオープンソース 3D 物理ソリューションを提供します
Box3D は、Box2D の設計思想と効率性を 3 次元空間に持ち込むために設計された 3D 物理エンジンです。Erin Catto によって開発されたこのエンジンは、C17 で記述されており、C API を提供するため、Web ベースのゲーム向けの WASM を含む、さまざまなゲームエンジンやプラットフォームへの統合に適しています。
コア技術仕様
Box3D は、Box2D とほぼ同一のアーキテクチャを維持しており、すでに 2D の兄弟エンジンを使用している開発者にとって馴染みのあるワークフローを保証します。主な技術的特徴は以下の通りです:
- 衝突サポート: 三角形メッシュ衝突、ハイトフィールド衝突、およびベイクされた複合衝突を含みます。
- ソルバーと衝突ロジック: サブステッピング・ソルバー、連続衝突判定 (CCD)、および広範な SIMD コンタクト・ソルバーを特徴としています。
- スケーラビリティ: 大規模なアイランドに対してグラフ彩色法を利用し、オプションの内部スケジューラを備えたマルチスレッド・フックを提供します。
- ワールド管理: 位置データに double を使用することで、広大なワールドをサポートします。
- ユーティリティ: 組み込みの記録およびリプレイ機能を含みます。
開発の起源:Rubikon-Lite から Box3D へ
Box3D は、Unreal Engine で構築されたサバイバルゲーム The Legend of California の特定の技術的要件から生まれました。開発者は Unreal のネイティブ物理エンジンである Chaos において、いくつかの制限に直面しました。具体的には、ジャイロスコピック・トルクのサポート不足(細長い物体が不自然に回転する原因となる)や、滑らかな三角形メッシュ上に落下する大きなカプセルをシミュレートする際の不安定な挙動です。
これらの問題を解決するために、Catto は当初、Dirk Gregorius によって維持されている Half-Life: Alyx で使用されている Rubikon エンジンのホビー版である "Rubikon-Lite" をフォークしました。時間の経過とともに、Rubikon-Lite のフォークは、2D と 3D のプロジェクト間で一貫性を維持するために、その API、データ構造、およびアルゴリズムを Box2D v3.0 のものに置き換えることで進化しました。Rubikon-Lite の一部の凸包生成および衝突アルゴリズムは残っていますが、結果として得られたエンジンが現在の Box3D です。
大規模なオープンワールド向けの最適化
Box3D は、何十万ものエンティティを持つサーバー権限型のオープンワールド向けに構築されているため、規模と複雑さに特化した最適化が含まれています:
- 複合衝突システム: 数千の個別の衝突メッシュ(例:大規模な要塞)をロードする際のメモリと CPU のオーバーヘッドを避けるため、Box3D は個別の形状を単一の最適化された uber-shape に「クック」することを可能にします。
- Voxel 統合: このエンジンは、median split を使用した高速な実行時衝突メッシュ構築に最適化されており、特にグリッド状の voxel テレインに特化しています。
- ブロードフェーズの効率性: このエンジンは、ラグドール、voxel、および環境オブジェクトのサーバー側シミュレーションに必要な高いエンティティ数を管理するために、高速なブロードフェーズを実装しています。
現在のステータスとエコシステム
Box3D は現在、アルファ版ソフトウェアとみなされています。開発者はまもなく v0.1 をタグ付けする予定であり、長期的な目標は v1.0 に到達することです。将来の計画されている機能拡張には、改良されたジョイント・ソルバー、より優れた ghost 衝突の軽減、および強化されたキャラクター移動機能が含まれます。
早期採用
アルファ版であるにもかかわらず、Box3D はすでにいくつかのプロジェクトで利用されています:
- The Legend of California: エンジンの開発の主な推進力です。
- s&box: Facepunch Studios によるゲームプラットフォームです。
- Esoterica: オープンソースのゲームエンジンです。
- A 1000-player space game: Glenn Fiedler によるマルチプレイヤープロジェクトです。
コミュニティの洞察
業界の実務家や開発者は、このエンジンの特定のユースケースにおける可能性に注目しています。ある開発者は、このライブラリの小さなフットプリント(macOS 上で約 916K)を強調し、より大きな 3D 物理ライブラリがしばしば禁止的なコストとなる Web ゲーム向けの Emscripten/WASM コンパイルに理想的な候補であることを示唆しています。他の開発者は、Jolt や Rapier といった既存の代替手段と比較し、オープンソースの 3D 物理オプションの多様性が増していることを指摘しています。