Amazon Web Services ブログ

Tag: Game

Amazon SageMaker RL を利用した Unity 上での強化学習エージェントの作成

Unityはゲーム業界をはじめ、映画や自動車業界など幅広い分野で利用されている仮想環境エンジンです。ユーザーはUnityで提供されるツールを通して、独自の物理法則、地形、キャラクターを作成することが可能です。Unity Machine Learning Agents Toolkit (ML-Agents)はオープンソースプロジェクトで、Unityで構築した仮想環境内で動作する強化学習エージェントを作成することが可能です。強化学習とは機械学習の一種であり、エージェントはある環境上の一連のアクションに対して受け取る総報酬を最大化するための方策を学習します。SageMakerにおける強化学習の取り組みについてはこちらのブログを参照ください。Unity ML-Agentsは強化学習エージェントの作成において広く使われているツールであり、作成された強化学習エージェントはレベルデザイン、バグ検出、チート検出など様々な用途で応用されています。より複雑な環境における強化学習エージェントの作成には、分散学習、ハイパーパラメータチューニングなどにおいて効率よくコンピューティングリソースを配置することが重要となります。このブログでは、SageMaker RLとUnity ML-Agentsを統合し、フルマネージドな環境で効率よくコンピューティングリソースを配置し強化学習エージェントを作成する方法について紹介します。 SageMaker RLを使う利点 Amazon SageMaker はフルマネージドサービスであり、機械学習モデルを迅速に構築、トレーニング、デバッグ、デプロイなどをするための様々な機能を提供しています。SageMaker RLはこのSageMaker上で動作し、ビルド済みのRL ツールキットを提供しています。SageMaker RLを用いることで、容易にRL環境を構築でき、TensorflowやPyTorchといったフレームワークを使用した強化学習が可能です。学習、推論ジョブはSageMakerによって管理されており、お客様は強化学習エージェントの作成に多くの時間を割くことができます。また、SageMaker RLは複数のサンプルノートブックを提供しており、どのように強化学習をロボティクス、オペレーションズ・リサーチ、金融に利用するのかなどを学ぶことが可能です。以下に紹介するソリューションもこのサンプルノートブックからすぐさま利用可能です。 SageMaker RL – Unity ML-Agents integrationの利用方法 今回利用するSageMaker RLの学習ジョブの構成は以下のようになっています。強化学習ツールとしてはRay-RLLibを使用しています。分散学習、アルゴリズム構築、ネットワーク構築、パラメータ設定などをRay-RLLib上で管理することで煩雑な作業を減らすことが可能です。Unity環境はOpenAI Gym環境としてラップすることでRay-RLLibからはUnity独自の仕様を意識することなく一般的な強化学習タスクとして扱えます。そして、学習を実行するリソースや設定についてはSageMakerで管理しています。 では、実際にこの構成で強化学習エージェントを作成する方法を順を追って説明します。 セットアップ はじめに、ノートブックの環境設定を行います。下記を実行することで、API実行用のIAMロール、S3バケットの設定やPythonライブラリのインポートなど環境設定を行うなうことができます。 import sagemaker import boto3 # set up the linkage and authentication to the S3 bucket sage_session = sagemaker.session.Session() s3_bucket = sage_session.default_bucket() s3_output_path = ‘s3://{}/’.format(s3_bucket) print(“S3 […]

Read More

AWSを使った Apocalypse Studio のクラウド移行

