mcpField
G
godot-genre-idle-clicker

godot-genre-idle-clicker

github.com/thedivergentai開発907333 回インストール2 週間前に更新
リポジトリ

godot-genre-idle-clicker について

Godotで放置系クリッカーを開発するためのスキルです。巨大数の経済、オフライン収益、パフォーマンス、転生進行に関する設計指針とスクリプトを備えています。

主な機能

  1. 01仮数・指数による通貨演算
  2. 02生成器コストの指数増加
  3. 03UNIX時刻によるオフライン収益計算
  4. 04シグナル駆動のUI更新
  5. 05スレッドによる追いつき処理

活用シーン

  1. 01浮動小数点の範囲を超える通貨の表現
  2. 02ゲーム終了中の収益計算
  3. 03放置ゲームのUIとCPU負荷の軽減

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/thedivergentai/game-dev-agentic-skills --skill godot-genre-idle-clicker

インストール後、Claude Code で/godot-genre-idle-clickerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
expert-idle-clicker-patterns.md
migration-notes.md
scripts/
big_int_save_parser.gd
big_number.gd
big_real.gd
click_juice_manager.gd
decoupled_economy_signal_bus.gd
functional_income_reducer.gd
generator.gd
idle_performance_setup.gd
lightweight_upgrade_resource.gd
offline_progress_calculator.gd
offline_progression_manager.gd
precision_cost_validator.gd
scientific_notation_formatter.gd
scientific_notation_math.gd
thread_safe_ui_updater.gd
threaded_catchup_simulator.gd

詳細

絶対に避けること(エキスパート向けアンチパターン)

経済と数学
  • 通貨に標準の浮動小数点数を絶対に使用しないでください。1e308 での INF クラッシュを防ぐため、必ず BigNumber(仮数/指数)システム(例:1.5e300)を実装してください。
  • 収益の生成に Timer ノードを絶対に使用しないでください。フレーム変動によるずれを防ぐため、必ず _process(delta) 内で手動のアキュムレーターを使用してください。
  • ジェネレーターのコストや成長率を絶対にハードコードしないでください。業界標準の 1.15x を使い、必ず指数関数式 Cost = BasePrice * pow(GrowthFactor, OwnedCount) を使用してください。
  • 浮動小数点数の完全一致(==)を絶対に判定しないでください。精度損失による進行の停止を防ぐため、必ず is_equal_approx() または >= を使用してください。
  • 科学表記の文字列を絶対に to_int() で解析しないでください。必ず to_float() または専用の BigNumber パーサーを使用してください。
パフォーマンスと最適化
  • 毎フレーム、すべての UI ラベルを絶対に更新しないでください。値が変わったときのみラベルを更新するよう、必ず シグナル を使用するか、更新頻度を 10 FPS に抑えてください。
  • モバイルで Low Processor Usage Mode を絶対に無視しないでください。バッテリーを長持ちさせるため、必ず OS.low_processor_usage_mode = true を有効にしてください。
  • 毎秒数百個のテキストノードを絶対にインスタンス化/削除しないでください。クリック時のフィードバックには、必ず オブジェクトプーリング または MultiMeshInstance を使用してください。
  • text プロパティを変更して大規模なログを絶対に更新しないでください。メインスレッドのブロックを防ぐため、必ず append_text() を使用してください。
プレイヤー体験と永続化
  • オフライン進行 を絶対に無視しないでください。システムの UNIX タイムスタンプ(Time.get_unix_time_from_system())を使い、必ず seconds_offline * total_revenue を計算してください。
  • 「プレステージ」リセットを損失のように絶対に感じさせないでください。次のプレイが大幅に速くなるグローバル倍率(2~5 倍)を必ず用意してください。
  • オフライン時間の計算に Time.get_ticks_msec() を絶対に使用しないでください。アプリの再起動時にリセットされるため、必ず 永続化される UNIX タイムスタンプ を使用してください。
  • 生データに Node 階層を絶対に使用しないでください。軽量でシリアライズ可能なロジックには、必ず RefCounted または Resource オブジェクトを使用してください。

🛠 エキスパート向けコンポーネント(scripts/)

対応するシステムを実装する前に、以下を必ず読んでください:

  1. big_number.gd — float の INF を超える仮数+指数
  2. generator.gd — 指数関数的なコスト/レート単位
  3. scientific_notation_formatter.gd — K/M/B/T および科学表記の表示
  4. offline_progress_calculator.gd — UNIX によるオフライン経過時間の補填(ticks_msec は使用しません)
エキスパート向けの元のパターン
モジュール式コンポーネント

コアループ

  1. クリック → 2. ジェネレーターを購入 → 3. 放置収入 → 4. アップグレード → 5. プレステージ

判断ツリー

数値と表示
必要なもの対応
~1e308を超える値必須 big_number.gd
ラベル/省略表記必須 scientific_notation_formatter.gd
~1.15^nのコスト曲線generator.gd + precision_cost_validator.gd
オフラインとパフォーマンス
必要なもの対応
オフライン分の進行計算必須 offline_progress_calculator.gd(UNIX時刻)
長時間の進行計算threaded_catchup_simulator.gd
バッテリー/アイドル時のCPU使用率idle_performance_setup.gd

スキル本文にBigNumber/Offlineのチュートリアルを再度埋め込まないでください。上記のスクリプトを読み込んでください。

スキルチェーン

フェーズスキル目的
1. 数学godot-gdscript-masteryビッグナンバー演算
2. UIgodot-ui-containers、labels科学表記/接尾辞付きラベル
3. データgodot-save-load-systemsオフラインのタイムスタンプ+プレステージ
4. ロジックsignals更新頻度を抑えた経済UI
5. バランス調整godot-monte-carlo-balancerマイルストーン到達までの時間帯

