スキル godot-gdscript-patterns
🎮

godot-gdscript-patterns

安全

Master Godot 4 GDScript Patterns

こちらからも入手できます: wshobson

適切なアーキテクチャなしでGodotゲームを構築すると、保守不可能なコードとパフォーマンスの問題が発生します。このスキルは、ステートマシーン、コンポーネントシステム、オブジェクトプーリング、セーブシステムを含む本番環境対応のGDScriptパターン提供し、クリーンでスケーラブルなゲーム構築を支援します。

対応: Claude Codex Code(CC)
🥉 75 ブロンズ
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「godot-gdscript-patterns」を使用しています。 Create a state machine for an enemy with Idle, Patrol, and Chase states

期待される結果:

StateMachineクラス(Nodeを継承)、State基底クラス、3つの具象状態スクリプト(EnemyIdle、EnemyPatrol、EnemyChase)を生成します。プレイヤー距離検出に基づくトランジションロジックと状態変更用の信号接続を含みます。

「godot-gdscript-patterns」を使用しています。 Create an object pool for bullets with 20 initial instances

期待される結果:

get_instance()メソッドとリターンメソッドを持つObjectPoolスクリプトと、ライフタイム管理、速度ベースの移動、returned_to_pool信号を持つPooledBulletスクリプトを提供します。20個の無効化された弾丸インスタンスを事前に作成する初期化コードを含みます。

セキュリティ監査

安全
v1 • 2/25/2026

Static analysis detected 60 potential security issues, all confirmed as false positives after review. All 'external_commands' findings are markdown code fence delimiters in GDScript examples. 'Weak cryptographic algorithm' findings refer to Godot 4's built-in encrypted file API (FileAccess.open_encrypted_with_pass) used legitimately in save system examples. 'Generic API keys' finding is a placeholder encryption key in example code (your_secret_key_here). 'Network' findings are documentation links to legitimate Godot resources. This skill contains only educational GDScript code examples and documentation with no executable content or security risks.

2
スキャンされたファイル
841
解析された行数
0
検出結果
1
総監査数
セキュリティ問題は見つかりませんでした
監査者: claude

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
50
コミュニティ
100
セキュリティ
100
仕様準拠

作れるもの

プレイヤーステートマシーンの実装

アイドル、移动、攻撃、ジャンプ状態を備えたプレイヤーキャラクターのステートマシーンを作成します。プレイヤーの動作がゲーム状態に基づいて変化するプラットフォーマーやアクションゲームを構築する際に使用してください。

弾丸のオブジェクトプーリング

弾丸や発射物などの頻繁に生成されるオブジェクトのオブジェクトプーリングを実装します。これを使用して、多くの生成エンティティを持つゲームでのガベージコレクションのヒッチを軽減し、パフォーマンスを向上させます。

コンポーネントベース体力システム

任意のゲームエンティティにアタッチ可能な、再利用可能な体力、ヒットボックス、ハurtボックスコンポーネントを作成します。戦闘機能が必要な多くのキャラクターを持つゲームを構築する際に使用してください。

これらのプロンプトを試す

基本的なステートマシーンの作成
[ENTITY_TYPE]のステートマシーンを状態:[LIST_STATES]で作成します。StateMachineクラス、State基底クラス、および1つの具象状態実装を含めます。
オブジェクトプールの実装
[OBJECT_TYPE]用のオブジェクトプールシステムを事前に[NUMBER]個のオブジェクトをインスタンス化し、動的に成長できるものとして作成します。プールスクリプトとspawn/despawnコールバックを備えたプールされたオブジェクトスクリプトを含めます。
コンポーネントシステムの構築
信号経由で相互作用する[COMPONENT_1]と[COMPONENT_2]を持つコンポーネントシステムを設計します。各コンポーネントはスタンドアロンで任意のノードにアタッチ可能である必要があります。
暗号化付きセーブシステムの作成
[DATA_TYPES]を暗号化されたファイルに保存するセーブシステムを実装します。SaveManager Autoloadと個々のオブジェクト用のSaveableコンポーネントを含めます。

ベストプラクティス

  • @onreadyを使用してノード参照をキャッシュし、プロセループでget_node()を呼び出さない
  • ノード間の通信には信号を使用し、密結合を避ける
  • データをResource(Resourceを継承)に分離し、ロジックはNodeに保持する
  • より良いパフォーマンスのため、すべての変数と関数パラメータに静的型付けを使用する
  • 必要がないノードでは処理を無効にする(set_process、set_physics_process)

回避

  • _process()または_physics_process()ループでget_node()または$記法を使用しない
  • シーン間で直接ノード参照を保持しない - 信号またはAutoloadを使用する
  • Resourceスクリプトにゲームロジックを入れない - データコンテナとして保持する
  • ホットコードパスで新しいオブジェクトを作成しない - 代わりにオブジェクトプーリングを使用する
  • 型安全性でCallableを使用できる場合に信号に文字列名を使用しない

よくある質問

このスキルはどのGodotバージョンをサポートしていますか?
このスキルはGodot 4.xのみサポートしています。GDScriptの構文とAPIはGodot 3.xと大きく異なるため、パターンは古いバージョンでは動作しない場合があります。
これらのパターンを3Dゲームに使用できますか?
大多数のパターンは2Dと3Dの両方に適用可能です。ステートマシーン、コンポーネント、オbjectプーリング、セーブシステムは同一に動作します。特定のノードタイプ(Area2Dなど)のみ3D equivalents(Area3D)に変更する必要があります。
プレースホルダー暗号化キーを置き換える方法は?
暗号学的に安全なランダム文字列を生成し、ENCRYPTION_KEY定数の'your_secret_key_here'を置き換えます。ユーザーパスワードから派生させる必要がある場合は、鍵導出関数を使用してください。 реальныйキーをバージョン管理にコミットしないでください。
すべてのグローバルデータにAutoloadを使用すべきですか?
いいえ、Autoloadは慎重に使用してください。ゲームマネージャー、イベント버스、またはシーンマネージャーなどの真にグローバルなシステムのみに使用してください。ほとんどのデータには、Resourceまたは信号を介した依存性注入を好んで使用してください。
継承ではなくコンポーネントベースアーキテクチャを使用する理由は?
コンポーネントにより、深階層の継承なしで、健康、移动、戦闘などの機能を異なるキャラクター間で組み合わせることができます。コードをより再利用やすく保守を簡単にします。
いつオブジェクトプーリングを使用すべきですか?
頻繁に生成され素早く消滅するオブジェクト(弾丸、パーティクル、エネミー)にオブジェクトプーリングを使用します。プーリングはガベージコレクションのスパイクを軽減し、パフォーマンスを向上させます。.Power-upsのような頻繁に生成されないオブジェクトには、通常プーリングは不要です。

開発者の詳細

ファイル構成