本ゲスト投稿では、Apocalypse Studio の創設者である Denis Dyack 氏にお話を伺います。Dyack 氏は、ゲーム開発に長く携わっており、「ケイン・ザ・バンパイア」、「エターナルダークネス 招かれた13人」、「メタルギアソリッド ザ・ツインスネークス」、「トゥー・ヒューマン」などのタイトルの開発に携わった経験があります。Dyack 氏はまた、コンピュータサイエンスの経歴を持ち、人工知能、ニューラルネットワーク、ユーザーインターフェイスの修士号を取得しています。 オンタリオ州ナイアガラに拠点を置く Apocalypse は、ゲームスタジオのスタートアップ企業です。クラウドファーストのアプローチを採用することで、ゲームのプレイ方法を変革することを目指しています。オンラインマルチプレイヤーエクスペリエンスを創造し、世界中のプレイヤーを繋げ、楽しませることを目指しています。 私はゲーム業界で 30 年以上にわたり、エターナルダークネス、メタルギアソリッド ザ・ツインスネークス、トゥー・ヒューマン など、従来のゲーム機向けタイトルに取り組んできました。その間、ゲーム業界と、ゲーム開発のために私たちが使用するテクノロジーは、劇的に変化しました。2018 年に Apocalypse Studio を創業したとき、当社は全く新しい、クラウドを見据えた視点が必要であることが分かっていました。 当社のスタジオと最初のタイトルである Deadhaus Sonata は、まさにクラウド上で構築されています。COVID-19 が広まりだした頃、当社は社内カスタムビルドサーバーを備えた従来のオフィススペースから、AWS で構築したクラウド上のスタジオに移行しました。それが非常にうまく行ったため、2020年7月中旬にオフィスを永久的に閉鎖しました。今では、従業員がリモートで無期限に快適に働けるようにサポートできるようになりました。   クラウドを理解する クラウドはゲームに多大な経済的影響を与えました。10年以上前に私は、クラウドの社会的・経済的価値はコモディティ化により従来のプレミアムビジネスモデルよりも高くなると提言してきました。 現在、free-to-play (F2P) オンラインゲームは、世界全体のゲーム収益の 86% を占めています。 クラウドファーストの企業になるために、当社は一から取り組む必要があり、自社のエンジンから始めました。当社はソーシャルメディアと深く統合された最高品質のゲームを作るため、クラウド向けのゲームを制作したいと考えていました。当社は、サポート、コスト、機能、長期的見通しについて、あらゆるエンジンを比較しました。当社の場合これらのカテゴリを組み合わせると、Amazon Lumberyard が、その他のすべてのエンジンを上回っていました。Amazon Lumberyard を選択したことで、当社のクラウド移行を推進し成功させるのに役立ったいくつかのメリットがありました。 Amazon Lumberyard を使うことが決定した後、当社はすぐに AWS Game Tech 内の複数のグループと関係を構築しました。これらのチームと、構築プロセス、手続き型生成、ビデオゲームの未来などについて熱心に議論しました。また、当時は現実離れしていると思われた、本番プロセス全体をクラウドに移行する可能性についても議論しました。   当社のクラウドへのジャーニーの推進 話を2020年3月まで進めます。当社はサンフランシスコで開催される Game Developers Conference (GDC) に向けて準備をしていました。当社は、丁度  Deadhaus Sonata のMemento […]

Read More

Perforce Helix Core を AWS 上に構築する (Part3)

