Upgrade from Previous Versions

Upgrading the Genvid MILE SDK from one version to another may include some manual steps. This page includes any steps required to update to version 1.42.0 from the last version. If you’re upgrading an older version of the SDK, start with any special upgrade instructions for your version found here.

General Upgrade Instructions

Upgrade the Genvid MILE SDK

Important

Since version 1.33, the Genvid Toolbox package no longer depends on the Azure CLI. Instead, it uses the standalone Azure CLI Installer to avoid some dependency conflicts. When upgrading, you might get some conflict errors. However, the installation favors the last package, so your Toolbox installation will be successful despite these messages. As a precaution, you might want to remove the Azure CLI package and its dependencies and use the standalone Azure CLI installer instead.

To set up the new SDK locally:

  1. Install the new SDK.

  2. Run the Python script to install the Genvid Toolbox.

    py install-toolbox.py
    
  3. Run the Genvid Bastion script to update your bastion.

    genvid-bastion reinstall --reconfigure --resetconfig -b {mybastion} -uml
    
  4. If you have a local cluster running, you should update the configuration of the cluster by running.

    genvid-sdk setup
    genvid-sdk load-config-sdk
    

Update Your Broadcast Website

If you used code from the samples we provide in your own project, note that we recently enforced a best practice concerning service discovery using consul in those samples. You should check again the samples and update your project accordingly. We invite you to use the consul health api instead of the catalog api to fetch the url of your services, since it is more likely that the url will point to a healthy service.

Update Your Game

To update your game without applying new features, just replace the old genvid.dll from the previous SDK with the one from the new SDK. The old plugins and integration should work as-is, with the exception of the specific upgrade instructions below.

Attention

Always follow the full upgrade path for the Genvid SDK version you’re using. For example: If you’re upgrading from version 1.6.0 to 1.10.0, start by upgrading from 1.6.0 to 1.7.0 then continue with each version.

See the full list of upgrade instructions for your specific version.

Upgrade the Javascript API

You should also upgrade the Genvid JavaScript API on your website.

Update Your Cluster

We strongly recommend keeping your old clusters as-is and creating a new one for the update.

To create a new cloud-based cluster, follow the standard instructions:

  1. Set up a new wingame AMI that matches the new version.

  2. Create new clusters.

To create a new local cluster, follow the standard instructions listed in the Initialize a Local Cluster section.

Once you have replaced all your clusters, you can remove the old SDK repositories from the Modules Section page.

Updating an Existing Cluster

Warning

Updating your cluster can replace all your instances and even erase your current configuration. We recommend not updating a live cluster. If you do, carefully check the changes before applying the plan.

You can update the module used to build your cluster by clicking on Reimport Module in the module section of your cluster infrastructure, then select the module new version and import it. Finally, click apply in the Terraform section.

Note

Some changes can take time to propagate to AWS. This is especially true for IAM roles and policies, which could then create some conflicts when recreated. Re-applying the Terraform plan should fix the problem.

Update Genvid SDK Samples

Along with your own project, make sure you update any of the Genvid SDK samples you’ve previously installed.

Upgrade from 1.41.0 to 1.42.0

Deprecated the genvid.toolbox.sdk_folder module.

The Python module genvid.toolbox.sdk_folder has been deprecated in favor of genvid.toolbox.SDKInstallationFolder.

Added reentry detection on subscriptions.

To prevent some race conditions, it is no longer possible to call Genvid_CheckForEvents(), Genvid_Subscribe(), Genvid_Unsubscribe(), Genvid_SubscribeCommand() or Genvid_UnsubscribeCommand() from their respective callbacks. Calling them will now return a GenvidStatus_InvalidState.

Reworked the Unreal Engine Plugin.

We merged the GenvidPlugin plugin into the Genvid plugin and renamed the editor module to GenvidSDKSelector. Both also properly use the module dependency functions, which should help avoid needing to manage the paths manually in your .Build.cs files. We updated the Unreal Tournament integration accordingly.

To upgrade:

  1. Remove the old Genvid and GenvidPlugin plugins.

  2. Either run the GENVID_SDK_FOLDER/engine-integration/ue4/copy-ue4-plugin.py checkout command or copy GENVID_SDK_FOLDER/engine-integration/ue4/Genvid into your Plugins folder.

To upgrade Unreal Tournament, modify the added section for Genvid in UnrealTournament/Source/UnrealTournament/UnrealTournament.Build.cs from:

PrivateIncludePaths.Add("Genvid/Private");
PublicIncludePaths.Add("Genvid/Public");
PublicDependencyModuleNames.Add("Genvid");

to:

PrivateDependencyModuleNames.Add("Genvid");
if (Target.Type == TargetRules.TargetType.Editor)
{
    PrivateDependencyModuleNames.Add("GenvidSDKSelector");
}

Updated SDK to initialize in Unreal Game Server mode.

The SDK is now properly initialized even in server mode, which is a breaking change in the Unreal Plugin for the Genvid MILE SDK. The Streams remain deactivated to avoid breaking headless servers, but you can now send Notifications and receive Commands Channel and Scalable Event Channels.

This could lead to unexpected results if you are running the server in the same cluster as a client (as demonstrated in our Unreal Tournament Sample).

Removed UGenvidStreamer and UGenvidWorldSettings.

In version 1.12.0, we deprecated the UGenvidStreamer and UGenvidWorldSettings classes and replaced them with new classes. We removed both from the Unreal Plugin with this release.

You can still find their code in previous releases if you need them.

Upgrading from Older Versions

Note

If there aren’t specific instructions listed for a version, then there aren’t any special steps for upgrading that version.