ゲームエンジンの宣伝ページはどれも同じ顔をしています:機能アイコンが一列、そして「強力かつ柔軟」という形容詞の段落。エージェントは逆の道を選び、2D ゲームエンジンの機能リストそのものをゲームにしました。Engine Showcase は 3×3 グリッドに並ぶ 9 つの能力ステーション——それぞれがエンジン API 1 系統に対応する手で触れるおもちゃで、各ステーションにはライブの BENCH ボタンが付き、フレームタイムが予算を守れなくなるまであなたのデバイスに負荷をかけ続けます。そして本ブログの読者にとって最も重要な点:この demo には人間が作った素材が 1 枚もありません。 コインのアトラス、地形タイルセット、ロボットのパーツは Seedream 4 が Floniks の text-to-image 経由で生成;BGM 2 曲は Lyria 2 が Floniks の text-to-music 経由で生成;130 行の再実行可能な Python スクリプトが後処理をすべて担いました。ブラウザでそのまま遊べます——メニューから「Engine Showcase」を選んでください。
本稿は《スクリーンショット 1 枚から、パズルゲームを作る》と《ひと言から、ビジュアルノベルを出荷する》に続くシリーズで、同じオープンソースエンジン(rust_bevy_lua_game)を使っています。
一文が入り、9 つのステーションが出てくる
前日の午前中、並行する 2 本のエージェントパイプラインがエンジンのロードマップ上の P0/P1 ギャップをすべて解消しました:永続化、マルチタッチ、アトラスアニメーション、カメラリグ、ライブミキシング、CPU パーティクル、タイルマップ、切り紙スケルタルリグ、ローカル統計——game.* API 9 系統が、それぞれユニットテスト付きでマージされ、全工程が issue に分単位のタイム付きで記録されました。
午後の依頼はたった一文:これらの能力をすべてゲームの形で見せてほしい、そして各能力にベンチマークシーンを付けてほしい。 その 34 分後、demo はテスト全緑でコミットされました。
遊べる機能リスト
Engine Showcase は 3×3 の能力マトリクスです。9 枚のカードが API 1 系統ずつに対応——タップして開くのはドキュメントではなく、すぐに手を動かせるおもちゃです:

