適切なアーキテクチャなしでGodotゲームを構築すると、保守不可能なコードとパフォーマンスの問題が発生します。このスキルは、ステートマシーン、コンポーネントシステム、オブジェクトプーリング、セーブシステムを含む本番環境対応のGDScriptパターン提供し、クリーンでスケーラブルなゲーム構築を支援します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「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個の無効化された弾丸インスタンスを事前に作成する初期化コードを含みます。
セキュリティ監査
安全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.
品質スコア
作れるもの
プレイヤーステートマシーンの実装
アイドル、移动、攻撃、ジャンプ状態を備えたプレイヤーキャラクターのステートマシーンを作成します。プレイヤーの動作がゲーム状態に基づいて変化するプラットフォーマーやアクションゲームを構築する際に使用してください。
弾丸のオブジェクトプーリング
弾丸や発射物などの頻繁に生成されるオブジェクトのオブジェクトプーリングを実装します。これを使用して、多くの生成エンティティを持つゲームでのガベージコレクションのヒッチを軽減し、パフォーマンスを向上させます。
コンポーネントベース体力システム
任意のゲームエンティティにアタッチ可能な、再利用可能な体力、ヒットボックス、ハ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バージョンをサポートしていますか?
これらのパターンを3Dゲームに使用できますか?
プレースホルダー暗号化キーを置き換える方法は?
すべてのグローバルデータにAutoloadを使用すべきですか?
継承ではなくコンポーネントベースアーキテクチャを使用する理由は?
いつオブジェクトプーリングを使用すべきですか?
開発者の詳細
作成者
sickn33ライセンス
MIT
リポジトリ
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/godot-gdscript-patterns参照
main
ファイル構成