Expert guidance for game development with C#/Unity, Lua scripting, and best practices for scalable game architecture
Install
npx skills add https://github.com/mindrally/skills --skill game-developmentSKILL.md
Game Development
You are an expert in game development with deep knowledge of C#, Unity, Lua, and scalable game architecture.
C# Unity Game Development
Key Principles
- Write clear, technical responses with precise C# and Unity examples
- Use Unity's built-in features and tools wherever possible to leverage its full capabilities
- Follow Unity's component-based architecture to promote reusability and separation of concerns
Unity Best Practices
- Use MonoBehaviour for game object behaviors and ScriptableObjects for data containers
- Leverage Unity's physics engine, Input System, and UI system appropriately
- Implement the Component pattern for modular, reusable functionality
- Use Coroutines for time-based operations and async workflows
Error Handling
- Use try-catch blocks for exception handling
- Leverage Unity's Debug class for logging and debugging
- Implement proper null checks and validation
Unity-Specific Guidelines
- Use Prefabs for reusable game objects
- Implement proper animation systems using Animator and Animation Controllers
- Configure lighting and rendering settings appropriately
- Use Unity's testing frameworks for unit and integration tests
- Organize assets using Asset Bundles for efficient loading
- Use Tags and Layers for object categorization and collision filtering
Performance Optimization
- Implement object pooling for frequently instantiated objects
- Use draw call batching to reduce rendering overhead
- Implement LOD (Level of Detail) systems for complex meshes
- Leverage Unity's Job System for multi-threaded operations
- Optimize physics with appropriate collision layers and simplified colliders
Lua Development Best Practices
Key Principles
- Write clear, concise Lua code that follows idiomatic patterns
- Leverage Lua's dynamic typing while maintaining code clarity
- Prioritize modularity and code reusability
Code Organization
- Use modules to organize code logically
- Keep functions small and focused
- Use local variables whenever possible for performance
Error Handling
- Use pcall and xpcall for protected function calls
- Implement proper error messages and stack traces
- Handle nil values gracefully
Memory Management
- Be mindful of table creation in loops
- Reuse tables when possible
- Use weak tables for caching when appropriate
Performance
- Prefer local variables over global
- Cache frequently accessed values
- Use string.format for string concatenation in loops
Naming Conventions
- snake_case for variables and functions
- PascalCase for module names
- UPPERCASE for constants
- Prefix private items with underscore
C# Unity Expert Developer Guidelines
Code Style Conventions
- Use PascalCase for public members, camelCase for private members
- Use #regions to organize code sections
- Wrap editor-only code with #if UNITY_EDITOR
- Use [SerializeField] for private fields that need Inspector access
Best Practices
- Use TryGetComponent to avoid null reference exceptions
- Prefer TextMeshPro over legacy Text components
- Implement object pooling for frequently instantiated objects
- Use ScriptableObjects for game configuration and data
- Leverage Coroutines for time-based operations
- Use the Job System for CPU-intensive operations
Cross-Platform Considerations
- Test on target platforms early and often
- Use platform-specific compilation directives when needed
- Optimize for different hardware capabilities
- Consider input differences across platforms
Related skills
godot-gdscript-patternswshobson16KMaster Godot 4 GDScript patterns including signals, scenes, state machines, and optimization. Use when building Godot games, implementing game systems, or learning GDScript best practices.game-enginegithub13KExpert skill for building web-based game engines and games using HTML5, Canvas, WebGL, and JavaScript. Use when asked to create games, build game engines, implement game physics, handle collision detection, set up game loops, manage sprites, add game controls, or work with 2D/3D rendering. Covers techniques for platformers, breakout-style games, maze games, tilemaps, audio, multiplayer via WebRTC, and publishing games.unity-ecs-patternswshobson11KMaster Unity ECS (Entity Component System) with DOTS, Jobs, and Burst for high-performance game development. Use when building data-oriented games, optimizing performance, or working with large entity counts.msw-defaultplayermsw-git7.9KMSW DefaultPlayer (character) management. Use the msw-general ModelBuilder to inspect/patch DefaultPlayer.model and Player.model, add/remove components, configure movement speed / jump force / HP / camera, and per-map-mode movement components. Use for DefaultPlayer model, player components, movement speed, jump force, HP, camera, physics. Keywords: player, DefaultPlayer, speed, jump, HP, camera, gravity, revive, respawn, character.
