Setup for Android
Introduction
The Android version of the Antidote SDK is compatible with various Unreal Engine versions:
| Engine Version | Support |
|---|---|
| 5.0 – 5.7 | ✅ Supported |
| 4.26 – 4.27 | ✅ Supported |
| 4.25 and older | ⚠️ Not officially tested |
Only C++ projects are currently supported. Blueprint projects are not yet supported.
Setup
Unreal
Here's how to integrate the Antidote SDK with your Unreal Engine game on Android:
- Download the latest version of Antidote SDK for Unreal.
- If you don't have a
Pluginsfolder yet, create it. - Unzip the downloaded file
- Copy the folder
AntidoteSDKinto your project'sPluginsfolder. The result will be:/YourProject/Plugins/AntidoteSDK/. - Generate the project Files.
- Close the editor.
- Recompile the project in Visual Studio.
- Add AntidoteSDK as a dependency in your project's build file. Example:
using UnrealBuildTool;
public class YourProject : ModuleRules
{
public YourProject(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"HeadMountedDisplay",
// this line adds AntidoteSDK as a dependency
"AntidoteSDK",
// this is required for the watermark
"UMG"
});
}
}
- In your GameMode's
BeginPlay, initialize the SDK with the desired options. Example:Example: YourProjectGameMode.cpp// (...) <-- Other Includes#include "Antidote.h"#include "AntidoteWatermark.h"void YourProjectGameMode::BeginPlay(){Super::BeginPlay();// (...) <-- Some Awesome Configuration// Antidote InitializationTMap<FString, bool> Options;Options.Add(TEXT("validate"), true);Options.Add(TEXT("showTouches"), true);Options.Add(TEXT("showWatermark"), false);UAntidote::Setup(Options);UAntidote::Load();}validate- verify that the player is authorized to launch the game, and terminate if they aren'tshowTouches- display user touches on screenshowWatermark- enable watermarking
- To enable Watermarking, one more step is required.
- Add the following to each of your
GameModeclasses:YourProjectGameMode.hclass AYourProjectGameMode : public AGameModeBase{GENERATED_BODY()public:// (...) <-- Some Awesome Existing CodeTSubclassOf<class UAntidoteWatermark> watermarkClass;virtual void BeginPlay() override; // <---}; - On your
GameModebase class add this code:YourProjectGameMode.cpp// (...) <-- Other Includes#include "Antidote.h"#include "AntidoteWatermark.h"YourProjectGameMode::YourProjectGameMode(): Super(){// (...) <-- Some Awesome Existing Code// Find and set the watermarkClass variablestatic ConstructorHelpers::FClassFinder<UAntidoteWatermark> wmClassFinder(TEXT("/AntidoteSDK/BP_Watermark"));watermarkClass = wmClassFinder.Class;}void YourProjectGameMode::BeginPlay(){Super::BeginPlay();// (...) <-- Some Awesome Existing Code// Antidote InitializationTMap<FString, bool> Options;Options.Add(TEXT("validate"), true);Options.Add(TEXT("showTouches"), true);Options.Add(TEXT("showWatermark"), true);UAntidote::Setup(Options);// Watermark Initializationif (watermarkClass){auto watermark = CreateWidget<UAntidoteWatermark>(GetWorld(), watermarkClass);watermark->AddToPlayerScreen(9999);UAntidote::SetWatermark(watermark);TMap<FString, float> Settings;Settings.Add(TEXT("textSpeed"), 70.f);Settings.Add(TEXT("changePositionSpeed"), 15.f);UAntidote::ConfigureWatermark(Settings);UAntidote::EnableWatermark(FLinearColor(1.0f, 0.0f, 0.0f, 0.8f));UAntidote::ChangeWatermarkBehaviour(UAntidoteWatermark::BehaviourType::TICKER);}UAntidote::Load();}
- Add the following to each of your
If you have multiple GameModes in your project, you have to add the watermark initialization code to each.
Shipping your game
Antidote SDK requires internet connectivity to verify the user session. If you are exporting your game for Android, please make sure to enable android.permission.INTERNET in your AndroidManifest.xml.
Tips & Troubleshooting
How to create a GameMode Class
- Go to Unreal Editor.
- Click
File/New C++ Class. - Scroll down, select
GameMode(Base class of the heads-up display). - Click
Next. - Set the name (e.g YourProjectGameMode).
- Click
Create Class. - Go to
ProjectSettings/Maps & Modes. - Set GameMode to your custom GameMode.
Unreal Editor doesn't start or shows an error regarding a plugin is not found
- Close Unreal Editor.
- Open the project in Visual Studio.
- Clean Solution.
- Rebuild Solution.
- Open the project in Unreal Editor again.
How to enable internet permission on Android
By default, if Unreal detects that you are using a network API, it will enable the INTERNET permission in your AndroidManifest.xml. Unfortunately this detection sometimes fails. In such cases we can force the permission, following the steps below:
- Go to
Edit/Project Settings. - Under
Platform, selectAndroid. - Go to
Advanced APK Packaging. - Add the extra permission
android.permission.INTERNET.
