2026年、最高のボクセルゲームエンジン — そしてインストール不要のひとつ
自分だけのボクセルゲームエンジンを作る
ボクセルゲームエンジンを比較 — Hytopia、Noa、Luanti、Godot、Unity — さらに、何もインストールせずに歩いて入れるブラウザのボクセルワールド。
ボクセルゲームエンジンは3つのグループに分かれます。専用のボクセルエンジン、ボクセル層を後付けした汎用エンジン、そして何もインストールせずにタブ内でレンダリングするブラウザワールドです。専用エンジンは初日からチャンクの保存、メッシュ化、光の伝播を用意してくれますが、その代わり周囲のすべてを制約します。汎用エンジンは完全なツールチェーンを提供し、チャンクのパイプラインを宿題として渡してきます。ブラウザワールドはインストールとビルド手順をまるごと省きます。
このページでは、Hytopia、Noa、Luanti、ボクセルプラグインを使ったGodot、ボクセルプラグインを使ったUnityを比較します。それぞれが実際に何であるか、その中で何を書くのか、どこで時間を費やすのかを扱います。最後にブラウザという選択肢を紹介します。それは、説明したその同じ瞬間に開いて歩き回れるワールドです。
早わかり:どのボクセルエンジンを使うべきか?
NoaやLuantiのような専用ボクセルエンジン:ワールドデータそのものが製品であり、画面上に何かを見る前にメッシャーやチャンクストリーマー、フラッドフィルの光処理を書きたくない場合に使います。
GodotやUnityのような汎用エンジン+ボクセルプラグイン:アニメーション、UI、物理、オーディオ、入力マッピング、プラットフォーム書き出しが必要で、他人のフレームループの中でチャンクパイプラインを自分が持つことを受け入れる場合に使います。
Neta Studioのビルダーのような、インストール不要のブラウザワールド:最初の障害が、別の人にワールドを見てもらうことであり、ダウンロード、ツールチェーン、ビルド手順よりもリンクのほうが安い場合に使います。
決め手は、自分のクリティカルパス上に何があるかです。難しいのがコンテンツなら、アイデアとその中を歩き回ることの距離が最も短いパイプラインを選びます。難しいのがシミュレーション、つまり何千もの相互作用するブロック、独自の物理、決定論的なネットワーク状態なら、プロファイルし、パッチを当て、再コンパイルできるツールキットを選びます。
エンジン、比較
以下に5つの選択肢を、順位ではなく形で説明します。いずれもボクセルをレンダリングします。違いは、何を渡してくれるか、そして見返りに何を期待するかです。
まず言語の列を読んでください。ネイティブのビルド手順なしでランタイムのどこまでを変更できるかが決まり、それが深夜2時のデバッグの仕方を左右します。
Hytopia
Hytopiaは、JavaScriptとTypeScriptのSDKを備えたホスト型のボクセルゲームプラットフォームです。ワールドはボクセルベースで、クライアントはブラウザで動作し、マルチプレイヤーは自分で追加するものではなくプラットフォームの一部です。SDKのエンティティAPIとプレイヤーAPIに対してゲームロジックを書き、サーバーはプラットフォームが処理します。引き換えに、あなたのゲームは彼らのランタイム上で動きます。設定とスクリプトはできますが、エンジンの単体バイナリを配布することはできません。
Noa
NoaはThree.jsの上に構築されたJavaScriptのボクセルエンジンで、ブラウザを対象としています。チャンク化された地形、メッシュ生成、エンティティシステム、簡単な衝突と重力を処理し、残りは自分で持ち込むことを期待します。レンダリングの設定、入力、ゲームルール、ネットワークです。そのAPIは端から端まで読めるほど小さく、それが本当の利点です。何かがおかしな挙動をしたとき、失敗はブラックボックスではなく、開いて読めるコードの中にあります。
Luanti(旧Minetest)
Luantiは、かつてMinetestと呼ばれていた、単一のゲームではなくオープンソースのボクセルプラットフォームです。エンジンはC++ですが、ゲームプレイはLuaで書かれたゲームとMODとして提供されるため、再コンパイルせずにブロックの挙動、クラフト、エンティティを変更できます。ワールドは16x16x16のマップブロックからなるノードグリッドで、サーバーはネットワーク経由でクライアントにブロックを配信します。ローカルでサーバーを動かせ、同じサーバーコードがレンタルホスト上でも動きます。active_block_rangeやmax_block_send_distanceといった設定が、プレイヤーがどこまで見えるか、クライアントがどれだけRAMを使うかを決めます。
ボクセルプラグインを使ったGodot
Godotのコアエンジンにはボクセル地形がありません。自分で追加します。チャンクメッシュを生成するコミュニティのアドオンか、ArrayMeshのサーフェスと衝突形状を生成する自作のメッシャーです。Godotはボクセルを囲む部分、つまりシーンツリー、AnimationPlayer、UI、物理ボディ、入力、書き出しテンプレートを提供し、さらにメッシュ化コード用にGDScript、C#、GDExtension経由のC++を提供します。チャンクメッシュの生成はワーカースレッドかWorkerThreadPoolのタスクに属します。メインスレッドで行うことが、プレイヤーがチャンクの境界を越えるときの引っかかりの通常の原因です。
ボクセルプラグインを使ったUnity
Unityは、より重いツールチェーンで同じ話です。ボクセル地形はプラグインか自作のチャンクシステムから来ます。生産的な道は、C# Job SystemのBurstコンパイルされたジョブで、ワーカースレッド上でメッシュデータを生成し、Mesh.SetVerticesなどの呼び出しでアップロードすることです。繰り返し問題になるのは衝突です。チャンクごとのMeshColliderは計算に非常にコストがかかるため、多くのプロジェクトは代わりにブロックグリッドに対するボクセルのレイキャストとAABB衝突を書きます。Unityのアニメーション、UI、オーディオミキサー、ビルドパイプラインをデスクトップとWebのターゲットにまたがって維持できます。
| エンジン | 形 | 書く言語 | 実行方法 |
|---|---|---|---|
| Hytopia | SDKを備えたホスト型ボクセルプラットフォーム | TypeScriptまたはJavaScript | 彼らのホスト型ランタイム上のブラウザクライアント |
| Noa | Three.js上のブラウザボクセルエンジン | JavaScript | 自分のページと自分のサーバー |
| Luanti | Luaのゲームを備えたオープンソースのボクセルプラットフォーム | ゲームとMODにはLua | インストールしたクライアント+自前でホストするサーバー |
| Godot+ボクセルアドオン | ボクセル地形を追加した汎用エンジン | GDExtension経由のGDScript、C#、またはC++ | デスクトップ書き出し、またはブラウザビルド用のWeb書き出し |
| Unity+ボクセルプラグイン | ボクセル地形を追加した汎用エンジン | C#、メッシュ化にはBurstジョブ | デスクトップ、コンソール、またはWebGLビルド |
| Neta Studio 3Dゲームビルダー | ブラウザのワールドビルダー | 平易な言葉による説明 | ブラウザのタブ、インストール不要 |
何もインストールせずにボクセルワールドをプレイする
ボクセルワールドを作りたいかどうかを決める最速の方法は、その中に立つことです。Neta Studioの3Dゲームビルダーはブラウザのタブで動作します。ワールド、地形、雰囲気、構造物の説明を入力すると、ビルダーがWASDとマウスで歩き回れるプレイ可能なThree.jsシーンを生成します。SDKも、エディタのインストールも、ビルド手順も、先に配線すべきアセットパイプラインもありません。
手に入るワールドは、動画ではなく本物のジオメトリです。それに衝突し、カメラをその中で動かし、変更を説明することで世界を変えられます。水位を上げる、橋を架ける、谷を広げる、そして再生成する。エージェント・スプライト・フォージは2Dレイヤーを担当します。エージェント、小道具、ピックアップ用のスプライトで、シーンがキャラクターアーティストを待って止まることはありません。Mini Worldは最小のデモで、ノートパソコンでの最初のターゲットに最適です。キュクロプスの島はより大きな作り込まれたワールドで、地形と照明が平坦でないときのシーンの姿を示します。
これができないこと:専用エンジンのようなブロック単位のスクリプトAPIは提供せず、ストア向けの単体実行ファイルも生成しません。これはパイプラインのレビューと反復を行う端であり、ボクセルワールドとは何かを別の人に示す最短の方法です。
01
最新のデスクトップブラウザでビルダーを開きます。Chrome、Edge、Firefox、Safariはすべて動作します。必要なのはWebGL2をサポートするGPUで、デモワールドなら内蔵グラフィックスで十分です。
02
ワールドを説明する1文を書きます。具体的な名詞は形容詞に勝ります。霧の松の島に石の塔と浅いラグーンがある、という文は、クールな島よりもジェネレーターに多くのものを配置させます。
03
生成してから歩きます。移動はWASDとマウスルックです。まず斜面の衝突と水際を確認します。生成された地形は通常そこが間違っているからです。
04
個々のブロックを動かすのではなく、変更を説明して編集します。ワールドがまだ流動的なうちは、手作業でジオメトリを配置するより再生成のほうが安くつきます。
05
顔が必要なもの、つまりエージェント、小道具、ピックアップには、エージェント・スプライト・フォージでスプライトを追加します。
06
リンクを共有します。相手はタブを開くだけで、何もインストールせずに同じワールドに降り立ちます。
本当に重要なこと
4つの性質が、ボクセルエンジンが3か月目に快適か苦痛かを決めます。どれも機能一覧には載っておらず、すべてコミットする前に測定できます。
ワールドの大きさ
ストレージは安く、ストリーミングは安くありません。ワールドは通常16x16x16または32x32x32のブロックのチャンクに分割され、エンジンはそれらの半径分を常駐させます。メモリはおおむね半径の3乗でスケールするので、視距離を2倍にすると、メッシュを数える前でブロックデータが約8倍になります。座標も重要です。float32の位置は原点から遠く離れると精度を失い、10万ユニットをはるかに超えたあたりでカメラのジッターやZファイティングとして現れます。エンジンはこれを原点の再基準化かカメラ相対レンダリングで処理します。大陸を計画する前に、自分のエンジンがどちらなのかを調べましょう。
照明
ボクセルの照明は通常フラッドフィルです。各ブロックは光レベルを保存し、太陽光は不透明なブロックに当たるまで下方向に伝播し、たいまつは減衰しながら外側へ伝播します。ブロック単位では安く、正しく保つのは高くつきます。プレイヤーがブロックを設置または破壊すると、そのチャンクと隣接チャンクの光を再計算する必要があり、隣接チャンクを省くと、明るい継ぎ目として境界を越えて光が漏れます。エンジンが光を頂点カラーに焼き込むなら、編集のたびにメッシュを焼き直します。シェーダーで照らすなら、ユニフォームの制限と追加のドローコールという形で支払います。
マルチプレイヤー
ボクセルのマルチプレイヤーは、主に帯域幅の問題です。サーバーが権威を持ち、ブロックグリッドを保持し、クライアントは位置ではなく意図を送ります。編集だけが差分として流れ、関心半径内のチャンクだけがそもそも送られるため、通信量はワールドの大きさではなく、プレイヤー数×視半径でスケールします。2人のクライアントが同じティックで同じブロックを掘るのは、答えを定義しなければならない現実のケースです。選んだエンジンにネットワーク機能がなければ、関心システム、差分フォーマット、クライアント予測を自分で書くことになります。それは機能ではなくプロジェクトです。
ブラウザで動作する
ブラウザをターゲットにするとインストール手順がなくなり、これは誰かにワールドを試してもらうときに最大の離脱要因です。代償はより小さな予算です。WebGL2のドローコール、SharedArrayBufferのためにクロスオリジン分離を設定しない限り単一のJavaScriptメインスレッド、そしてすべてのアセットのダウンロードサイズです。WebGPUは現在のデスクトップブラウザに存在しますが一様ではないため、WebGL2へのフォールバックは今も標準的な慣行です。ワールドがタブで動くなら、メッセージで送れます。ランチャーが必要なら、それはできません。
ボクセルサンドボックス対ボクセルエンジン
ボクセルサンドボックスは、たまたまブロックで作られた完成したゲームです。ダウンロードして遊び、ブロックのパレットは開発者が配布したものです。ボクセルエンジンはツールキットです。チャンクの保存、メッシュ化、レンダラー、そして自分が書く対象となるAPIです。この区別が重要なのは、検索結果が両方に同じ言葉を使うからです。
ページ上のシグナル。ランチャーとスクリーンショットギャラリーがあれば、それはサンドボックスです。APIリファレンス、クラス名、インストールするパッケージがあれば、それはエンジンです。ブロックタイプが、実行時に登録するオブジェクトではなく、編集するデータファイルであれば、その製品がどの層にあるかを教えてくれます。書き出しや単体ビルドの経路があれば、あなたはツールキットを買っています。公開する唯一の方法が彼らのプラットフォーム内なら、あなたはそれを借りています。
ハイブリッドはよくあり、名指しする価値があります。Luantiはプラットフォームです。エンジンはツールキットで、配布されるゲームはその上に作られたサンドボックスであり、どの層で作業するかを選べます。HytopiaはSDKであると同時にホスト型ランタイムなので、他人のサーバー上で実行されるエンジン層のコードを書きます。ブラウザビルダーはコンテンツ寄りの極端に位置し、システムではなくワールドを生み出します。機能一覧を比べる前にどの層を所有したいかを決めましょう。優れたエディタを備えたサンドボックスは、APIを備えたエンジンの代わりにはならないからです。
それが属する世界を歩こう
スプライトは、立つ場所を持たないキャラクターです。最後のステップは他にはないものです。今作ったシートを持って、誰かが歩き回れる世界に置きましょう。小さな島、惑星、雨の街角などです。このサイトのワールドはすべて、1つの書かれた説明から作られ、プレイできるページとして公開されています。
FAQ
ブラウザでボクセルゲームを作れますか? +
はい。メッシュ化、衝突、フラッドフィル照明を備えたチャンク化ボクセルワールドは、タブ内のWebGL2で動作し、Three.jsがレンダリング側を処理します。NoaとHytopiaはどちらもブラウザを対象にしており、Neta Studioのビルダーは何もインストールせずに歩き回れる、ブロックで作られたワールドを生成します。制約はドローコール、単一のJavaScriptメインスレッド、アセットのダウンロードサイズです。
Godotはボクセルに向いていますか? +
Godotはボクセルの周辺のすべてに強く、ボクセル自体については中立です。組み込みのボクセル地形はないので、チャンクシステム、メッシャー、衝突を、コミュニティのアドオンか自作コードから追加し、ストリーミングがフレームを止めないようワーカースレッドでメッシュを生成します。すでにGodotを知っているなら、それは妥当な取引です。知らないなら、エンジンを学びながらボクセル層を書くことになります。
Luantiは無料ですか? +
はい。かつてMinetestという名前だったLuantiプロジェクトは無料かつオープンソースで、有料プランも、プレイやホストに必要なアカウントもありません。自分のマシンでもレンタルホストでもサーバーを動かせ、その上のゲームとMODはLuaで書かれているので、エンジンを再ビルドせずにゲームプレイを変更できます。
ボクセルエンジンを作るのにC++は必要ですか? +
通常は不要です。HytopiaはJavaScriptとTypeScript、NoaはJavaScript、LuantiのゲームプレイはLua、GodotはGDScriptとC#、UnityはC#です。C++に手を伸ばすのは、エンジンコアを変更したり、GodotのGDExtensionモジュールやUnityのネイティブプラグインのようなネイティブ拡張を書いたりするときです。メッシュ化アルゴリズムはどちらでも同じです。
ボクセルとは何ですか? +
ボクセルは、整数座標でアドレス指定される規則的な3次元グリッド上の値であり、レンダリングする立方体ではありません。目に見えるブロックは、ボクセルの連なりから生成されたメッシュです。メッシャーはグリッドを走査し、空き空間に接する面だけを出力し、グリーディメッシュ化は同じブロックタイプの同一平面上の面をより大きなクワッドに統合します。保存されるのはグリッドであり、目に見える立方体はレンダリング上の決定です。
ボクセルゲームでマルチプレイヤーはどう機能しますか? +
サーバーが権威あるブロックグリッドを保持し、クライアントは位置ではなく意図を送ります。編集だけが差分として流れ、サーバーは各プレイヤーの周囲の関心半径内のチャンクを配信するため、帯域幅はワールドの大きさではなくプレイヤー数×視半径でスケールします。クライアント側予測は移動の往復遅延を隠し、サーバーは2人のプレイヤーが同じティックで同じブロックを編集するケースを解決します。
ボクセルのパフォーマンス問題の実際の原因は何ですか? +
3つあり、順に、メインスレッドでのメッシュ化、多すぎるドローコール、コライダーの計算です。チャンクメッシュはワーカーで生成して完成したバッファをアップロードし、ブロックごとに1オブジェクトではなくチャンクごとに1メッシュを保ち、チャンクをカメラの視錐台でカリングします。物理側では、チャンクごとのメッシュコライダーは、ブロックグリッドに対するレイキャストとAABBテストよりもはるかに高くつきます。
ブラウザで作ったワールドを書き出せますか? +
Neta Studioのビルダーはワールドをタブ内で実行するので、共有はリンクであり、相手にインストールは不要です。単体バイナリの書き出しパイプラインではないので、ダウンロード可能なビルドやコンソールパッケージが必要なら、自作のボクセル層を備えたGodotかUnityを選ぶべきです。多くのチームはブラウザでレイアウトを試作し、ワールドが変わらなくなったらエンジンで作り直します。
3Dゲームビルダーに戻る
31の完成した3Dワールド、ゲーム、シーンがすべて1ページに — そのすべてがプレイ可能です。