世界を動かす技術を、日本語で。

オープンソースの3D物理エンジン「Box3D」

2026年7月1日原文(box2d.org)

概要

  • Box3D は、Box2Dをベースにした オープンソースの3D物理エンジン
  • GitHub で無料公開、C APIや高機能な物理シミュレーションを搭載
  • The Legend of California 開発のために誕生、他ゲームやエンジンでも活用
  • カスタマイズ性と知識の蓄積 が主な開発理由
  • 今後も機能追加・ドキュメント整備・コミュニティ支援を継続予定

Box3Dリリースのお知らせ

  • Box3D は、 Box2D を基盤に拡張した 3D物理エンジン
  • GitHub で公開、誰でも利用・貢献可能
  • 主要な追加機能
    • 三角メッシュ衝突判定
    • ハイトフィールド衝突
    • 複合衝突形状のベイク
  • コアアーキテクチャは Box2D とほぼ同一
  • C17 による実装、 C API を提供
  • 主な技術的特徴
    • サブステッピングソルバー
    • 連続的な衝突判定
    • 大規模アイランド向けグラフ彩色
    • ワイドSIMD対応のコンタクトソルバー
    • マルチスレッドフック、内部スケジューラ(オプション)
    • ダブル精度 による広大なワールド対応
    • 記録・リプレイ機能

Box3D開発の背景

  • The Legend of California (Kintsugiyama開発)のためにBox3Dを開発
  • Unreal Engine の標準物理エンジン(Chaos)に課題
    • ジャイロトルク未対応(2024年末にEpicが追加)
    • 木の倒壊などの挙動が不安定
    • サーバー上で数十万のエンティティ管理が必要
  • 既存物理エンジン(Jolt等) の利用も検討したが、自作エンジンを選択
  • Dirk Gregorius (Valve)の助言で Rubikon-Lite をUnrealに導入
    • ジャイロトルクや木の倒壊が正しく再現
    • 独自スクリプトシステムやカスタムECSとの親和性
  • Box2D v3.0 の最適化をRubikon-Liteに統合
    • 2D/3Dのデータ構造・APIを共通化
    • Convex hull生成や一部衝突判定はRubikon-Lite由来
    • その他はBox2DやBox3D独自コード

カスタム物理エンジンのメリット

  • 大規模オープンワールド やサーバー権限の設計に最適化
  • 木の倒壊ボクセル地形 への高速最適化
  • 複合衝突形状 の一括読み込みによるメモリ・パフォーマンス改善
    • 例:5万個の衝突メッシュを1つの大形状として最適化

Box3D開発のもう一つの理由

  • 知識の継承と維持
    • 転職時に物理エンジンの知見が失われる課題
    • Box2D は知識のオープンソース化の成功例
    • 3D分野でも同様の資産化を目指す
  • Kintsugiyama の協力で業務時間中もBox3D開発が可能

Box3Dの利用メリット

  • Box2D の設計思想・APIが好きな人に最適
  • オープンソース で商用・非商用問わず利用可能
  • 競合製品との競争ではなく、 物理エンジン開発の楽しさ が動機
  • Box2D/Box3D を基盤に多くのゲームが誕生

Box3Dの導入方法

  • gitCMake をインストールし、Box3Dリポジトリをクローン
  • README にビルド手順を記載
  • サンプル実行で機能を体験可能
  • サンプルコードや Doxygenコメント 付きヘッダーで学習
  • HelloWorldテスト に最小限のサンプルコードあり

Box3Dの採用事例

  • The Legend of California (Kintsugiyama)
  • s&box (Facepunch Studiosのゲームプラットフォーム)
  • Esoterica (Bobby Anguelov主導のオープンソースゲームエンジン)
  • A 1000-player space game (Glenn Fiedlerによるマルチプレイヤーゲーム)

Box3Dの今後

  • 現在は アルファ版 扱い、近日中に v0.1 をタグ付け予定
  • 今後のタスク
    • キャラクター移動機能の拡張
    • ゴースト衝突の改善
    • 各種最適化
    • ジョイントソルバーの強化
  • Box2D同様、長期サポートを予定
  • 将来的には Pull Request を受け入れ予定(CLA利用)
  • ブログや動画で継続的に情報発信予定
  • 専用サイトやDiscordサーバーは設けず、 Box2D Discord でコミュニティ運営

The Legend of CaliforniaとBox3Dの今後

  • The Legend of California の公式サイトやSteamページで進捗公開
  • Box3D開発支援
    • GitHub Sponsor
    • Patreon での支援受付
  • サポートへの感謝

Hackerたちの意見

Joltと比べるとどうなんだろうね。どっちも良い経歴があるし、ひとつはValveとEric Cattoから、もうひとつはHorizonのゲームで使われてるみたい。

Box2Dは、俺が若い頃にたくさんの面白い物理系インディーゲームの基盤だったな。復活する余地はまだあるのかな?

最初から無料でオープンソースの3D物理エンジンはあまりなかったよね。古い先駆者たちはODE、Bullet、Newton Dynamics(どれも2000年代初頭にリリースされた)で、その後はほぼ20年何もなくて、2021年にJolt、そして今Box3Dが出てきた。こんな少数で特別なリストに新しい仲間が加わるのは大歓迎だね :)

Incredibotsに夢中になってたのを覚えてる!あの頃にBox2Dのことを知ったんだ。

昔、Chipmunk2Dをちょっと使ってたけど、俺がやってた難解なことにはそれが使いやすかったな。

Box2Dはまだまだいい感じだよ!2Dの物理ゲームプロジェクトには絶対おすすめ。Box2Dと今のBox3DのC APIは本当に使いやすい。

Valveの方では、Rubikonが進化し続けていて、Dirkが新しいエンジンRagnarokで最適化を進めてるんだって。未来のValveゲームでそれが見られるかも。待って…。

Valve Box3D 3D 3 希望!

ハーフライフ 2D 確定?

期待しない方がいいよ、デッドロックのバレーボールゲームモードで使われるみたいだから。

Valveが「HLX」っていうコードネームのゲームを作ってるらしいよ。物理機能がめっちゃ使われてるみたいだけど、「HLX」って何の略かは全然わからない。

数年前、PythonでBox2Dを使って、2D平面上でいくつかの物体を自然に動かしてたんだ。ランダムなインパルスで軽く揺らされる感じ(雨の日の池の睡蓮みたいに)。楽しいプロジェクトだったし、Box2Dとの作業は快適だった。Box3Dを使うのが楽しみ!

Hacker Newsで議論の続きを見る