よくある落とし穴

落とし穴解決策
Expert Componentのhrefが誤っている上記のリンクは、正規のbig_number/generator/formatterを参照しています
オフライン処理でTime.get_ticks_msecを使用オフライン計算機経由でUNIX時刻を使用します
毎フレームUIを更新economy bus/performance setup経由でシグナルによる更新頻度の制御を行います

エキスパート向け知識(必要に応じて)

LLMの無知に関するルール: 一般的なエージェントが読む前に知らない内容なら、リファレンスを読み込んでください。エキスパート固有の差分は削除しないでください。

リファレンス

段階的な情報開示:特定のAPIを調査するときにのみ公式ドキュメントへのリンクを開いてください。関連スキルは、同じ領域のスキルに引き継ぐときに読み込み、スキル全体の一覧を事前に読み込まないでください。

公式ドキュメント
  • アイドル処理と物理処理 — 収益は、ずれが生じる Timer ノードではなく、_process(delta)(または固定シミュレーションティック)で蓄積する必要があります。これにより、ジェネレーターはフレームレートに左右されずに動作します。
  • Time — オフライン中の進行状況の反映には Time.get_unix_time_from_system() を使用します。アプリの再起動時にリセットされる get_ticks_msec() は使用しないでください。
  • ゲームの保存 — 通貨、ジェネレーター数、プレステージ倍率、最後に保存した UNIX タイムスタンプを永続化し、再起動後も復帰時の収益を維持します。
  • データパス — オフライン用のタイムスタンプや大きな数値の文字列を各プラットフォームで書き込めるよう、セーブデータは user:// に保存します。
  • リソース — ジェネレーター、アップグレード、プレステージ曲線は .tres リソースとして定義し、コードを変更せずにデザイナーが cost_growth_factor を調整できるようにします。
  • GDScript のエクスポート — 基本コスト、収益率、成長係数を @export で公開し、バランス調整をインスペクターから行えるようにします。
  • シグナルの使用 — 残高が変化したときだけ currency_updated を発行し、HUD のラベルが毎フレーム書き換えられないようにします。
  • OS — ジェネレーターの待機に時間の大半を費やすモバイルのアイドルセッションでは、OS.low_processor_usage_mode(および sleep usec)を有効にします。
  • 複数スレッドの使用 — 長時間にわたるオフライン進行状況のシミュレーションは WorkerThreadPool で行います。数千ティックを再生している間、UI をブロックしてはいけません。
  • スレッドセーフな API — シミュレーション結果をラベルに反映するには、このページに記載されている call_deferred とメインスレッドのルールに従う必要があります。
  • 文字列のフォーマット — K/M/B の接尾辞や %.2fe%d の科学表記には、適切な書式指定文字列が必要です(適切な場合は String.num_scientific も使用します)。
  • RefCounted — BigNumber とアップグレードのデータは、Node ツリーではなく、軽量な RefCounted/Resource データにする必要があります。
関連スキル
前提条件
  • godot-gdscript-mastery — 仮数/指数クラス、pow による成長、精度を保った比較(is_equal_approx)は、放置型経済を構築するうえで基礎となる GDScript のパターンです。
  • godot-resource-data-patterns — バランス曲線をデータ駆動の .tres アセットとして維持するため、ジェネレーターとアップグレードの定義はリソースを中心に設計します。
  • godot-signal-architecture — 通貨の疎結合なバスは UI にシグナルを送り、ラベルからシミュレーションのウォレットを変更できないようにします。
  • godot-save-load-systems — オフライン進行状況とプレステージ状態を扱うには、UNIX タイムスタンプと大きな数値の文字列を安全に保存できる、バージョン管理されたセーブハンドラーが必要です。
補完
  • godot-economy-system — ゲームにショップやプレステージショップを追加する段階になったら、ソフトカレンシーのウォレット、消費先、トランザクション API をアイドル系ジェネレーターと組み合わせます。
  • godot-ui-containers — ジェネレーターのリストやアップグレードのグリッドには、更新頻度を抑えたラベルを紐付けた GridContainer/VBoxContainer のレイアウトを使用します。
  • godot-ui-rich-text — 指数表記、サフィックス文字列、追記専用ログには、巨大な text の塊を作り直すのではなく、Label/RichTextLabel のパターンを使用します。
  • godot-performance-optimization — 低プロセッサーモード、UI の更新頻度抑制、プール化したクリックエフェクトにより、モバイルでもアイドルループのバッテリー消費を抑えられます。
  • godot-autoload-architecture — シーンの再読み込み後も維持するシミュレーションマネージャーや経済バスは、Autoload の所有権ルールに従う必要があります。
  • godot-particles — クリック時のフィードバックには、タップごとに Label ノードを生成するのではなく、バッチ処理された GPUParticles2D.emit_particle を使用します。
下流/利用者
  • godot-monte-carlo-balancer — コスト曲線とプレステージ倍率を Resource 駆動にした後、成長率をリリースする前に、モンテカルロ方式のキャリアシミュレーションで目標達成までの時間帯(勝率ではなく)を検証します。
  • godot-platform-mobile — スマートフォン向けにアイドルゲームをリリースする際は、このジャンル向けスキルの低プロセッサーモード、バックグラウンドからの復帰、オフライン進行の反映パターンを活用します。
マスター
  • godot-master — ライブラリのルーターおよびミラー化されたモジュールのエントリーポイントです。関連スキルの検索や、Domain Skill の編集後に共有スクリプトのミラーを同期する場合に使用します。

コメント