This page informs you how to develop games based on Unreal Engine; porting Hive SDK, or building as Android or iOS apps.

Prerequisites

This guide is based on the following environment.

Common
  • Hive SDK v4 UE5 Android+iOS 22.0.0
  • Unreal Engine 5.2.1
Android
  • JAVA 8
  • AndroidStudio 4.1
  • Android NDK r25
  • Android SDK min version 26
  • Android SDK target version 33
iOS
  • Xcode 14.3+
  • iOS Version 15+
  • macOS Ventura 13+
Windows
  • Windows 10+

Porting

To develop apps based on Unreal Engine, port Hive SDK as plugin type to Unreal Engine development environment. As following description, add Hive SDK to the development environment and execute necessary setup and coding.

  1. Build Unreal Engine
  2. Adding Hive SDK to Unreal Editor as Plugin Type
  3. Editing Unreal Engine File
  4. General Settings
  5. Hive Settings

Build Unreal Engine

Refer to Prerequisites and download Unreal Engine source codes and build it.

Activate the Rosetta emulator for macOS

You need to use the Rosetta emulator on the Apple Silicon CPU-installed macOS development machine. Check Product > Destination > Destination Architectures > Show Rosetta Destinations on Xcode.

Adding Hive SDK to Unreal Editor

Add the Hive SDK as a plugin to Unreal Editor. If you do not have the Hive SDK for Unreal Engine, download the Hive SDK for Unreal Engine from SDK download page.

If you already downloaded the Hive SDK for Unreal Engine, follow the instructions below to add the Hive SDK as a plugin to the Unreal Editor:

  1. Unzip the Hive SDK for Unreal Engine downloaded from Hive developers site, and copy all the items in the Plugin folder from the unpacked files to the Plugins folder under the root folder of your Unreal Engine game project.
  2. Add "HIVESDK" to the parameter of PublicDependencyModuleNames.AddRange() method, which is implemented within the <Project_route>;/Source/<Project_route>;/<Project_name>;build.cs file, as the following example code. Replace with your actual project name.

Editing Unreal Engine File

Delete or edit the Unreal Engine file as follows.

Android

When the screen orientation is set to both directions (both horizontal and vertical) in the game build, the code below needs to be modified for the screen auto-rotation.

  • Go to the /Engine/Build/Android/Java/src/com/epicgames/unreal/GameActivity.java.template.

  • Add the HiveActivity.onConfigurationChanged() API.

A compatibility issue exists between the Google Billing Library version 5 used by the Hive SDK and the Google Billing features built into Unreal Engine, causing the build to fail. Modify the code below to fix this issue.

  • Go to the /Engine/Plugins/Online/Android/OnlineSubsystemGooglePlay/Source/OnlineSubsystemGooglePlay.Build.cs

  • Comment out the following code

