Die Entwicklung von Godot-Spielen ohne angemessene Architektur führt zu nicht wartbarem Code und Leistungsproblemen. Dieses Skill bietet produktionsreife GDScript-Muster, einschließlich Zustandsautomaten, Komponentensystemen, Object-Pooling und Speichersystemen, um Ihnen zu helfen, saubere, skalierbare Spiele zu entwickeln.
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "godot-gdscript-patterns". Erstellen Sie einen Zustandsautomaten für einen Gegner mit den Zuständen Idle, Patrol und Chase
Erwartetes Ergebnis:
Generiert StateMachine-Klasse (erweitert Node), State-Basisklasse und drei konkrete Zustandskripte: EnemyIdle, EnemyPatrol und EnemyChase. Einschließlich Übergangslogik basierend auf Spielerabstandserkennung und Signalverbindungen für Zustandsänderungen.
Verwendung von "godot-gdscript-patterns". Erstellen Sie einen Object-Pool für Projektile mit 20 anfänglichen Instanzen
Erwartetes Ergebnis:
Stellt ObjectPool-Skript mit get_instance()- und return-Methoden sowie PooledBullet-Skript mit Lebensdauerverwaltung, geschwindigkeitsbasierter Bewegung und returned_to_pool-Signal bereit. Einschließlich Initialisierungscode, der 20 deaktivierte Projektil-Instanzen vorab erstellt.
Sicherheitsaudit
SicherStatic 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.
Qualitätsbewertung
Was du bauen kannst
Spieler-Zustandsautomat implementieren
Erstellen Sie einen Zustandsautomaten für Spielfiguren mit den Zuständen Idle, Move, Attack und Jump. Verwenden Sie dies bei der Entwicklung von Plattformern oder Action-Spielen, bei denen das Spielerverhalten basierend auf dem Spielzustand ändert.
Object-Pooling für Projektile
Implementieren Sie Object-Pooling für häufig gespawnte Objekte wie Projektile. Verwenden Sie dies, um Garbage-Collection-Unterbrechungen zu reduzieren und die Leistung in Spielen mit vielen gespawnten Entitäten zu verbessern.
Komponentenbasiertes Gesundheitssystem
Erstellen Sie wiederverwendbare Gesundheits-, Hitbox- und Hurtbox-Komponenten, die an jede Spielentität angehängt werden können. Verwenden Sie dies bei der Entwicklung von Spielen mit vielen Charakteren, die Kampffunktionalität benötigen.
Probiere diese Prompts
Erstellen Sie einen Zustandsautomaten für einen [ENTITY_TYPE] mit den Zuständen: [LIST_STATES]. Einschließlich der StateMachine-Klasse, der State-Basisklasse und einer konkreten Zustandsimplementierung.
Erstellen Sie ein Object-Pool-System für [OBJECT_TYPE], das [NUMBER] Objekte vorab instanziiert und dynamisch wachsen kann. Einschließlich des Pool-Skripts und eines gepoolten Objekt-Skripts mit Spawn-/Despawn-Callbacks.
Entwerfen Sie ein Komponentensystem mit [COMPONENT_1] und [COMPONENT_2], die über Signale interagieren. Jede Komponente sollte eigenständig und an jeden Knoten anhängbar sein.
Implementieren Sie ein Speichersystem, das [DATA_TYPES] in einer verschlüsselten Datei speichert. Einschließlich des SaveManager-Autoloads und einer Saveable-Komponente für einzelne Objekte.
Bewährte Verfahren
- Knotenreferenzen mit @onready zwischenspeichern, anstatt get_node() in Prozessschleifen aufzurufen
- Verwenden Sie Signale zur Kommunikation zwischen Knoten, um enge Kopplung zu vermeiden
- Trennen Sie Daten in Resources (erweitert Resource) und behalten Sie Logik in Nodes
- Verwenden Sie statische Typisierung für alle Variablen und Funktionsparameter für bessere Leistung
- Deaktivieren Sie die Verarbeitung von Knoten, wenn sie nicht benötigt wird (set_process, set_physics_process)
Vermeiden
- Rufen Sie nicht get_node() oder $-Notation in _process()- oder _physics_process()-Schleifen auf
- Speichern Sie keine direkten Knotenreferenzen über Szenen hinweg - verwenden Sie Signale oder Autoloads
- Platzieren Sie keine Spiellogik in Resource-Skripten - behalten Sie sie als Datencontainer
- Erstellen Sie keine neuen Objekte in heißen Codepfaden - verwenden Sie stattdessen Object-Pooling
- Verwenden Sie keine Stringnamen für Signale, wenn Sie Callable mit Typsicherheit verwenden können
Häufig gestellte Fragen
Welche Godot-Version unterstützt dieses Skill?
Kann ich diese Muster für 3D-Spiele verwenden?
Wie ersetze ich den Platzhalter-Verschlüsselungsschlüssel?
Sollte ich Autoloads für alle globalen Daten verwenden?
Warum komponentenbasierte Architektur statt Vererbung verwenden?
Wann sollte ich Object-Pooling verwenden?
Entwicklerdetails
Autor
sickn33Lizenz
MIT
Repository
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/godot-gdscript-patternsRef
main
Dateistruktur