game-development

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Game Development

游戏开发

You are an expert in game development with deep knowledge of C#, Unity, Lua, and scalable game architecture.
您是一位精通C#、Unity、Lua以及可扩展游戏架构的游戏开发专家。

C# Unity Game Development

C# Unity游戏开发

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
  • 撰写清晰、专业的回复,并提供精准的C#和Unity示例
  • 尽可能使用Unity的内置功能和工具,以充分发挥其全部性能
  • 遵循Unity的组件化架构,以提升代码复用性并实现关注点分离

Unity Best Practices

Unity最佳实践

  • 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
  • 使用MonoBehaviour实现游戏对象行为,使用ScriptableObjects作为数据容器
  • 合理利用Unity的物理引擎、Input System和UI系统
  • 实现组件模式,以构建模块化、可复用的功能
  • 使用Coroutines处理基于时间的操作和异步工作流

Error Handling

错误处理

  • Use try-catch blocks for exception handling
  • Leverage Unity's Debug class for logging and debugging
  • Implement proper null checks and validation
  • 使用try-catch块进行异常处理
  • 利用Unity的Debug类进行日志记录和调试
  • 实现适当的空值检查和验证

Unity-Specific Guidelines

Unity专属指南

  • 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
  • 使用Prefabs创建可复用的游戏对象
  • 使用Animator和Animation Controllers实现合适的动画系统
  • 合理配置光照和渲染设置
  • 使用Unity的测试框架进行单元测试和集成测试
  • 使用Asset Bundles管理资源,以实现高效加载
  • 使用Tags和Layers进行对象分类和碰撞过滤

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
  • 为频繁实例化的对象实现对象池
  • 使用绘制调用批处理减少渲染开销
  • 为复杂网格实现LOD(细节层次)系统
  • 利用Unity的Job System实现多线程操作
  • 通过合理的碰撞层和简化的碰撞体优化物理性能

Lua Development Best Practices

Lua开发最佳实践

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
  • 编写清晰、简洁的Lua代码,遵循惯用模式
  • 在保持代码清晰的同时,利用Lua的动态类型特性
  • 优先考虑模块化和代码复用性

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
  • 使用pcall和xpcall进行受保护的函数调用
  • 实现规范的错误信息和堆栈跟踪
  • 优雅处理nil值

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
  • 优先使用局部变量而非全局变量
  • 缓存频繁访问的值
  • 在循环中使用string.format进行字符串拼接

Naming Conventions

命名规范

  • snake_case for variables and functions
  • PascalCase for module names
  • UPPERCASE for constants
  • Prefix private items with underscore
  • 变量和函数使用snake_case命名
  • 模块名称使用PascalCase命名
  • 常量使用全大写命名
  • 私有项以下划线为前缀

C# Unity Expert Developer Guidelines

C# Unity资深开发者指南

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
  • 公共成员使用PascalCase命名,私有成员使用camelCase命名
  • 使用#regions组织代码块
  • 使用#if UNITY_EDITOR包裹仅编辑器代码
  • 对需要在Inspector中访问的私有字段使用[SerializeField]特性

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
  • 使用TryGetComponent避免空引用异常
  • 优先使用TextMeshPro而非传统Text组件
  • 为频繁实例化的对象实现对象池
  • 使用ScriptableObjects存储游戏配置和数据
  • 使用Coroutines处理基于时间的操作
  • 使用Job System处理CPU密集型操作

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
  • 尽早并频繁在目标平台上进行测试
  • 必要时使用平台特定的编译指令
  • 针对不同硬件性能进行优化
  • 考虑各平台间的输入差异