イントロダクション 3回にわたるAWSでのPerforce構築シリーズもこれで最後になりました。 Part1ではAWS 上で Perforce Helix Core を構築することの利点と技術的ポイントを俯瞰しました。 前回のPart2では AWS CloudFormation を用いてPerforceサーバーを構築する方法を解説しました。 今回のPart3では、Part2の手順7、CloudFormationの設定において「Enable Replica」をYesにしてReplica Serverの構築を有効にした場合のReplica ServerのSetup手順を紹介します。 Part2の手順で、Master Serverのみの構築を希望した場合は、こちらの手順は必要ありません。 もちろん、もう一度前回の記事の手順を最初からやり直して、Replica構築を有効にして、本記事の手順を実行していただくこともできます。 さて、実際の Replica server の構築手順ですが、これはAWS特有というわけではなく、Perforceの通常の構築手順に従って手動でコマンドを実行して行くというものになります。 それでは実際に手順を見ていきましょう! 事前準備 こちらのPart2の手順を実行していることが前提になります。実行されていない方はまずは前回の記事の手順を実行し、その際に必ず「手順7」の「Enable Replica」をYesにして有効にします。 こちらを参考にして東京リージョンで任意の名前のS3バケットを用意しておいてください。S3バケットの名前は全世界で一意の名前にする必要があります。 例えば次のようなS3バケットの名称にすると他のバケット名との衝突を避けることができます。 (例) perforce-test-[自分の名前]-[日付] など Replica Serverをセットアップする Replicaの動作を定義するには、Perforceのコマンドである“p4 configure set”コマンドを使用して、Master serverのdb.configファイルに構成情報を入力する必要があります。Replicaを作るにはまず最初にMaster serverを設定します。Master serverの設定が、後でReplica serverに複製されます。 Mater Server側で設定を行う まずは、Master Serverにsshログインします。下記では適宜、自分のssh keyとEIPアドレスに置き換えてください。 $ ssh -i ~/.ssh/general-key.pem p4admin@18.180.250.162 前回Part2でp4adminユーザーをサーバー側に作成していない場合は作成します。作成済みの場合はスキップして次に進みます。下記のコマンドを実行するとviが起動しますので内容を確認して、「:wq」をタイプして保存します。 [p4admin@master ~]$ p4 […]

Read More

Perforce Helix Core を AWS 上に構築する (Part2)

イントロダクション 前回の記事では AWS 上で Perforce Helix Core を構築することの利点を説明し、実際の構成パターンと構築における注意点を解説しました。 本記事では、実際に Perforce Helix Core をAWS に構築する手順をご紹介します。手順といっても AWS CloudFormation テンプレートを用意しておりますので、大部分は自動化されています。AWS CloudFormation では、設定をjsonやyamlでファイルに記述するだけでAWS のリソースのプロビジョニングを自動化することができます。 今回作成するサーバー構成の全体像は下図のようになります。AWS Cloudと書かれた中にあるサーバ群を設定します。デフォルトは Perforce の Master Server だけを構築する設定になっていますが、手順の中で Read only の Replica server を設定することも可能です。今回はインターネットから直接アクセスできるPublic Subnetにサーバーを配置していますが、Private Subnetにサーバーを配置して、VPNや AWS Direct Connect を介してオフィスやデータセンタのみからアクセスできる閉域にすることも可能です。 本記事では、まずは Perforce の Master server を構築する手順を見ていきます。次の Part3 の記事で、Replica server の構築手順を紹介します。Replica server の設定では、いくつか手動でコマンドを実行していただく必要があります。 なお、今回構築する Perforce Server への接続には […]

Read More

Perforce Helix Core を AWS 上に構築する (Part1)

みなさんお元気ですか? 今年からゲーム開発のコンサルティングパートナーや ISV といったテクノロジーバートナーと AWS との連携強化を担当している AWS ソリューションアーキテクトの保里 善太です。 ところでみなさん、Perforce Helix Core はお使いですか? Perforce は高速な同期操作を特徴とする商用のバージョン管理システムであり、主にゲーム業界等の開発現場で多く利用されています(導入企業)。 多くの現場では Perforce はオンプレミスのマシンで稼働していますが、この記事では AWS 上で Perforce を構築することの利点を解説し、実際の構成案と構築方法を紹介します。構築にあたっては AWS CloudFormation テンプレートも用意しています。Perforce の導入にあたっては無料の Perforce Helix Core Studio Pack for AWS というプログラムも用意されてます。 3回に分けてシリーズ化してお送りします。   Perforce Helix Core とは? バージョン管理システム (VCS) の代表的なものとして、Git、Subversion (SVN)、CVS、Mercurial、そして Perforce などがありますが、それぞれには特徴的な性質があります。バージョン管理システムには、大きく分けてソースコード等を中央集権的にマスターサーバで管理する集中型 (Subversion、CVSなど) と各開発者のローカル PC にソースコードを保存し必要な時に共有する分散型 (Git、Mercurialなど) とに大きく分かれます。この中で Perforce Helix Core […]

Read More