debuff vs Excalibur
Excalibur と debuff は、どちらも 2D ブラウザゲーム向けの TypeScript ファーストなツールキットです。Excalibur は「バッテリー同梱」を掲げ、それを何年も続けてきました。debuff はもっと若くて小さく、決定性、テスト、コーディングエージェントに力を入れています。2026 年 10 月時点での比較です。
結論から
物理、Tiled と LDtk のプラグイン、UI、成熟した API など、今すぐ使える組み込みシステムを多く求めるなら Excalibur を選びましょう。より小さなランタイム、決定的なテストとファズ、実行中のゲームにアタッチできるエージェントが欲しいなら debuff を選びましょう。
ひと目で比較
| debuff 0.2 | Excalibur 0.32.0 | |
|---|---|---|
| ライセンス | MIT | BSD-2-Clause |
| 言語 | TypeScript | TypeScript |
| レンダリング | WebGL2、Canvas 2D フォールバック | WebGL と Canvas(ドキュメント) |
| 物理 | タイルとの当たり判定 | 組み込み |
| タイルマップ | Tiled と LDtk | Tiled と LDtk のプラグイン |
| オーディオ、入力、シーン、トゥイーン、パーティクル | 組み込み | 組み込み |
| ランタイム全体(brotli) | 20 kB(debuff の全パッケージ) | 118 kB(excalibur.min.js) |
| テスト | シナリオ、スクリーンショットのベースライン、ファズ | @excaliburjs/testing:Puppeteer とスクリーンショット比較 |
| コーディングエージェント | 実行中のゲーム向けの MCP サーバー、AGENTS.md | llms.txt なし(404)、MCP サーバーは見つからず |
| コミュニティ | 小さい | 確立している(Discord、GitHub Discussions) |
debuff20 kB
Excalibur118 kB
各ライブラリのビルド済みバンドル全体(debuff の全パッケージ、excalibur.min.js)を brotli で圧縮し、2026年10月17日に計測しました。ツリーシェイキングしたゲームはさらに小さくなります。
Excalibur が強いところ
- 組み込みシステム。 物理、アクション、UI レイヤー、公式のタイルマッププラグインがあるので、自分で書く量が減ります。debuff には剛体物理がありません。
- 成熟度。 長年のリリース、ドキュメント化された API、サンプルとチュートリアル。
- テストがある。 Excalibur のテスト用パッケージは本物のブラウザでゲームを動かしてスクリーンショットを比較します。たいていの Web エンジンよりも充実しています。
debuff が違うところ
- 設計段階から決定的。 debuff の固定ステップのクロックとシード付き乱数で、同じ入力からは同じゲームが生まれます。シナリオはピクセルだけでなく状態も検証でき、記録したセッションは正確に再生されます。
- ファズ。
npx debuff fuzzはランダムだけれどもっともらしい入力でゲームをプレイし、クラッシュ、スタック状態、ループをそれぞれ再現するシナリオとして保存します。同じシードで実行を繰り返せるので、CI のゲートにも使えます。 - 実行中のゲームの上で動くエージェント。 debuff の MCP サーバーを使えば、エージェントはあなたが開いているゲームにアタッチできます。オーバーレイでフラグした瞬間を読んで
game_replayで再現し、取り消し可能な型付きパラメータも調整します。エージェント比較の記事もどうぞ。 - サイズ。 debuff のランタイム全体は Excalibur のバンドルの約 6 分の 1 です。
どちらを選ぶか
物理をはじめ多くのシステムを組み込んだ、成熟した TypeScript エンジンを求めるなら、Excalibur を使いましょう。テストとエージェント向けツールのほうが大事なら、debuff を試してみてください。
bash
npm create debuff@latest my-game