1.6.0 から 1.7.0 へのアップグレード¶
このリリースで local.py
と cloud.py
を非推奨とし、新しいツールに変更しています。
- Bastion API : クラスタの管理と terraform スクリプトの実行を行う Web API
- genvid-bastion : ローカルの bastion とクラスタの開始に使用するコンソールアプリケーション
- genvid-clusters : クラスタの管理に使用するコンソールアプリケーション
- genvid-sdk : クラスタの設定に使用するコンソールアプリケーション
- directx.py : DirectX サンプルのサンプルスクリプト
- unity.py : unity サンプルのサンプルスクリプト
- ut4.py : ut4 サンプルのサンプルスクリプト
新しい構造体の動作をサンプルで確認することができます。それぞれのサンプルには、専用のスクリプトと設定ファイルがあります。 genvid.hcl
のコンテンツは、複数のファイルに分割して、設定フォルダ内に存在します。そのため、すべての設定が同じフォルダにあることになります。
プロジェクトを更新する¶
プロジェクトをアップグレードするには、まず基本スクリプトとして directx.py を使用します。このスクリプトを使用することで、更新作業を簡略化することができます。
初めに、作業フォルダに directx.py
をコピーして、 mygame.py
といった適当な名前に変更します。
プロジェクトを構築する¶
アプリケーションや Web サイトを構築するために、前のステップでコピーした mygame.py
スクリプトの build
と build_cloud
の関数を編集します。カスタマイズしたスクリプトがある場合は、この手順はスキップ可能です。
def build(self, targets: List[str]):
if "game" in targets:
self.pyrun(os.path.join(self.base_dir, "run.py"), "build")
if "web" in targets:
self.pyrun(os.path.join(self.base_dir, "web", "build.py"), "build")
def build_cloud(self, targets: List[str]):
if "game" in targets:
self.pyrun(os.path.join(self.base_dir, "run.py"), "all")
if "web" in targets:
self.pyrun(os.path.join(self.base_dir, "web", "build-docker.py"), "all")
py mygame.py build
を実行して、動作を確認します。
genvid.hcl を移動して、ファイルを編集する¶
今回の更新により、設定を複数のファイルに分割できるようになりました。ゲームと Web を分離させることができます。
genvid.hcl
をスクリプトに関連する設定フォルダに移動します。必要に応じて、このファイルを分割させることもできます。バージョン 1.7.0 に更新するために、 genvid.hcl
ファイルにいくつかの変更を行う必要があります。
version
番号を 1.7.0 に変更する。name
セクションを削除する (現在、 settings info セクションに含まれています)。ジョブの
depends_on
をdependencies
に変更する。event
セクションを削除する (現在、設定ディレクトリのevents.json
ファイルで処理を行っています)。ログは、さまざまな変更を行っています。
stdout
とlogfilename
は、fileName
という 1 つのフィールドに変更。logfilename
があれば、同じ値をfileName
に設定します。stdout
が True の場合、fileName
を 「stdout」 に設定します。False の場合は、fileName
を 「stderr」 に設定します。プロジェクトのビデオ
encode
(入出力) とinfo
は、このファイルに追加されています。settings { encode { input { width = 1280 height = 720 } output { width = 1280 height = 720 } } info { description = "Genvid Technologies Unity3D Sample" game = "unitySample" name = "unity sample" } }
script
セクションをすべて削除します。build コマンドは、Python スクリプトで直接処理できるようになっています。
プロジェクトで作成した mygame.py
スクリプト内の CONFIG_FILES 変数を編集します。スクリプトが読み込む設定ファイルと、読み込む順番を指定します。
CONFIG_FILES = [
dict(name="genvid", required=True), // The file you just moved
dict(name="stream", required=True),
dict(name="events", required=True),
]
"The configuration files to load in order. The order is important "
"as later files may override values from previous files."
config/stream.example.hcl
を編集して stream.hcl
に名前を変更するか、 stream.hcl
を直接作成します。ここに、設定とシークレットを記述していきます。
version = "1.7.0"
settings {
encode {
stream {
enable = true
addr = "a.rtmp.youtube.com/live2"
// YOU MUST CHANGE THE CHANNEL AND KEY VALUE
service = "youtube"
channel = ""
key = ""
}
}
}
secrets {
disco {
GENVID_DISCO_SECRET = "discosecret"
}
command {
GENVID_COMMAND_SECRET = "commandsecret"
}
}
Nomad テンプレート¶
テンプレートを templates/local
および templates/cloud
内に移動します。スクリプトは、この場所にテンプレートを探しに行きます。テンプレートファイルの名前が、ジョブ名と一致していることを確認してください。
イメージのアップロード¶
スクリプトからイメージを直接アップロードすることができます。クラウドにアップロードする IMAGES
のリストを編集します。
IMAGES = dict(game="my_game_dev_", web="my_web_dev_")
"The list of images to upload"
イベント定義を設定に移動する¶
config/events.json
を作成して編集します。 mr.json
ファイルの中身を game
要素にコピーします。
{
"version": "1.7.0",
"event": {
"game": {} // Copy mr.json contents inside the braces
}
}
オプション: 設定を複数のファイルに分割する¶
設定は複数のファイルに分割することができます。これは、Web サイトとゲームとで、別のチームが作業を行っている場合などに便利です。分割するには、別の設定ファイルを作成して、そのファイルに含める項目を移動させます。 genvid-sdk の load-config
コマンドも参照してください。