To use the Singular external library included in the Hive SDK, the files below needs to be modified.

  • Go to the /Engine/Build/Android/Java/src/com/android/vending/licensing

  • Delete the following files.

    • ILicensingService.aidl
    • ILicenseResultListener. aidl
  • iOS

    To use the notification feature provided by the Hive SDK, the modification of Unreal Engine is required.

    In the files below, add the lines marked with 'Add' comment.
     

    Engine/Source/Runtime/ApplicationCore/Public/IOS/IOSAppDelegate.h

     

    Engine/Source/Runtime/ApplicationCore/Private/IOS/IOSAppDelegate.cpp

      When applying Hive SDK, implement application(_:supportedInterfaceOrientationsFor:) method in the IOSAppDelegate.cpp file from Unreal Engine to activate the Configuration of Screen Orientation feature on iOS. This method returns UIInterfaceOrientationMask value for using on the game. It returns landscape in landscape-only game, portrait in portrait-only game, and landscape as well as portrait in all-type-supported game.

      • Add the following code to /Engine/Source/Runtime/ApplicationCore/Private/IOS/IOSAppDelegate.cpp.
    Universal Link Settings
    • From Hive SDK v4.15.8, Universal Link, not a URL scheme, enables you to install and run an app and reward invitees on the invite page.
    • For more information about the additional console settings for creating invitee links based on Universal Link, see the Operation > Promotion guide from Hive Developers.

    In the files below, add the line commented with 'Add'.
     

    Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSExport.cs

    General Settings

    Android
    1. Click Edit >; Project setting menu of Unreal Editor. Project setting screen will show up.
    2. Select Android SDK from the Platforms list. Then you can set the Android version on the Android SDK Setting screen as described below.
      • Input android-30(Hive SDK v4.15.1+) and higher in the SDK API Level field.
      • Input android-21 in the NDK API Level field.

    3. Select Android from the Platforms list. Then, you can set the fields of APKPackaging section as described below.
      • Input AppID of the game in the blank of Android Package Name field.
      • Input the app version Store Version: Input the app version shown in Google Play Store. View more information about app version
      • Set the Minimum SDK Version as 21 and higher. Even if you set it as under 21, it will be automatically changed as 21 by Unreal Engine operating.
      • Set the Target SDK Version as 30(Hive SDK v4.15.1+) and higher.

    Google and Google Play Games Sign-in support

    Hive SDK supports both Google sign-in (iOS, Android) and Google Play Games sign-in (Android). To use Google Play Games sign-in, you first need to modify the Unreal Engine codes as below.

    1. Open ./Engine/Build/Android/Java/src/com/epicgames/unreal/GameActivity.java.template and ./Engine/Build/Android/Java/src/com/epicgames/unreal/psoservices/PSOProgramServiceAccessor.java.
    2. Remove the following line.

    To use Google or Google Play Games sign-in, select “GOOGLE” or “GOOGLE_PLAY_GAMES” ProviderType and call AuthV4.SignIn().

    Add Firebase Analytics
    • After registering an app in the Firebase console (https://firebase.google.com/), put the issued googleservices.json file in the following path.

      /Plugins/HIVESDK/Source/HIVESDK

    • The Hive SDK Plugin includes Firebase Analytics by default. Remove the following line from the following file to remove the default Firebase Analytics.
      • /Plugins/HIVESDK/Source/HIVESDK/HIVESDK_APL.xml
      • apply plugin: 'com.google.gms.google-services' // Remove the following line to remove Firebase Analytics.
    Support One Store

    To support One Store, add the following codes to the /Plugins/HIVESDK/Source/HIVESDK/HIVESDK_APL.xml file.

     

    iOS
    1. Click Edit > Project setting on the Unreal Editor menu. Project setting window will show up.
    2. Select the iOS from the Platforms list. Then, you can set the fields as described below on the setting screen.
      • Bundle Information group: Input AppID of the game in the blank of Bundle Identifier field.
      • OS Info group: Unreal Engine 4.25 supports OS 11.0 and later. Set the value of Minimum OSVersion field as 11.0.
      • Build group: Input -ObjC in the Additional Non-Shipping Linker Flags field and Additional Shipping Linker Flags field.
      • Extra PList Data group: Input the following codes in the Additional PList Data field.
      • Access permission request settings
      • When using Facebook, QQ, VK, WeChat or Line, add the following codes to set Whitelist on the server:
      • When using Facebook, utilize the following code to add a Facebook AppID and a ClientToken. Make sure to enter the Facebook AppID and ClientToken of your games.
      • Set the URL Scheme.
      • Following is an example entering all values above into the Additional PList Data field:
    3. Add the following codes to the DefaultEngine.ini file in the Project > Config directory to use Apple Sign-in.

     

    Add Firebase Analytics
  • After registering the app in the Firebase console (https://firebase.google.com/), put the issued GoogleService-Info.plist file under the following path.

    /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/resource

  • Hive SDK Plugin includes the Firebase Analytics by default. Remove the following files to remove the default Firebase Analytics.
    • /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/framework/Hive/ProviderFirebase.embeddedframework.zip
    • /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/framework/external/FirebaseAnalytics.embeddedframework.zip
    • /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/framework/external/FirebaseCore.embeddedframework.zip
    • /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/framework/external/FirebaseCoreDiagnostics.embeddedframework.zip
    • /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/framework/external/FirebaseCoreInternal.embeddedframework.zip
    • /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/framework/external/FirebaseInstallations.embeddedframework.zip
  • Apply language configuration file
  • In order to apply multiple languages, you need to add a language configuration file.
    • Please copy all the files in the localize folder of configuration file and paste them into the following path.

      /Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/resource

  • Apply HIVEAppDelegate
  • For iOS builds, the AppDelegate method needs to be modified. In Unreal Engine environment, please use the Swizzling to access AppDelegate.
    Add the code below at the initialization stage when starting the game.
  •  

    Configure iOS FMallocAnsi

    FMallocAnsi settings are required for proper compatibility between the Unreal Engine iOS environment and the C++ standard template library.

    Add the following codes to the {YourProject}.Target.cs file in your game project.

    Hive Settings

    Configure the setting items to utilize Hive in accordance with the following instructions. If you change the settings, the values of Unreal Editor is automatically saved, and the files saving setting values (hive_config.xml, etc_string.xml and GooglePlayAppID.xml) save the changes automatically. If the file of setting value does not exist, Hive SDK automatically generate it and save at the following route:

    • Android:
      <Project_Root folder>;/Plugins/HIVESDK/Source/HIVESDK/ThirdParty/android/resource/res/raw
    • iOS:
      <Project_Root folder>;/Plugins/HIVESDK/Source/HIVESDK/ThirdParty/iOS/resource/

    Follow the instructions below to set the values necessary for Hive:

    1. Click Edit >; Project Settings in the menu on Unreal Editor. Project Settings screen will show up.
    2. On the left panel of the project settings page, click HIVEConfig XML menu below the title, Plugin. Then HIVEConfig XML settings screen will show up.
    3. Replace the setting items as following instruction in the HIVEConfig XML screen.:
      • Input Facebook AppID of the game in the blank of Facebook App ID field in the Facebook Settings group. If you do not know the Facebook AppID, read Prerequisites.
      • Input Google Play Game Service AppID received from GAMEVIL or Com2uS in the blank of Google Play App ID field in the Google Play Settings group.
      • HiveConfig Settings group: Among setting values in the hive_config.xml file, followings are available to configure.
      • HiveConfig Mobile App Tracking Settings: Input the setting value for the marketing attribution to be used. Input the value of AppID, key or token issued from the marketing attribution dashboard.
        View the Marketing Attribution Settings Guide
      • WriteExternalStoragePermission: The value required by Android to request a permission to access external storage to users or not. If checked, Hive Client requests access permission to external storage to users when initializing Hive SDK.

    Building

    Follow the rules by OS below to utilize Unreal Engine development environment.

    Building Android Apps

    Build Settings

    If the version of Unreal Engine you use is 4.0 and later, set the items necessary to distribute your apps on Google Play Store as following instructions:

    • Setting Signing Key:
        1. Click Edit >; Project Settings in the menu on Unreal Editor. Project Settings screen will show up.
        2. On the left panel of the project settings page, click Android menu below the title, Platform. Then Android settings screen will show up.
        3. Input the Signing Key data in the field of Distribution Signing group on Android settings screen.

    • Packaging settings:
        1. On the left panel of the project settings page, click Packaging menu, below Project title. Then Packaging settings screen will show up.
        2. Check the For Distribution field of Project group in the packaging settings screen.

    Building

    How to build Hive-porting games for Android is the same with how to build general game apps for Android. Utilize File >; Project Packaging >; Android menu in the Unreal Editor.

    For more information about how to build, see Unreal Engine Guidelines.

    Building iOS Apps

    How to build Hive-porting games for iOS is the same with how to build general game apps for iOS. Utilize File >; Project Packaging >; iOS menu in the Unreal Editor.

    For more information about how to build, see Unreal Engine Guidelines.