Upgrade from 1.12.0 to 1.13.0

The toolbox Terraform Variable is no longer necessary

The Genvid AMIs now have the Genvid Python Toolbox package pre-installed. Although the variable will still be updated if present in your global settings, it will no longer add it if not present.

Memory constraints are now respected

The Linux Server AMI distribution now includes support for enforcing memory constraints on containers. The default limit for our version of Nomad is 10MB, which is too small for some tasks. You can change the memory constraint by adding the resource memory configuration to your cloud jobs templates. For example:

job "web" {

  ...

  task "web" {
    ...

    resource {
      memory = 100 // 100MB limit
    }
  }
}

Local and Windows jobs still use the raw_exec driver and are not affected by this change.

The genvid.toolbox.BastionAPI.set_cluster function has new arguments

  • is_static: If the cluster is static or not. A static cluster does not require terraform. The local cluster is a good example of a static cluster.
  • static_output: Terraform like output. The variable server_public_ips must be present for a static cluster to work.

The Genvid Unity prefab doesn’t have Camera in the video capture type list

The Camera capture type is now available by using the Texture capture type via the dropdown list. If you were using the Camera video capture type, change the selection to Texture from the dropdown list of capture type for the Genvid Video script.

Genvid Terraform Repository is now versioned

The Genvid modules are now versioned by prefixing them with SDK-X.Y.Z/. This will allow multiple versions of the SDK (as well as the clusters) to live more peacefully next to each other. If your scripts or other modules are referring to them, you need to prepend the version number now. You can use get_genvid_repository_name() to retrieve the actual repository name for this SDK.

UE4 Genvid Module

The Unreal Engine 4 Genvid Module in 1.13.0 is an extension of the major changes started in version 1.12.0. This version implements a full Client/Server architecture.

The new Genvid Module is still compatible with the previous version, but the code is now deprecated.

While you can update from 1.12.0 to 1.13.0 version without any changes, we recommend that you migrate your code to the new version.

How to upgrade to 1.13.0

Some explanation

We split GenvidStreamer into five different classes:

And added two new classes:

See also

See Preparing your game for more information about these classes.

Migration

  1. Create a Blueprint class for each feature you need.

    Caution

    GenvidSession and GenvidSessionManager are mandatory classes.

    See the Blueprint Diagram for more information.

  2. Parametrize each class you created.

    See GenvidVideo, GenvidAudio, GenvidStreams, GenvidEvents, and GenvidCommands for more information.

  3. Set your newly created video and audio classes in GenvidSession.

  4. Set your newly created GenvidSession in GenvidSessionManager.

  5. Instantiate and Initialize and Terminate the GenvidSessionManager.

At this stage, the video and audio are ready to stream.

See GenvidStreams, GenvidEvents, and GenvidCommands for more on declaring streams, events, and commands.

Client/Server

You’ll need to adapt your present code to the Unreal Engine 4 Genvid Client/Server architecture.

To do that, you split your code in two parts:

  • The client sends a Remote Procedure Call (RPC) to the server with authority. (PlayerController side)
  • The server sends an RPC to all the connected clients. (Multicast, GameState side)
  1. Create a Blueprint class based on APlayerController.

  2. Click Add Component and add your:

  3. Create a Blueprint class based on AGameState.

  4. Add a custom event in your GameState class for each event and command you created in your GenvidEvents and GenvidCommands.

  5. Ensure that the callbacks in GenvidEvents and GenvidCommands call the custom event created in the GameState class and not directly from the code.