Babysitter unreal-cpp
Unreal Engine C++ programming skill for UCLASS macros, reflection system, garbage collection, and engine integration.
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/unreal-cpp" ~/.claude/skills/a5c-ai-babysitter-unreal-cpp && rm -rf "$T"
manifest:
library/specializations/game-development/skills/unreal-cpp/SKILL.mdsource content
Unreal C++ Skill
C++ programming for Unreal Engine development.
Overview
This skill provides capabilities for implementing Unreal Engine gameplay and systems using C++, including the reflection system, macros, and engine integration.
Capabilities
UCLASS System
- Implement UCLASS macros
- Handle UPROPERTY specifiers
- Create UFUNCTION methods
- Manage USTRUCT types
Memory Management
- Use smart pointers
- Handle garbage collection
- Manage object lifecycles
- Implement weak references
Engine Integration
- Create Actor classes
- Implement Components
- Handle Subsystems
- Create Plugins
Blueprint Exposure
- Expose C++ to Blueprint
- Handle BlueprintCallable
- Implement BlueprintNativeEvent
- Create Blueprint Function Libraries
Prerequisites
- Unreal Engine 5.0+
- Visual Studio 2022 / Rider
- C++ programming knowledge
Usage Patterns
Actor Class
UCLASS() class MYGAME_API AMyCharacter : public ACharacter { GENERATED_BODY() public: AMyCharacter(); UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats") float Health = 100.f; UFUNCTION(BlueprintCallable, Category = "Combat") void TakeDamage(float Damage); protected: virtual void BeginPlay() override; virtual void Tick(float DeltaTime) override; };
Component
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent)) class MYGAME_API UHealthComponent : public UActorComponent { GENERATED_BODY() public: UPROPERTY(BlueprintAssignable) FOnHealthChanged OnHealthChanged; UFUNCTION(BlueprintCallable) void ModifyHealth(float Delta); private: UPROPERTY(EditDefaultsOnly) float MaxHealth = 100.f; float CurrentHealth; };
Best Practices
- Use UPROPERTY for GC visibility
- Forward declare where possible
- Use interfaces for decoupling
- Profile with Unreal Insights
- Follow Unreal coding standards