improve-game について
improve-gameは、ゲームプロジェクトを監査して課題を評価し、改善案を順位付けするコーディングエージェント向けスキルです。ユーザーの選択後に変更を実装・検証し、ゲームプレイ、見た目、コード、性能、プレイヤー体験を扱います。
主な機能
- 01ゲームコードとテストの監査
- 0213領域の改善度評価
- 03影響度に基づく改善案の順位付け
- 04承認後の変更実施
- 05ビルドとテストによる検証
活用シーン
- 01変更前のゲームプロジェクト評価
- 02ゲームプレイや見た目の修正優先度決定
- 03選択した改善の段階的な実装
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hungify/ playables-skills --skill improve-gameインストール後、Claude Code で/improve-gameを入力して読み込まれたか確認します。
詳細
パフォーマンスに関する注意事項
- 時間をかけて、徹底的に取り組んでください
- 速度より品質を重視してください
- 検証の手順を省略しないでください
ゲームを改善する
ゲームをより良くします。このコマンドは、ゲームプレイ、ビジュアル、コード品質、パフォーマンス、プレイヤー体験を徹底的に監査し、最も効果の高い改善を実装します。何度でも実行できます。実行するたびに、次に効果の高い修正点を見つけます。
手順
現在のディレクトリにあるゲームを改善します。$ARGUMENTS で注力する分野(例:「gameplay」、「visuals」、「performance」、「polish」、「game-over」)が指定されている場合は、その分野の優先度を高くします。ただし、すべての項目を監査してください。
ステップ 1:徹底的な監査
ゲームの全体像を把握するため、コードベース全体を読み込みます。
package.json— エンジン、依存関係、スクリプトsrc/core/Constants.js— すべての設定値src/core/EventBus.js— すべてのイベントとその使用箇所src/core/GameState.js— 状態の構造とリセット処理src/core/Game.js(またはGameConfig.js)— オーケストレーターとゲームループsrc/scenes/またはsrc/systems/内のすべてのファイル — ゲームプレイのロジックsrc/entities/内のすべてのファイル — ゲームオブジェクトsrc/ui/内のすべてのファイル — ゲームオーバー、オーバーレイsrc/audio/内のすべてのファイル — 音楽と効果音index.html— マークアップ、オーバーレイ、スタイル、ビューポートのメタ情報src/systems/InputSystem.js— 入力処理、モバイル対応(ジャイロ、ジョイスティック、タッチ)tests/— テストの網羅範囲と品質
ざっと目を通すだけではいけません。推奨事項を作成する前に、全体像を理解できるよう、すべてのファイルを最後まで読み込んでください。
ステップ 2:評価と診断
各項目を 1~5 の尺度で評価します(1 = 動作しない/欠落している、3 = 基本的に機能する、5 = 洗練されていて完成度が高い)。診断表を提示してください:
| 項目 | スコア | 診断 |
|---|---|---|
| ゲームプレイの手応え | コアループは楽しいですか?操作の反応は良いですか?難易度は段階的に上がりますか? | |
| ビジュアルの完成度 | 背景、色、パーティクル、アニメーション、画面効果 | |
| ゲームオーバーと UI | ゲームオーバー画面、画面遷移、再スタートの流れ、ボタン | |
| オーディオ | 各状態の BGM、各アクションの効果音、音量バランス、ミュート切り替え | |
| コードアーキテクチャ | EventBus、GameState、Constants、循環依存がないこと | |
| 再スタート時の安全性 | GameState.reset() ですべて適切にクリーンアップされますか?3 回再スタートしても同じ状態になりますか?古いリスナーやタイマーが残っていませんか? | |
| パフォーマンス | Delta の上限設定、オブジェクトプーリング、破棄処理、リークがないこと | |
| プレイヤー体験 | オンボーディング、フィードバック、難易度曲線、リプレイ性 | |
| モバイル対応 | タッチ入力、レスポンシブレイアウト、ジャイロ/ジョイスティック、44px のタッチターゲット | |
| Play.fun セーフゾーン | すべての UI 要素が SAFE_ZONE.TOP(約 8%/75px)より下にありますか?Play.fun ウィジェットに隠れるものはありませんか? | |
| ゲームプレイの不変条件 | プレイヤーはスコアを獲得できますか?プレイヤーは死亡できますか?ゲームオーバー画面のボタンにテキストが表示されますか?render_game_to_text() は有効な JSON を返しますか? | |
| エンティティのサイズ | キャラクターは認識しやすい大きさですか?キャラクター主体のゲームでは、GAME.WIDTH の 12~15% が必要です。固定ピクセルではなく、比率に基づくサイズ指定(GAME.WIDTH * ratio)になっていますか? | |
| テストカバレッジ | 起動、ゲームプレイ、スコア、再スタート、ビジュアル、パフォーマンスのテスト |
総合スコア:X / 65
ステップ 3:改善計画
監査結果をもとに、プレイヤーへの影響が大きい改善項目を上位 5~8 件特定し、影響度順に並べます。各項目について、次の内容を記載してください:
- タイトル — 短い名称(例:「難易度の段階的な上昇を追加する」)
- 項目 — 改善されるカテゴリ
- 影響 — プレイヤーにとって重要な理由
- 実施内容 — 変更内容を平易な言葉で説明
- 変更対象ファイル — 作成または変更するファイル
番号付きリストで提示してください。影響が最も大きい項目を先頭にします。
計画をユーザーに提示し、どの改善を実装するか尋ねてください。選択肢:
- 「すべて」— すべて実装
- 具体的な番号 — 選択した項目を実装
- 「上位 3 件」— 影響の大きいものから 3 件のみ
ユーザーが選択するまで、実装を始めないでください。
ステップ 4:実装
選択した改善ごとに、次のルールに従ってください。
- まず定数 — 新しい設定値はすべて
Constants.jsに追加します。ハードコードされた値は使いません。 - 次にイベント — 新しいイベントがあれば、
domain:action形式の命名規則でEventBus.jsに追加します。 - 必要に応じて状態を追加 — 新しい状態フィールドは適切なリセット処理とともに
GameState.jsに追加します。 - 新しいファイルは適切なディレクトリに配置 — エンティティは
entities/、システムはsystems/、UI はui/に配置します。 - オーケストレーター経由で接続 — 新しいシステムを適切なライフサイクルで
Game.jsに登録します。 - 通信には EventBus を使用 — モジュール同士を直接インポートしません。
- 既存のコードスタイルに合わせる — プロジェクトのほかの部分と同じパターン、命名、書式を使用します。
- 動作している機能を壊さない — 改善の対象となる場合を除き、既存のゲームプレイ、操作、スコアリングはこれまでどおり動作させます。
改善を実装するたびに npm run build を実行し、すぐにエラーを確認してください。次の改善に進む前に、ビルドエラーを修正してください。
ステップ 5:検証
すべての改善を実装したら、次の手順を実行してください。
npm run buildを実行し、エラーのないクリーンなビルドを確認します- テストがある場合は
npm testを実行し、すべてのテストが引き続き成功することを確認します - 意図的な変更(新しいシーン、変更された要素)が原因でテストが失敗する場合は、新しい動作に合うようテストを修正します
- ゲームにビジュアルリグレッションテストがある場合は、スナップショットを更新します:
npm run test:update-snapshots
ステップ 6:報告
変更内容をユーザーに伝えます。
改善レポート
スコア:X/65 → Y/65(+Z ポイント)
実装内容:
- [タイトル] — 変更内容を一文で要約
- [タイトル] — 変更内容を一文で要約 ...
作成したファイル: [新しいファイルの一覧] 変更したファイル: [変更したファイルの一覧]
テスト方法:
npm run devを実行して、次の点を確認します。
- [確認する具体的な内容]
- [確認する具体的な内容]
次の改善:
/game-creator:improve-gameを再実行し、次の改善項目を見つけます。
フォーカス領域
$ARGUMENTS にフォーカス領域のキーワードが含まれている場合は、次の項目を重点的に確認します。
"gameplay" — コアループ、操作方法、難易度の上昇、敵のバリエーション、パワーアップ、リスクとリターン、テンポ、レベルデザイン
"visuals" — ゲームデザイナーのスキルを読み込み、完全なデザイン監査を実施します(背景、パレット、アニメーション、パーティクル、トランジション、タイポグラフィ、演出)
"performance" — デルタ値の上限設定、オブジェクトプーリング、ジオメトリ/マテリアルの破棄、イベントリスナーのクリーンアップ、requestAnimationFrame の使用、ドローコール数、テクスチャアトラスの使用
"polish" — 画面の揺れ、ヒットストップ、スクワッシュ/ストレッチ、イージングカーブ、サウンドのタイミング、ボタンのフィードバック、スコアポップアップ、死亡アニメーション、トランジションの滑らかさ
"game-over" — ゲームオーバー画面の魅力、再開フロー、ボタンのスタイル、スコア表示、ベストスコア表示、アニメーション。ボタンのテキストは表示されている必要があります — createButton() パターンで Container + Graphics + Text(Graphics が先、Text が後、Container がインタラクティブ)を使用していることを確認してください。ボタンラベルが見えない場合、パターンに問題があります。注:ゲームにはデフォルトでタイトル/メニュー画面はありません(Play.fun が画面周りの要素を処理します)。ユーザーが明示的に求めた場合にのみ、タイトル画面を追加してください。スコア HUD は Play.fun ウィジェットが処理します — ゲーム内に別のスコア表示を追加しないでください。ゲームオーバー UI はすべて SAFE_ZONE.TOP より下に配置してください。
"audio" — ゲームオーディオのスキルを読み込みます。BGM のカバー範囲(すべてのゲーム状態に音楽があるか)、SFX のカバー範囲(プレイヤーのすべてのアクションにフィードバックがあるか)、音量ミキシング、トラック間のトランジションの滑らかさを確認します。
"mobile" — タッチ入力の実装(タップゾーン、仮想ジョイスティック、またはジャイロスコープ)、レスポンシブなキャンバス(Phaser.Scale.FIT または CSS の width:100%)、最小 44px のタッチターゲット、移動用の仮想ジョイスティックまたはタップゾーン、傾き操作ゲームでのジャイロスコープ対応、ホバー時のみのインタラクションがないこと、モバイルのビューポートでのテスト(Pixel 5 のエミュレーション)。InputSystem.js、各シーン/システムの update() メソッド、index.html のビューポートメタ、タッチターゲットサイズの Constants.js を読みます。
"ux" — オンボーディング(プレイヤーは何をすればよいか分かるか?)、フィードバック(すべてのアクションに反応があるか?)、難易度曲線(難しすぎないか/簡単すぎないか?)、リプレイ性(もう一度プレイする理由があるか?)
使用例
全般的な改善
/improve-game
結果:詳細な監査 → スコア 38/65 → 上位 6 件の改善点を特定(難易度の上昇、画面の揺れ、ゲームオーバーの改善、パーティクルエフェクト、モバイルのタッチ操作、再開時の安全性) → どれを実装するか確認 → 選択された項目を実装 → スコアが 52/65 に上昇します。
フォーカスを絞った改善
/improve-game gameplay
結果:ゲームプレイの確認を重視 → 敵のバリエーションが少なく、難易度が一定であることを発見 → 行動が異なる敵タイプを 3 種類追加し、速度を段階的に上昇させ、スコアに基づく難易度ティアを導入します。
トラブルシューティング
改善によって既存のゲームプレイが壊れる
原因: 共通システム(物理演算、スコアリング)の変更は、連鎖的な影響を及ぼすことがあります。 対処法: 改善を 1 つずつテストしてください。変更のたびに既存のテストを実行してください。変更によってコアゲームプレイが壊れた場合は、元に戻してください。
一度に多くの変更を加える
原因: 監査で 10 件以上の問題が特定され、すべてが同時に実装されました。 対処法: 上位 3〜5 件の改善を優先してください。段階的にリリースしてください。変更のたびに確認してください。
ヒント
このコマンドは、反復的な改善を目的としています。何度か実行してください。
- 1 回目:最も大きな不足点を修正します(機能の欠落、UX の不具合)
- 2 回目:仕上げを加えます(パーティクル、トランジション、演出)
- 3 回目:細部を調整します(難易度曲線、タイミング、バランス)
実行するたびに前回の続きから始まります — 以前に修正した領域のスコアは上がり、新たな優先事項が浮かび上がります。
対象を絞って作業するには、フォーカス領域を指定してください:
/game-creator:improve-game gameplayまたは/game-creator:improve-game visuals