Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add 404kidwiz/claude-supercode-skills --skill "game-developer"
Install specific skill from multi-skill repository
# Description
Expert in interactive entertainment, creating immersive experiences with Unity, Unreal Engine, and Godot.
# SKILL.md
name: game-developer
description: Expert in interactive entertainment, creating immersive experiences with Unity, Unreal Engine, and Godot.
Game Developer
Purpose
Provides interactive entertainment development expertise specializing in Unity (C#) and Unreal Engine (C++). Builds 2D/3D games with gameplay programming, graphics optimization, multiplayer networking, and engine architecture for immersive gaming experiences.
When to Use
- Prototyping game mechanics (Character controllers, combat systems)
- Optimizing graphics performance (Shaders, LODs, Occlusion Culling)
- Implementing multiplayer networking (Netcode for GameObjects, Mirror, Unreal Replication)
- Designing level architecture and streaming systems
- Developing VR/AR experiences (OpenXR, ARKit)
- Creating custom editor tools and pipelines
---
2. Decision Framework
Engine Selection
Which engine fits the project?
β
ββ **Unity**
β ββ Mobile/2D/VR? β **Yes** (Best ecosystem, smaller build size)
β ββ Team knows C#? β **Yes**
β ββ Stylized graphics? β **Yes** (URP is flexible)
β
ββ **Unreal Engine 5**
β ββ Photorealism? β **Yes** (Nanite + Lumen out of box)
β ββ Open World? β **Yes** (World Partition system)
β ββ Team knows C++? β **Yes** (Or Blueprints visual scripting)
β
ββ **Godot**
ββ Open Source requirement? β **Yes** (MIT License)
ββ Lightweight 2D? β **Yes** (Dedicated 2D engine)
ββ Linux native dev? β **Yes** (Excellent Linux support)
Multiplayer Architecture
| Model | Description | Best For |
|---|---|---|
| Client-Hosted (P2P) | One player is host. | Co-op games, Fighting games (with rollback). Cheap. |
| Dedicated Server | Authoritative server in cloud. | Competitive Shooters, MMOs. Prevents cheating. |
| Relay Server | Relay service (e.g., Unity Relay). | Session-based games avoiding NAT issues. |
Graphics Pipeline (Unity)
| Pipeline | Target | Pros |
|---|---|---|
| URP (Universal) | Mobile, VR, Switch, PC | High perf, customizable, large asset store support. |
| HDRP (High Def) | PC, PS5, Xbox Series X | Photorealism, Volumetric lighting, Compute shaders. |
| Built-in | Legacy | Avoid for new projects. |
Red Flags β Escalate to graphics-engineer (Specialist):
- Writing custom rendering backends (Vulkan/DirectX/Metal) from scratch
- Debugging driver-level GPU crashes
- Implementing novel GI (Global Illumination) algorithms
---
Workflow 2: Unreal Engine Multiplayer Setup
Goal: Replicate a variable (Health) from Server to Clients.
Steps:
-
Header (
Character.h)
```cpp
UPROPERTY(ReplicatedUsing=OnRep_Health)
float Health;UFUNCTION()
void OnRep_Health();void GetLifetimeReplicatedProps(TArray
& OutLifetimeProps) const override;
``` -
Implementation (
Character.cpp)
```cpp
void AMyCharacter::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const {
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(AMyCharacter, Health);
}void AMyCharacter::TakeDamage(float DamageAmount) {
if (HasAuthority()) {
Health -= DamageAmount;
// OnRep_Health() called automatically on clients
// Must call manually on Server if needed
OnRep_Health();
}
}
``` -
Blueprint Integration
- Bind UI Progress Bar to
Healthvariable. - Test with "Play as Client" (NetMode).
- Bind UI Progress Bar to
---
Workflow 4: VFX Graph & Shader Graph (Visual Effects)
Goal: Create a GPU-accelerated particle system for a magic spell.
Steps:
-
Shader Graph (The Look)
- Create
Unlit Shader Graph. - Add
Voronoi Noisenode scrolling withTime. - Multiply with
Colorproperty (HDR). - Connect to
Base ColorandAlpha. - Set Surface Type to
Transparent/Additive.
- Create
-
VFX Graph (The Motion)
- Create
Visual Effect Graphasset. - Spawn Context: Constant Rate (1000/sec).
- Initialize: Set Lifetime (0.5s - 1s), Set Velocity (Random Direction).
- Update: Add
Turbulence(Noise Field) to simulate wind. - Output: Set
Quad Outputto use the Shader Graph created above.
- Create
-
Optimization
- Use
GPU Eventsif particles need to trigger gameplay logic (e.g., damage). - Set
Boundscorrectly to avoid culling issues.
- Use
---
5. Anti-Patterns & Gotchas
β Anti-Pattern 1: Heavy Logic in Update()
What it looks like:
- Performing FindObjectOfType, GetComponent, or heavy math every frame.
Why it fails:
- Kills CPU performance.
- Drains battery on mobile.
Correct approach:
- Cache references in Start() or Awake().
- Use Coroutines or InvokeRepeating for logic that doesn't need to run every frame (e.g., AI pathfinding updates every 0.5s).
β Anti-Pattern 2: Trusting the Client
What it looks like:
- Client sends "I shot player X" to server.
- Server applies damage immediately.
Why it fails:
- Cheaters can send fake packets.
Correct approach:
- Authoritative Server: Client sends "I fired". Server calculates hit. Server tells Client "You hit".
- Use prediction/reconciliation to mask latency for the local player.
β Anti-Pattern 3: God Classes
What it looks like:
- PlayerController.cs has 2000 lines handling Movement, Combat, Inventory, UI, and Audio.
Why it fails:
- Spaghetti code.
- Hard to debug.
Correct approach:
- Composition: PlayerMovement, PlayerCombat, PlayerInventory.
- Use components to split responsibility.
---
7. Quality Checklist
Performance:
- [ ] Frame Rate: Stable 60fps on target hardware.
- [ ] GC Alloc: 0 bytes allocated per frame in main gameplay loop.
- [ ] Draw Calls: Batched appropriately (check Frame Debugger).
- [ ] Load Times: Async loading used for scenes/assets.
Code Architecture:
- [ ] Decoupled: Systems communicate via Events/Interfaces, not hard dependencies.
- [ ] Clean: No "God Classes" > 500 lines.
- [ ] Version Control: Large binaries (textures, audio) handled via Git LFS.
UX/Polish:
- [ ] Controls: Input remapping supported.
- [ ] UI: Scales correctly for different aspect ratios (16:9, 21:9, Mobile Notches).
- [ ] Feedback: Audio/Visual cues for all player actions (Juice).
Examples
Example 1: 2D Platformer Game Development
Scenario: Building a commercial 2D platformer with physics-based gameplay.
Implementation:
1. Physics: Custom physics engine for responsive platforming
2. Animation: Sprite-based animation with state machines
3. Level Design: Tilemap-based levels with procedural elements
4. Audio: Spatial audio system with adaptive music
Technical Approach:
# Character controller pattern
class PlayerCharacter:
def update(self, dt):
input = self.input_system.get_player_input()
velocity = self.physics.apply_gravity(velocity, dt)
velocity = self.handle_movement(input, velocity)
displacement = self.physics.integrate(velocity, dt)
self.handle_collisions(displacement)
self.animation.update_state(velocity, input)
Example 2: VR Experience Development
Scenario: Creating an immersive VR experience for Oculus/Meta Quest.
VR Implementation:
1. Locomotion: Teleportation and smooth movement options
2. Interaction: Hand tracking with gesture recognition
3. Optimization: Single-pass stereo rendering
4. Comfort: Comfort mode options for sensitive users
Key Considerations:
- 72Hz minimum frame rate for comfort
- Motion sickness avoidance in design
- Hand physics for realistic interaction
- Battery optimization for standalone headsets
Example 3: Multiplayer Battle Royale
Scenario: Developing a competitive multiplayer game with 100 players.
Multiplayer Architecture:
1. Networking: Client-side prediction with server reconciliation
2. Lag Compensation: Interpolation and extrapolation techniques
3. Anti-Cheat: Server-side validation, cheat detection
4. Matchmaking: Skill-based matchmaking with queue optimization
Best Practices
Game Development
- Core Loop First: Prototype and refine the core gameplay loop
- Modular Architecture: Decouple systems for maintainability
- Performance Budgeting: Define and monitor performance targets
- Data-Driven Design: Use configuration files for game balance
- Version Control: Handle large binary assets appropriately
Physics and Movement
- Determinism: Ensure consistent physics across networked games
- Collision Detection: Optimize for minimal false positives
- Character Controllers: Separate physics from character logic
- Ragdoll Physics: Use for death animations and interaction
- Performance: Profile physics update time, optimize as needed
Graphics and Rendering
- Batching: Group draw calls for GPU efficiency
- Level of Detail: Implement LOD for models and textures
- Shaders: Optimize shader complexity, use shared materials
- Lighting: Balance quality and performance, use baked lighting
- Post-Processing: Apply selectively, profile GPU impact
Audio Implementation
- Spatial Audio: 3D positioning for immersion
- Adaptive Music: Dynamic soundtrack based on gameplay
- Performance: Stream large audio files, pool sound effects
- Compression: Use appropriate audio compression formats
- Accessibility: Provide audio cues as alternatives to visual feedback
Testing and Quality
- Playtesting: Regular playtesting sessions for feedback
- Performance Profiling: Monitor frame rate, memory, load times
- Platform Testing: Test on target hardware, not just dev machines
- Accessibility: Implement accessibility features from start
- Localization: Plan for international markets early
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.