- VAULT——貯めたコインはプロセスを殺して再起動しても残る(iOS サンドボックス、デスクトップの設定ディレクトリ、ブラウザの localStorage——同じ 1 つの API)
- TOUCH——指 1 本につき光のリング 1 つ、最大 8 本
- ATLAS——6 フレームのシート 1 枚が画面いっぱいの回転コインを駆動
- CAMERA——画面 3 枚分の世界をドローンを追いかけてレンズが巡回
- MIXER——フェーダーを本当にドラッグできる 3 チャンネルのミキサー;再生中の音楽がその場で変わる
- SPARKS——タップした場所で花火が上がり、グローバル 512 パーティクル上限が可視化される
- TILES——指で描く地形エディタ、ブラシは 4 種類
- ROBOT——切り紙スケルタルロボット、頭があなたの指を目で追う
- JUICE——画面シェイク、ズームパンチ、ハプティクス、押すたびに分析ログが 1 行落ちる
すべてのステーションにベンチマークボタン
各ステーションの右上には BENCH が座っています。押すと、エンジンはあなたの目の前で自分に負荷をかけていきます:より多くのスプライト、より多くのパーティクル、より大きな全マップ書き換え、より多くの歩くスケルトン——1 段ずつ上げながら、スライディングウィンドウで実フレームタイムをサンプリングし、フレームタイムが予算を守れなくなるまで続けます。最後に守り切った段階がスコアとして確定し、セーブファイルに書き込まれます。あなたのデバイスの 9 項目の能力レポートは、セーブステーションの壁に掛かっています。 そしてここがこの demo の最も誠実な部分:ベンチマークの成績は、まさにベンチマーク対象であるセーブ API で永続化されます。
人間が作った素材はひとつもない
demo 内のアートと音楽はすべて生成物で、エージェントが MCP 経由でエンドツーエンドに統括しました。コインのアトラス、地形タイルセット、ロボットのパーツは Seedream 4 から Floniks の text-to-image 経由で、2048×1152 の「グリッドシート」3 枚として到着。音楽 2 曲——showcase のテーマ曲とトレーラー用の曲——は Lyria 2 から Floniks の text-to-music 経由。後処理は 130 行の再実行可能な Python スクリプトです:カラーキーによる切り抜き、グリッド分割、欠けたパーツのミラー補完、エンジンが期待するストリップへの再組み立て。コマンド 1 つでパイプライン全体を再実行——プロンプトを差し替えれば、demo の着せ替えが完了します。
記録しておく価値のある落とし穴が 3 つ:
- 同じ Floniks ワークフローを 2 回並行実行したら、2 回目はノードにキャッシュされた古いファイルが返ってきた——トレーラー音楽をダウンロードすると md5 が一致、先週の別ゲームの BGM でした。直列で再実行して解決;並行実行で 1 つの workflow id を共有してはいけません。
- AI はマス目を数えられない:6 フレーム頼むと 8 フレーム、パーツ 6 個頼むと 6 個 + 空セル 2 つで胴体が欠落。決定的な後処理——ベストなフレームを選び、まっすぐな腕と片方のブーツを左右ペアにミラーし、胸の円盤を胴体に昇格——のほうが引き直しより安くつきます。
- カラーキーの境界は影の中にある:生成画像は親切にもすべてのコインに濃い紫のドロップシャドウを付けていて、最初の切り抜き判定はそれを素通しにしました。キーを厳しく締めてクリーンになりました。
ロボットは 47 行の JSON
ロボットのアニメーションは、どんなツールでも「制作」されていません。robot.rig は手書き 47 行の JSON ファイルです:パーツの階層、回転ピボット、キーフレームクリップ 3 本。数字を 1 つ変えればアニメーションが変わります。これこそが《エディタがないのは、設計である》の具体的な意味です:エディタとはデータ + エージェントのこと。 このファイルを書くのに約 4 分——どんなスケルタルエディタの起動よりも速い。
広告を撮ったら製品が直った
製品ビデオの収録中(ヘッドレスコンテナで Xvfb + ソフトウェアレンダリングのネイティブビルド、スクリプト駆動の入力、ffmpeg キャプチャ)、収録が 2 回止まりました——どちらも収録側の問題ではありませんでした:
- CAMERA ステーションがプレイヤーを閉じ込めることがある:カメラの巡回後、ワールド座標に固定された戻るボタンが画面外に流れていました。修正:タップで「追従 → 俯瞰 → 自動でハブに帰還」を循環。
- 固定のベンチマーク予算は遅いデバイスで永遠にゼロ点:ソフトウェアレンダリングでは、アイドルフレームですら 1/45 秒の予算を超えます。修正:最初のサイクルでデバイスの安静時フレームタイムを較正し、予算 = ベースライン × 1.4 に——ローエンドデバイスも意味のある段階まで登れて、高リフレッシュ機にタダで点をあげることもありません。
製品の広告を撮ったら製品が修理された——「demo は本当に遊べなければならない」というルールの、おそらく最良の見返りです。
時間の帳簿
一文のタスクから全緑のコミットまで:約 34 分、うち約 15 分がゲームパック本体——Lua 630 行、エンジン変更ゼロ。速さは工程の省略で買ったものではありません:9 ステーションすべてがヘッドレステストスイートに接続され、130,000 以上のアサーションがコミットのたびに全量実行されます。速さを買ったのはアーキテクチャです——どの能力も 1〜2 行の Lua に圧縮され、テストの網が「思い切って変える」をデフォルトの状態にしています。
質問と回答
demo の素材に人間が作ったものはありますか?
ありません。コインのアトラス、地形タイルセット、ロボットのパーツは Seedream 4 が Floniks の text-to-image 経由で生成し、音楽 2 曲は Lyria 2 が Floniks の text-to-music 経由で生成しました。130 行の Python スクリプトが後処理をすべて担当;唯一の手書きデータファイルはロボットの 47 行の JSON リグです。
ライブベンチマークはどう動くのですか?
各ステーションの BENCH ボタンは負荷を 1 段ずつ上げます——より多くのスプライト、より多くのパーティクル、より大きなタイルマップ書き換え、より多くの歩くリグ——同時にスライディングウィンドウで実フレームタイムをサンプリング。フレームタイムが予算を破ったら、最後に守り切った段階をスコアとして確定し、まさにテスト対象であるセーブ API で永続化します。予算はデバイスごとに較正:安静時フレームタイム × 1.4 です。
ロボットのリグとは正確には何ですか?
手書き 47 行の JSON ファイルです:親子階層と回転ピボットを持つボディパーツ 6 個、それにキーフレームクリップ 3 本(idle、wave、walk)。数字を 1 つ変えればアニメーションが変わります——スケルタルエディタは一切使っていません。
アセットパイプラインは別のスタイルで再実行できますか?
できます。パイプライン全体——カラーキー切り抜き、グリッド分割、ミラー、ストリップ再組み立て——は Floniks の生成物の上で動く、再実行可能な 130 行の Python スクリプト 1 本です。プロンプトを差し替えてコマンドを 1 回再実行すれば、demo は着せ替え完了です。
ブラウザで Engine Showcase を遊ぶ、全ソースは rust_bevy_lua_game リポジトリで、そして自分のアセットパイプラインは Floniks MCP サーバーで接続を。

