Babysitter godot-csharp
Godot C# programming skill for .NET integration, scripting patterns, and performance optimization.
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/game-development/skills/godot-csharp" ~/.claude/skills/a5c-ai-babysitter-godot-csharp && rm -rf "$T"
manifest:
library/specializations/game-development/skills/godot-csharp/SKILL.mdsource content
Godot C# Skill
C# programming for Godot Engine development.
Overview
This skill provides capabilities for implementing game logic using C# in Godot, leveraging .NET integration.
Capabilities
C# Integration
- Node class inheritance
- Attribute-based exports
- Signal definitions
- Callable system
.NET Features
- NuGet packages
- Async/await patterns
- LINQ queries
- .NET libraries
Interoperability
- Call GDScript from C#
- Expose to GDScript
- Handle Variant types
- Manage signals
Performance
- Struct usage
- Memory management
- Object pooling
- Span usage
Prerequisites
- Godot 4.0+ with .NET support
- .NET SDK installed
- C# IDE (VS Code, Rider)
Usage Patterns
Node Script
using Godot; public partial class Player : CharacterBody2D { [Export] public float Speed { get; set; } = 200f; [Signal] public delegate void HealthChangedEventHandler(int newHealth); private int _health = 100; public override void _Ready() { // Initialize } public override void _PhysicsProcess(double delta) { var velocity = Vector2.Zero; velocity.X = Input.GetAxis("move_left", "move_right"); velocity.Y = Input.GetAxis("move_up", "move_down"); Velocity = velocity.Normalized() * Speed; MoveAndSlide(); } }
Signal Connection
button.Pressed += OnButtonPressed; // or button.Connect("pressed", Callable.From(OnButtonPressed));
Best Practices
- Use partial classes
- Leverage NuGet packages
- Handle node lifecycle
- Profile memory usage
- Use source generators