mcpField
I
improve-game

improve-game

github.com/hungify開発016 回インストール1 週間前に更新
リポジトリ

improve-game について

improve-gameは、ゲームプロジェクトを監査して課題を評価し、改善案を順位付けするコーディングエージェント向けスキルです。ユーザーの選択後に変更を実装・検証し、ゲームプレイ、見た目、コード、性能、プレイヤー体験を扱います。

主な機能

  1. 01ゲームコードとテストの監査
  2. 0213領域の改善度評価
  3. 03影響度に基づく改善案の順位付け
  4. 04承認後の変更実施
  5. 05ビルドとテストによる検証

活用シーン

  1. 01変更前のゲームプロジェクト評価
  2. 02ゲームプレイや見た目の修正優先度決定
  3. 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 件特定し、影響度順に並べます。各項目について、次の内容を記載してください:

  1. タイトル — 短い名称(例:「難易度の段階的な上昇を追加する」)
  2. 項目 — 改善されるカテゴリ
  3. 影響 — プレイヤーにとって重要な理由
  4. 実施内容 — 変更内容を平易な言葉で説明
  5. 変更対象ファイル — 作成または変更するファイル

番号付きリストで提示してください。影響が最も大きい項目を先頭にします。

計画をユーザーに提示し、どの改善を実装するか尋ねてください。選択肢:

  • 「すべて」— すべて実装
  • 具体的な番号 — 選択した項目を実装
  • 「上位 3 件」— 影響の大きいものから 3 件のみ

ユーザーが選択するまで、実装を始めないでください。

ステップ 4:実装

選択した改善ごとに、次のルールに従ってください。

  1. まず定数 — 新しい設定値はすべて Constants.js に追加します。ハードコードされた値は使いません。
  2. 次にイベント — 新しいイベントがあれば、domain:action 形式の命名規則で EventBus.js に追加します。
  3. 必要に応じて状態を追加 — 新しい状態フィールドは適切なリセット処理とともに GameState.js に追加します。
  4. 新しいファイルは適切なディレクトリに配置 — エンティティは entities/、システムは systems/、UI は ui/ に配置します。
  5. オーケストレーター経由で接続 — 新しいシステムを適切なライフサイクルで Game.js に登録します。
  6. 通信には EventBus を使用 — モジュール同士を直接インポートしません。
  7. 既存のコードスタイルに合わせる — プロジェクトのほかの部分と同じパターン、命名、書式を使用します。
  8. 動作している機能を壊さない — 改善の対象となる場合を除き、既存のゲームプレイ、操作、スコアリングはこれまでどおり動作させます。

改善を実装するたびに npm run build を実行し、すぐにエラーを確認してください。次の改善に進む前に、ビルドエラーを修正してください。

ステップ 5:検証

すべての改善を実装したら、次の手順を実行してください。

  1. npm run build を実行し、エラーのないクリーンなビルドを確認します
  2. テストがある場合は npm test を実行し、すべてのテストが引き続き成功することを確認します
  3. 意図的な変更(新しいシーン、変更された要素)が原因でテストが失敗する場合は、新しい動作に合うようテストを修正します
  4. ゲームにビジュアルリグレッションテストがある場合は、スナップショットを更新します:npm run test:update-snapshots
ステップ 6:報告

変更内容をユーザーに伝えます。

改善レポート

スコア:X/65 → Y/65(+Z ポイント)

実装内容:

  1. [タイトル] — 変更内容を一文で要約
  2. [タイトル] — 変更内容を一文で要約 ...

作成したファイル: [新しいファイルの一覧] 変更したファイル: [変更したファイルの一覧]

テスト方法: 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

コメント