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 Genvid Interface Plugin 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
Create a Blueprint class for each feature you need.
Caution
GenvidSession and GenvidSessionManager are mandatory classes.
See the Blueprint Diagram for more information.
Parametrize each class you created.
See GenvidVideo, GenvidAudio, GenvidStreams, GenvidEvents, and GenvidCommands for more information.
Set your newly created video and audio classes in GenvidSession.
Set your newly created GenvidSession in GenvidSessionManager.
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 Genvid Client/Server for Unreal Engine 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)
Create a Blueprint class based on
APlayerController
.Click Add Component and add your:
Create a Blueprint class based on
AGameState
.Add a custom event in your GameState class for each event and command you created in your GenvidEvents and GenvidCommands.
Ensure that the callbacks in GenvidEvents and GenvidCommands call the custom event created in the GameState class and not directly from the code.