以前のバージョンからのアップグレード

あるバージョンから別のバージョンの Genvid SDK にアップグレードする際には、いくつかの手順があります。このページでは、最後のバージョンからバージョン 1.23.0 にアップデートするために必要な手順を説明します。SDK の以前のバージョンをアップグレードする場合は、 こちら で、ご使用のバージョンのための特別なアップグレード手順から始めてください。

一般的な更新方法

Genvid SDK のアップグレード

複数の依存関係により Python 環境が複雑化しているため、あるパッケージが他のパッケージと競合するケースに遭遇するかもしれません。解決策としては、異なるプロジェクト用の仮想環境を作成し、他のプロジェクトに影響を与えることなく依存関係をインストールできるようにすることです。ツールボックスのインストール時に競合が発生した場合や、より制限された環境で作業したい場合は、仮想環境を作成することをお勧めします。

新規 SDK をローカルにセットアップする方法

  1. 新規 SDK をインストールする。
  2. 新しい SDK から install-toolbox.py スクリプトを実行する。
  3. genvid-bastion reinstall --reconfigure -b mybastion -uml を実行してお使いの bastion をアップグレード。

配信ウェブサイトのアップデート

プロジェクトで弊社提供のサンプルのコードを使用する際に、サンプルで consul を使用してサービスを発見しやすくなりました。サンプルを再度ご確認いただき、必要に応じてプロジェクトを更新してください。URL が健全なサービスを指す可能性が高いため、サービスの URL を取得するには、catalog api ではなく consul health api を使用されることをおすすめします。

ゲームのアップデート

新機能を適用せずにゲームをアップデートするには、以前の SDK の古い genvid.dll を新しい SDK のものに差し替えます。古いプラグインと統合は、そのままで動作しますが、以下の例外があります。

注意

ご使用の Genvid SDK のバージョンのアップグレードの順序に常に省略することなく従ってください。例えば、バージョン 1.6.0 から 1.10.0 にアップグレードする場合、 まず、1.6.0 から 1.7.0 へのアップグレードから始めて各バージョンを進めていってください。

ご使用の特定バージョンに関しては、 アップグレード手順一覧 を参照してください。

Javascript API のアップグレード

Web サイトの Genvid JavaScript API もアップグレードしてください。

クラスタのアップグレード

以前のクラスタはそのまま残し、アップデート用に新たに作成することを推奨します。

新しいクラウドベースのクラスタを作成するには、一般的な指示に従ってください。

  1. 新しいバージョンにマッチする 新規 wingame AMI の設定
  2. 新規クラスタの作成

新しいローカルクラスタを作成するには、ローカルクラスタの初期化 セクションに記載されている一般的な指示に従ってください。

すべてのクラスタの差し替えが完了したら、モジュールセクション ページから古い SDK レポジトリを削除して構いません。

既存クラスタのアップデート

警告

クラスタをアップデートすることで、全てのインスタンスを置き換えたり、現在の設定を削除することができます。ライブクラスタのアップデートは行わないことをお勧めします。ライブクラスタのアップデートを行う場合、プランを適用する前に、変更内容をよく確認してください。

クラスタの構築に使用するモジュールの更新には、クラスタのインフラストラクチャにあるモジュールセクションの Reimport Module をクリックし、新しいバージョンのモジュールを選択してインポートします。最後に、Terraform セクションの適用をクリックします。

注釈

変更の中には、AWS の適用に時間がかかるものが存在します。特に、IAM の役割やポリシーなどがそれにあたり、作成しなおす際に、競合が発生する場合があります。Terraform プランを適用しなおすことで、問題は解決されます。

Genvid SDK サンプルのアップデート

プロジェクトと一緒に、それまでにインストールした Genvid SDK サンプルのアップデート を行ってください。

1.22.0 から 1.23.0 へのアップグレード

キューブサンプルの変更

チュートリアルサンプルは、 DirectX キューブサンプル に名前が変わりました。

DirectX サンプル、 Unity キューブサンプル、および Unreal Engine 4 キューブサンプル には、Web パーツが組み込まれていません。この関数は、新しい Web サンプル を想定しています。これまでは、それぞれのエンジンが同じフォルダに Web サイトが含まれていました。たとえば、チュートリアルでは、 /samples/tutorial/web でした。新しい Web サンプル はエンジンの Web サイトで、 /samples/cube/web になります。

