/

Best Practices for Unity Games

Protecting Unity games requires a specialized approach that balances security with performance.


Key Protection Areas

Intellectual Property Protection

The primary goal is to protect your game's intellectual property:

  • Game mechanics and logic
  • Business rules and algorithms
  • Proprietary systems and features
  • Asset management and loading

Anti-Cheat Protection

Prevent cheating and unauthorized modifications:

  • Runtime memory tampering
  • Value manipulation
  • Game state modification
  • Unauthorized feature unlocking

Payment Gateway Protection

Secure your monetization systems:

  • In-app purchase verification
  • Premium content protection
  • Subscription validation
  • Virtual currency security

For Unity games, we strongly recommend using the Enterprise Edition of Shield, which provides:

  • Advanced memory protection
  • Runtime integrity checks
  • Anti-tampering measures
  • Comprehensive anti-cheat capabilities

Performance Considerations

Control Flow Protection

Control Flow protection should be applied selectively:

  • Only protect critical game logic methods
  • Avoid protecting performance-sensitive code
  • Test thoroughly after applying protection
  • Monitor frame rate impact

IL2CPP Considerations

When using IL2CPP compilation:

  • Test all protections thoroughly
  • Verify virtualization compatibility
  • Monitor memory usage
  • Check startup time impact

Best Practices

  1. Start with core protections:

    • Constants Encryption
    • Constants Mutation
    • Renamer (Shield automatically handles Unity compatibility)
  2. Add advanced protections carefully:

    • Virtualization (test with IL2CPP)
    • Control Flow (selective application)
    • Memory protection
  3. Avoid incompatible protections:

    • Invalid Code (not compatible with IL2CPP)
    • Certain reflection-based protections
  4. Test thoroughly:

    • On all target platforms
    • With different Unity versions
    • Under various load conditions
    • With different compilation settings

Shield automatically adapts its protections to work with Unity, whether using IL2CPP or Mono compilation. No special configuration is needed - Shield detects the Unity environment and applies appropriate protections.

For specific protection recommendations, see Recommended Protections.

Previous
Avalonia