Introduction
Easy Anti-Cheat (EAC), now part of Epic Online Services, is a powerful tool for reducing cheating in online multiplayer games. This guide will walk you through the process of implementing EAC in your game, covering everything from prerequisites to integration steps and best practices.
For official documentation, please refer to the Epic Games Anti-Cheat guide.
Prerequisites
- EOS SDK version 1.12 or higher
- 64-bit operating system (Windows, macOS, ChromeOS, or Linux)
- Implementation of the Reports Interface (for generating sanctions)
Understanding Anti-Cheat Interfaces
EAC provides two main interfaces:
- Anti-Cheat Client Interface (for game clients)
- Anti-Cheat Server Interface (for dedicated servers)
These interfaces offer two types of protection:
- Cheat prevention: Passively prevents common cheating techniques
- Cheat detection: Identifies accounts using specialized cheating methods
For a detailed explanation of the Anti-Cheat Interfaces, see the official Epic Games documentation.
Network Architecture
EAC supports various network architectures:
1. Dedicated Server (Client-Server mode)
- Implement both Anti-Cheat Client and Server interfaces
- Recommended for games with authoritative servers
2. Peer-to-Peer Mesh
- Use only the Anti-Cheat Client interface
- Each player verifies others have anti-cheat protection active
3. Listen Server
- Choose between Peer-to-Peer or Client-Server mode
- Special considerations for the authoritative game host
Platform Components
Windows
- Service Installer (EasyAntiCheat_EOS_Setup.exe)
- Anti-Cheat Bootstrapper (start_protected_game.exe)
- Service (EasyAntiCheat_EOS.exe)
macOS and Linux
- Anti-Cheat Bootstrapper (start_protected_game.app or start_protected_game)
Integration Steps
1. Configure Client Credentials
- Use the predefined GameClient policy type for the Client interface
- Use the TrustedServer policy type for the Server interface (if using trusted official servers)
2. Distribute Platform Components
- Include necessary files from the EOS SDK package in your game distribution
3. Implement the Anti-Cheat Client Interface
EOS_HAntiCheatClient antiCheatClientHandle = EOS_Platform_GetAntiCheatClientInterface(platformHandle);
if (antiCheatClientHandle != nullptr)
{
EOS_AntiCheatClient_BeginSessionOptions beginSessionOptions = {};
beginSessionOptions.ApiVersion = EOS_ANTICHEATCLIENT_BEGINSESSION_API_LATEST;
// Set other options as needed
EOS_AntiCheatClient_BeginSession(antiCheatClientHandle, &beginSessionOptions);
}
4. Implement the Anti-Cheat Server Interface (for dedicated servers)
EOS_HAntiCheatServer antiCheatServerHandle = EOS_Platform_GetAntiCheatServerInterface(platformHandle);
if (antiCheatServerHandle != nullptr)
{
EOS_AntiCheatServer_BeginSessionOptions beginSessionOptions = {};
beginSessionOptions.ApiVersion = EOS_ANTICHEATSERVER_BEGINSESSION_API_LATEST;
// Set other options as needed
EOS_AntiCheatServer_BeginSession(antiCheatServerHandle, &beginSessionOptions);
}
5. Register Callbacks
- For Client-Server mode: Use EOS_AntiCheatClient_AddNotifyMessageToServer and EOS_AntiCheatServer_AddNotifyMessageToClient
- For Peer-to-Peer mode: Use EOS_AntiCheatClient_AddNotifyMessageToPeer
6. Set Up Protected Session Notifications
- Implement logic to handle protected session starts and ends
7. (Windows Only) Configure the Windows Service Installer
- Set up installation and uninstallation commands in your game installer
Testing and Verification
For a comprehensive checklist to verify your Anti-Cheat integration, refer to the official Epic Games Anti-Cheat Integration Checklist. Key steps include:
- Remove existing EAC installations
- Install your game as a normal player would
- Test game launching with and without the anti-cheat bootstrapper
- Verify multiplayer functionality in various anti-cheat configurations
- Test error handling and edge cases
Best Practices
- Regularly update EAC components when updating the EOS SDK
- Implement robust game architecture with server authority where possible
- Address game exploits and bugs promptly
- Use player reports to complement anti-cheat measures
- Consider cross-platform play implications, especially for console support
Enhancing Security with Getgud.io
While Easy Anti-Cheat provides robust client-side protection, you can further enhance your game’s security by pairing it with Getgud.io. Getgud offers an additional layer of server-side anti-cheat measures and advanced analytics, working seamlessly alongside EAC to provide comprehensive protection.
Key benefits of using Getgud.io in conjunction with EAC:
- Server-side integration: Getgud operates on your game server, complementing EAC’s client-side protection.
- AI-powered cheat detection: Getgud uses advanced algorithms to detect subtle cheating patterns that may slip past traditional anti-cheat solutions.
- Comprehensive game analytics: Gain deeper insights into player behavior and game performance.
- Easy integration: Getgud’s SDK can be quickly integrated into your existing game infrastructure.
To implement Getgud alongside EAC:
- Sign up for Getgud.io and obtain your credentials
- Integrate the Getgud SDK into your game server
- Configure Getgud to work in tandem with EAC
- Use Getgud’s analytics and reporting tools to complement EAC’s protection
For detailed integration instructions, check out the Getgud official documentation.
Conclusion
Implementing Easy Anti-Cheat through Epic Online Services provides a strong foundation for protecting your game against cheaters. By following this guide and best practices, you can significantly reduce cheating in your online multiplayer game. Remember that anti-cheat is an ongoing process, and you should regularly update and monitor your anti-cheat measures.
By combining Easy Anti-Cheat with additional solutions like Getgud.io, you create a multi-layered defense against cheaters, ensuring a fair and enjoyable experience for all your players. This comprehensive approach addresses both client-side and server-side vulnerabilities, providing a more robust anti-cheat solution.