新しいサンプルの DirectX キューブ、UE4 キューブ、Unity キューブ、Web サンプル、Twitch エクステンションは /samples/cube/ になります。Web サイトを稼働させるには、新しい Web サンプルを独立したサンプルとしてクラスタ上に構築してロードする必要があります。ここではその方法を説明します。

  1. /samples/cube/web ディレクトリに移動します。

  2. Web サイトを構築します。

    py web.py build
    
  3. Web サイトを読み込みます。

    py web.py load
    

Twitch エクステンション は、Twitch 以外でも使用できるようになりました。DirectX、Unity、Unreal のサンプルでも使用可能です。Twitch エクステンションのバックエンドとして機能するため、Web サンプルを同時に実行する必要があります。

UE4 と Unity 用のプラグインは /engine-integration/ というフォルダに入っています。Unity 用のファイル package.py/engine-integration/unity/ に存在するため、そこから使用しなければなりません。

UT4 サンプルの場所が /samples/ になりました。

エンジン統合

エンジン統合プラグインの場所を変更しました。 /engine-integration/ フォルダに格納されるようになりました。

/engine-integration/ue4/ フォルダには、Unreal Engine 4 プロジェクト用の他の便利なクラスやプラグインとともに、Genvid SDK のインストールに役立つスクリプトが含まれています。UE4 プロジェクトの準備、構築、ロードの方法は変更ありません。

/engine-integration/unity/ フォルダには、アセット パッケージとともに genvid.unitypackage アセット パッケージを生成するためのスクリプトが含まれています。プロジェクトの準備、ビルド、ロードを行う前に、プロジェクト用の Unity パッケージを作成する必要があります。

py package.py all

詳細は、エンジン統合 セクションを参照してください。

command サービスの名前を webgateway に変更

command サービスが更新され、 webgateway になりました。統合バックエンドのコードをチェックして、Consul のディスカバリクエリが command ではなく webgateway のサービスを探しにいくように変更してください。

webgateway secret が Vault の genvid/webgateway に配置されるようになりました。それに応じて HCL の設定を変更する必要があります。

Genvid サービスの Nomad テンプレートを変更した場合、シークレットを GENVID_COMMAND_SECRET ではなく GENVID_WEBGATEWAY_SECRET に渡した方が良いかもしれません。

既存のプロジェクトを変更したくない、または変更できない場合は、Consul キーの genvid/compatibility/legacy_commandtrue に設定することもできます。

Tick と Studio sample の変更

rootd プロセスに必要なメモリを増やし、デフォルトの internal_worker インスタンスタイプで利用可能なメモリの大部分を使用できるようになりました。Studio サンプルや Tick サンプルを使用している場合、単一のインスタンスを実行していると、タスクの一部が割り当てられない可能性があります。

一部のサービスが起動しない状況を避けるために、Tick サンプルを実行する際にクラスタに追加のインスタンスを追加することをお勧めします。方法については TICK Stack メトリクス および Genvid Studio サンプル の解説書を参照してください。

Terraform モジュールの変更内容

alb_ssl_clusteralb_ssl_cluster_vpc の名前を変更して、 basic_cluster の規定との整合性を高めました。

以前の名前 新しい名前
alb_ssl_cluster_vpc basic_cluster_alb_ssl
alb_ssl_cluster minimal_cluster_alb_ssl

Twitch 埋め込みプレイヤーと SSL サポート

Twitch 埋め込みプレイヤーを使用するには、SSL で保護されたウェブサイトが必要になりました。つまり、SSL が使用されていることが末尾で分かる名前 (_alb_ssl など) の SSL クラスタを使用する必要があります。

SSLモジュールを使用する場合は、 /samples/cube/web/web.pyloadEndpoint() メソッドを使用して、クラスタ構成で leaf エンドポイントとWeb エンドポイントをロードする必要があります。

    def loadEndpoint(self):
        leaf_endpoint = self.get_leaf_endpoint()
        web_endpoint = self.get_web_endpoint()
        config = {
            'version': '1.7.0',
            'config': {
                'twitch': {
                    'cloud': {
                        'endpoint': {
                            'leaf' : '',
                            'web' : ''
                        }
                    }
                }
            }
        }
        config['config']['twitch']['cloud']['endpoint']['leaf'] = leaf_endpoint
        config['config']['twitch']['cloud']['endpoint']['web'] = web_endpoint
        return config

Web サイトに埋め込まれた Twitch をストリーミングしたい場合は、 samples/streaming_services にある twitch.sample.hcl を読み込む必要があります。埋め込みができるように設定を変更しました。

config {
  twitch_embed {
    enabled = true
  }
} // end of config