Cave Engine 1.4.1 がリリースされました。このアップデートはパフォーマンス、ワークフローの改善、新しいAPIに焦点を当てており、開発をより速く、拡張性の高いものにします。Pythonで3Dデスクトップゲームを作成している方には、このリリースはランタイム効率、エディターの使いやすさ、全体の安定性を直接的に向上させます。ご存じない方に説明すると、Cave Engineはデスクトップ開発向けに設計された高性能3Dゲームエンジンで、C++コアとPythonスクリプトを組み合わせて高速な反復開発を可能にしています。レンダリング、システム、パフォーマンスを完全にコントロールしたい開発者を対象にしており、生産性を犠牲にしません。
利用者が増加し、急速にユーザーベースが拡大する中でアップデートのリリースも早まっており、1.4.1はその勢いを反映しています。前回のリリースはわずか2週間前でした。:)
マイナーリリースですが、レンダリング、ツール群、APIの一貫性にわたって意味のある改善をもたらします。近 weeksにエコシステムに加わった数百人の新ユーザーからの直接的なフィードバックも反映しています。それでは、変更点を詳しく見ていきましょう。

DDSテクスチャのサポート
Caveは .dds テクスチャのインポートをサポートするようになりました。主なフォーマットや圧縮バリアントも含まれています。これにより最適化されたテクスチャパイプラインやDDSフォーマットを既にエクスポートする外部ツールを使う際の柔軟性が増します。
変換マトリクスのキャッシュ
TransformComponent、TerrainComponent、およびArmatureのボーンを含むエンジン全体で変換マトリクスがデフォルトでキャッシュされるようになりました。これによりレンダリングと物理計算の両方が改善されます。
内部ストレステスト(10,000以上のユニークなエンティティで)では、この変更だけで平均約10FPSの向上が確認されました。エンジンはいつ変換を再計算する必要があるかをより正確に予測できるようになり、フレームごとの不要な処理を減らしています。
Python APIの変更(更新必須)
この最適化のために、変換取得メソッドが参照を返さなくなりました。
以下は動作しません:
transf.getPosition() = cave.Vector3(1,0,0)
今後は明示的に値を設定してください:
transf.setPosition(cave.Vector3(1,0,0))
getPositionCopy()は削除されました。getPosition()は既にコピーを返します。
このトレードオフはキャッシュの一貫性を保証し、パフォーマンス改善を可能にするために必要でした。古いCaveバージョンからプロジェクトを移植する場合は、コードが壊れる可能性があるため上記の修正を行う必要があります。
新しいProfiler UI
Profiler UIが再設計され、より明確で使いやすくなりました。パフォーマンスのボトルネックをより速く、より正確なデータで特定できるようになっています。右側のProfilerタブをご確認ください:

内部的にもプロファイリングシステムの改善が行われ、計測精度が向上し、フレーム時間に影響を与える要素をより詳しく把握できるようになっています。
レンダーグラフ評価の高速化
追加のキャッシングとスレッド処理の改善によりレンダーグラフの評価が最適化されました。大規模シーンは以前よりもCPUを大幅に消費していましたが、このアップデートで評価処理が大幅に高速かつ効率的になりました。この改善は変換キャッシュシステムと密接に関連しています。
重要な分析データ収集
Caveは安定性向上とバグ修正の迅速化のために基本的な使用状況分析を収集するようになりました。
この決定はコミュニティで議論され投票も行われ、ほとんどのユーザー(92.8%が賛成)がこのアプローチを支持しました。収集されるデータは厳密に技術的なもので、あなたのプロジェクト、アセット、コード、個人情報は一切含まれません。
収集データには以下が含まれます:
- エンジンの使用パターン(適切に起動・終了したか、ゲームが問題なく開始・停止したか)
- クラッシュレポート
- エクスポート状況
これにより実際の問題を可視化し、修正の優先順位付けを効果的に行えます。主な目的は、皆さんがCaveで遭遇する可能性のある問題をより速く優先的に修正・改善することです。
また、エディター右上にはフィードバック送信ボタンが追加されており、いつでもエンジンから直接フィードバックを送ることができます。
新しいPython API: cave.ui.textAsProp(...)
エディター内のツール開発向けに新しいAPIが利用可能になりました。
テキストをプロパティフィールドのように表示できるため、カスタムツールのUXが向上し、エディターインターフェイスとより一貫した統合が可能になります。
デバッグベジェ描画の改善
シーンの addDebugBezier(...) はベジェ曲線をより良いビジュアルとパフォーマンスでレンダリングします。
次の特徴があります:
- 曲線に沿って移動する方向矢印
- 滑らかなレンダリング
- 大量のベジェでの高いパフォーマンス
数百本のデバッグベジェをシーン内で使ってもパフォーマンス問題がなくなりました。これらはあくまでデバッグ専用であり、最終ビルドやプレイモード中のゲームには含まれません。
PathComponent – 新メソッド
PathComponent に以下の新しいPython APIメソッドが追加されました:
-
generateDerivativePath(self, outPath: PathComponent, width: float = 1) 接続性を維持しつつ辺を両側にオフセットして新しいパスを生成します。
-
balanceEdgeDirections(self) ノード接続における方向の衝突を減らすために辺の方向を再割り当てします。
-
mergeByDistance(self, distance: float = 0.001) 指定距離以内のポイントをマージします。
-
clear(self) パスのすべてのポイントと辺を削除します。
これらの追加により、プロシージャル生成やパスマニピュレーションのワークフローが拡張されます。
ドキュメント編集の改善
ドキュメント編集がより直接的になりました。 "Edit" タブを開くと、別ウィンドウを起動せずに文書全体をインラインで編集できます。これによりエディター内の執筆ワークフローの摩擦が減少し効率が向上します。
メッシュとImageTextureの最適化
コアシステムに対してパフォーマンス改善が適用されました:
- Meshの
mergeByDistance(...)はO(n²) から O(n) に改善 ImageTextureの読み込みが高速化
これらの変更により、大規模なシーンやアセットが多いプロジェクトでの処理時間が短縮されます。
バグ修正
- Dear ImGuiによるランダムなGPUクラッシュを修正
- OpenGLクラッシュを修正
- オンボーディングウィンドウが完了後に繰り返し表示される問題を修正
最後に
Cave Engineは実際の使用とコミュニティからの直接フィードバックによって急速に進化し続けています。このリリースはパフォーマンス、安定性、そしてより良いツールに焦点を当てており、日々のワークフローに直結した改善をもたらします。
すでにCaveを使っている方は今すぐアップデートし、これらの改善を活用してください。
Pythonでの3Dデスクトップ開発に適したゲームエンジンを検討中の方にとって、このリリースはCaveを信頼できる、製品レベルの選択肢としてさらに強化しました。興味がある方はCave Engine 1.4.1の価格とプランをこちらでご覧ください:
Cave Engineの詳細を見る
FAQ
Cave Engineは3Dデスクトップゲームに適していますか?
はい。CaveはC++コアとPythonスクリプトによる高性能3Dデスクトップ開発向けに特化して作られています。
変換キャッシュはコードを壊しますか?
参照の戻り値に依存している場合のみコードが壊れます。今後は setPosition() のようなセッターを使う必要があります。
分析データは安全ですか?
はい。収集されるのは技術的なデータのみで、個人のファイル、アセット、コードは含まれません。
このアップデートでCave Engineは速くなりましたか?
はい。変換キャッシュ、レンダーグラフの最適化、メッシュの改善がパフォーマンス向上に寄与しています。
スポイラー
Cave 1.6に向けた小さなスポイラーです:
