【CEDEC 2019】日本マイクロソフトが明かす開発・運用のプロセスを改善し、迅速かつ効率的な開発を容易に構築するクラウド活用術


9月4日~6日にかけて、パシフィコ横浜で開催中のCEDEC 2019。その初日に行われたセッションの中から、「脱人力!脱ブラックボックス! 気軽にビルドとデプロイし、開発を可視化/効率化するクラウド活用術」の模様をお届けする。

アプリ開発において迅速なサービスの開発・ビルド・デプロイの役割は重要で、これらを実現するためには各種プロセスの自動化も重要となる。本講演では、『マインクラフト』の事例を交え、効率的なアセット管理やビルド、運用の自動化や可視化もできる環境の実現方法が紹介された。
 

■Azure DevOpsを採用した『マインクラフト』のビルド・デプロイ効率開発


まず登壇したのは、日本マイクロソフトの梅津寛子氏(ゲーム&エンターテイメント営業本部 インダストリーテクノロジーストラテジスト)。



マイクロソフトのゲームと聞かれると、『HALO』『Gears of War』『マインクラフト』などXboxを連想する人が多いと思うが、「それら巨大なタイトルをクラウドの活用で開発、運用し、またトリプルAクラスのスタジオと共同でゲームを開発することによって、色々な事を学んできた」と梅津氏。

そうした経験からゲームの要件を満たす新しいクラウドサービスを数多く構築してきたという背景が同社にはあるという。

現在のマイクロソフトのゲーム業界に対するビジョンについて、梅津氏は「今日、私達は誰でもインターネットに接続でき、どんな端末からでもゲームにアクセスできる。それを実現するためにはゲームのデバイスを超えたコンソール規模のゲームを開発することが必要」と説明。

約76億人の世界人口、内40億人がインターネットユーザーであり、20憶人がゲーマー。その数はどんどん増えてきていると言われている。

最新の調査では、2019年のゲーム収益は1500億ドルを超えると予測されているそうだ。

モバイルゲームはこの数字の主な推移の要因であり続け、競争の激しくなる没入型のモバイルゲームやスマホユーザーの増加、そしてハードウェアの向上といったものが急激に増え続けていると言われる要因ともなっている。

そうした中で、世界規模のゲームユーザーに対してアプローチしていくことが必要になってきており、梅津氏は「マイクロソフトは成長し続けるゲーム業界に向け、ユーザーが望むゲームを、ユーザーが望むデバイス上でプレイできる環境を提供する」ことをミッションとし、「この中には、作りたいゲームを、遊びたいユーザーのために、作りたいデバイス上で自由に作れる、といった形でゲーム開発者に対してのメッセージも含まれている」と語った。

それを実現させるため、Content、Community、Cloudという3つのCに対して対応していきたいと考えている。



Contentは従来型のパッケージゲーム、Communityは従来から製品に対して遊んでいるコミュニティ、オンライン、ソーシャルサービスに対してアプローチするという意味でのゲーム、そしてCloudはゲームに対して色々な人達に対してアプローチしていくという所でのクラウドの活用といったところをコンセプトとしているという。

「それらを利用してもらい、簡単にアクセスできるような環境を私達から提供したい。その考えを基にマイクロソフトが進めているのがMicrosoft Game Stack」と梅津氏。

今年のGDCで発表されたMicrosoft Game Stackは、Azure、PlayFab、DirectX、Visual Studio等のゲーム開発のプラットフォームやツール、サービスなどを、開発者が簡単に見つけて利用できるようにするためにブランディングしてまとめたもの。

Azureはコンピューティングやストレージ等ビルドのサービスに使える形になっており、クラウドネイティブなサービスを提供するにあたって堅牢なシステム、維持可能な高いクラウドのプラットフォームを使ってもらえる形として紹介している。


▲Game Stackは、作成からリリース、運営といったフェーズに合わせたものをツールごとにまとめ、全方位的にゲームに携わる人たちのサポートをしていきたいという想いが現れたシステムと言える。

こうしたシステムを提供している中で、梅津氏は「今年のGDCで『Magic the Gathering Arena』のシステムがAzureで動いていること発表しました。また、韓国の『黒い砂漠モバイル』や、E3で発表となった北米版『PSO2』もAzureを利用することが決まっている」と、最近の事例を紹介。

その他『マインクラフト』『ギアーズ・オブ・ウォー』『レインボーシックス シージ』なども、「これらサービスを利用し、フィードバックを受けながらAzureは進化し続けている」(梅津)と語った。

ここから梅津氏は、クリエイトのフェーズについて『マインクラフト』も実践しているビルド・デプロイ効率開発術について解説した。

CEDEC 2019では、クラウドに限らず開発の効率化に関するセッションが多かったが、梅津氏も「やはり開発に関する改善、効率化のニーズは非常に増えている」と感じたそうだ。

そういった中で当たり前だが、「最初にクラウドの活用を検討する際に、目的や手段、それによって得られる結果を明確化する必要があると思う」と梅津氏。

クラウドを扱ったゲーム開発の環境を構築するにあたり、実現できること、または考えなくてはいけない事が3点あるという。

まず、"より早い開発"。ゲーム市場のスピード感が早まる中、開発期間の長期化によるユーザーニーズとの乖離、ゲームのアップデートの頻度やクオリティの低下によるユーザー離れなどを防ぐために、効率良く開発テストを行える環境は必要になる。

次に、"場所を問わない開発"。自社だけで開発を行うよりも、開発会社と協力し、複数の開発拠点、開発者がいつでも好きな所で開発できる環境作りは、海外展開するゲームの増加や、開発者の働き方改革という観点からも求められる。

常にフェイスtoフェイスで話し合いをしなければならない開発者同士が、いかにコミュニケーションをとり、どう開発を進めていくかというのはとても重要という。

そして、"セキュリティを担保した開発"。ゲーム開発の資産(プログラム、絵素材、サウンド等)は会社にとって大切な物。これらをクオリティ高く作るにあたって、どうしても容量や数が増え続けていく。

そうした中で、場所を問わない形で開発を進めるには、ネットワークの制限、適切なアクセス制限といったセキュリティ面は必ず検討しなければならない。



そういった中でうまくクラウドを活用し、ゲーム開発に関するこれら課題をクリアした事例として梅津氏は『マインクラフト』について触れた。

『マインクラフト』と言えばモバイル、コンソール、VR、PCなど様々なプラットフォームで展開し、バージョンも多い。梅津氏は「そういったものを合わせたビルドを作成しており、昨年末の時点で毎回異なる86のビルドを作成している」と紹介。

このビルド作成にあたり、ソース管理としてGitHub、ビルドやテストでAzure DevOpsのPipelinesで30種類ものビルドトリガーを管理している状態だという。

また、Visual Studio App Centerを使ってiOS、Androidのモバイル向けのテストを実施。クラッシュレポートを取得することでデバックに役立てている。

Azure側で使っているビルドマシンに関してはWindows、Linux、Mac合わせて約300台管理。これらを駆使して、毎日約3000回のビルド、700回のテストを実行することで、クオリティの高さを保ちゲームを提供。

その結果、「おかげさまで今年5月頃に総売上本数が1億7600万本を突破しました」(梅津)と、多くのユーザーが楽しんでいるとのこと。



今回は『マインクラフト』の開発事例だったが、各会社によって開発における工数、工程、問題点は様々。一口にクラウドの活用と言っても、様々な出来事や事情から中々難しいという話もある。

ただ、そうした状況でも「色々なツールを組み合わせることでクラウドを活用していただき、より良い環境を作るお手伝いをしていきたいと私達は思っています」と梅津氏。

組織における属人化、チーム間のオーバーヘッド、品質の向上など様々な課題に対し、どのような方法をとって価値を高めていくか? その中の方法の1つとして「クラウド化があるのではないかと思っている」と梅津氏。「そういった形の中で、ベストなチョイスをして、より良いゲームを作っていただきたいです」とメッセージを送った。


 

■KONAMIがAzure DevOpsの利用を検討、採用を決めた理由


今回のセッションでは、課題解決においてマイクロソフトのソリューションを選択したという、コナミデジタルエンタテインメント(以下、KONAMI)から、制作支援本部制作支援部 上席主査の矢木一匡氏がゲストとして登壇した。


▲コナミデジタルエンタテインメントの矢木一匡氏。

と、その前に、スクリーンにKONAMIでシステムを担当する正延氏のビデオが上映。

ビデオの中では、「今後、KONAMIが世界に向けてエンターテインメントを発信していくための次世代の開発・制作拠点として、全12階建てのビルを銀座に構えること」や、「開発環境を全てクラウドに置くことで今まで色々とあった問題点を解決しようと考えている」ことなど、今回KONAMIが、マイクロソフトのクラウドを利用することになった経緯が語られていた。


▲「1社でもやりきれないし、クラウドを自分たちでやりたいと思ってもできない。そうなるとマイクロソフトさんの手を借りるしかない。これをキッカケに共にやっていく、そんな関係が気付けたら良い」と正延氏。

まず矢木氏は、ビデオでも触れられた次世代の開発・制作拠点について、「"コナミクリエイティブセンター銀座"という新しい開発拠点が今年の秋~冬にかけて立ち上がります」と紹介。

銀座に誕生するという、こちらの次世代の開発・制作拠点は、全12階建てのビルで4階から上が制作拠点、1~3階はeスポーツの拠点として、ストアや配信スタジオになるとのこと。



矢木氏は、新たな開発拠点が立ち上がるこの機会にしかできないことがあると、何を一から設計し直せる部分として、ゲーム制作の効率を大きく上げられるようなことができないか考えたという。

結論としては「クラウドの利用、特に今回はAzure DevOpsの利用を始めることにした」(矢木)。

何故そのような判断になったのか? 矢木氏によると、今までの開発環境はオンプレミスで制作環境向けのサーバー部分を運営してきたそうだが、コンシューマゲームが4K化8K化し、モバイルゲームもリッチ化してきたことにより、アセットプールの巨大化に悩まされたという。

また、次世代機の制作環境ではインターネットに柔軟につないで色々なサービスを利用しなければ「開発自体がおぼつかなくなってくる」と八木氏。

さらに1社だけではゲーム開発できない状況になっている中で、外部協力会社とどのように安全にアセットプールを共有していくか、アセットプールにある営業秘密データをどうやって守るかということも考えないといけなかった。



そこでクラウドの利用を検討し始めたという矢木氏。

事業所内のオンプレミスサーバーはキャッシュ的に、マスターデータやリポジトリはクラウドにおいて、オンプレミスサーバーの負担を少なくする。

また、クラウド上の制作データのアセット管理システムに営業秘密のデータの置き場所として役割を持たせる。「これをやればうまく解決できるのではないかと、だんだん思うようになった」という。

しかし、クラウドは非常に便利な反面、会社の大切なデータをそこに置いて安全なのかという懸念点があり、それらの解決や経営層への説明も必要となってくる。

また、「せっかくクラウドにデータを置くなら、他にもクラウドならではの機能を利用して、より良い環境にできないものか検討した」と矢木氏。



まず今の開発環境をそのままクラウド利用するため、アセットプールはPerforceとGitを中心に考えた。Perforceはクラウドに直接利用するのではなく、事業所内にキャッシュ的なサーバーを置くことで可能性を検討。

その他コミュニケーションツール、進捗管理ツール、ウェブドキュメントの置き場所なども使っていき、将来的には外部との共有も視野に入れた。



一方で、「会社の大切なデータなので、外部から簡単にアクセスできるのはNG。それどころか、ローカルな環境にしなさい、という大きな要件が上がってきた」と矢木氏。つまり、インターネットを経由しないで会社の中からクラウドにアクセスするという。

「本当にそういうことができるのか? ローカルアドレスで構築しつつ、アセットプールなど外部協力会社と共有できるような仕組みは、ニーズに反していてなかなか難しい」と思いつつ、矢木氏は各所に相談しつつ構成を考えた。

その中で、マイクロソフトから一つの提案があったそうだ。

それが、「ローカルアドレスのAzure 仮想マシンでPerforceのサーバーを構築し、GitはAzure DevOps上、もしくはAzure仮想マシンのGitHubを使う。そしてコミュニケーションツールなどはAzure DevOpsのものを使う」というもの。

まずマイクロソフトのクラウドとExpressRouteというもので繋ぐ。そしてAzure 仮想マシンが稼働するネットワークへはプライベートピアリングという形でローカルアドレスのまま線(水色)を伸ばす。

一方で、Azure DevOpsへはグローバルなアドレス上にあり、「ここが問題になる」と矢木氏。ただ、マイクロソフトピアリングで繋いでいくと、マイクロソフトピアリングは外、いわゆるインターネットを経由せずにマイクロソフトのネットワークの中だけを通ってAzure DevOpsに繋がるため、「これで難しい条件を満たせそうで、光が見えてきた」(矢木)と説明した。

制作現場で実際に使っているツールとの親和性を考え、最終的にマイクロソフトのAzure DevOpsを選択することになったそうだ。



これによりクラウド部分の概略が決まってきた。Azure DevOpsのAzure ADで認証やリポジトリの管理、ドキュメントの管理を行い、Azure 仮想マシン上にアセット管理のマスタサーバーを置く。

ローカルの所にキャッシュサーバーを置き、早いアクセスが必要なものはここにアクセス。「ネットワーク的にはここでIIJさんに頼んでIIJ NOC、ネットワークコネクティングセンターという所に事業所と専用線で繋ぎ、そこからマイクロソフトのクラウドに繋いでいくようにした」(矢木)。

IIJ NOCを間に挟んだのは、今後外部協力会社や他拠点を繋いでいく際のハブにするという意味合いがあるそうだ。

これでネットワークの安全性に関しては、Azure 仮想マシンまではローカルで繋がり、Azure DevOpsへはインターネットを経由せずアクセスさせる仕組み(マイクロソフトピアリング)を利用することで確保できるようになった。

その他、セキュリティ面でFirewallを設定して制御と干渉できるようにしているとのこと。



「将来的にはアセットの更新からゲームサーバーのデプロイやビルド、デバックまで、全部Azure DevOps上で色々できるということを見据えて、この設計であれば実現できるのではないか」と矢木氏。

さらにはクラウド上で開発素材等を自動分類できないかなとか色々考えているそうだ。

制作環境が面白いゲームを作れるように、制作しやすい環境を提供する、ということをチームの命題に掲げる矢木氏。

「クラウドサービスは容易にスケールすることができますし、新しい機能というのを気軽に試せるというメリットがある。開発環境が大きくなって小回りが利かなくなる部分はクラウドを利用することで緩和できるのではないか」と考える。

また、環境の構築にはネットワークの構築が、やや複雑化し開発全体の効率がネットワークのパフォーマンスに左右されやすい状況や、クラウドの利用量が予測しにくいという点を現在残っている課題とし、「今後の利用を考えていく上で、クリアしていかなければならない」(矢木)と口にした。

最後に矢木氏は、「いずれにせよ、クラウドの利用で面白い事が色々できそうなので、マイクロソフトさんには利用したくなるようなクラウドサービスをご提供いただき、制作環境の構築にご協力いただければと思っています」とコメントした。
 

■UnityのCI Buildのデモンストレーション


最後に登壇したのは、日本マイクロソフトの廣瀬一海氏(クラウド&ソリューション事業本部 インテリジェントクラウド統括本部 テクノロジーソリューションプロフェッショナル)。



まず廣瀬氏は、前出の『マインクラフト』のビルド環境のスライドにあったGithub、Visual Studio Team Services(現Azure DevOps)、そして今回デモンストレーションするBuild agent poolについて触れた。

Build agent poolは、「ビルドのサーバーなりをその場でAzureから用意して、使った秒の間だけ課金する。Unreal EngineやUnityをインストールするなど環境のセットアップが可能なので、予め設定した環境にビルドエージェントを入れたら"後はビルドやっておいて"ということができる」という。

GitHubからVisual Studio Team Servicesを経由して、Build agent  poolへ。さらにそこからApp Centerで、主にモバイル向けのアプリの自動テストや起動テストを行い、クラッシュレポートを取得することができるという。廣瀬氏は「せっかく作ったゲームなのにダウンロードして起動したら落ちてしまい、ストアに酷評される。そういう事態を回避できるように自動的にクラッシュレポートを集約、解析する機能があり、すぐに修正点などに気づける」と説明した。

次に廣瀬氏は、Azure DevOpsでどんなことができるのかを、6つのツール群から紹介。



その中で、ビルドの自動化を行えるのがAzure pipelines。ソースコードを置いてコミットしたら、その都度ビルドしてくれるという。

「Unity、Unreal Engineでもそうですが、アセットの規模が大きくなればなる程、辛抱強くビルドを待つと、いうことがあると思いますが、それならソースコードが修正される度にビルドすれば良いのではないか」と廣瀬氏。

梅津氏の話で『マインクラフト』では日に約3000回のビルドが行われているとあったが、ワールドワイドで3000回程プログラムの修正が行われていると思いますが、その回数分、都度ビルドしていることになる。

「例えば、うっかり修正を間違えたとか、実はプログラムが動かない状態でコミットしてしまったという事があると当然ビルドが通らなくて、そういう時に限ってリリースを出さないといけなくて慌てることもあると思います。そういう事があっても、全てのビルドの記録が残っているし、1つ前の成功したビルドが残っているし、ビルドが終わった状態であるので、落ち着いてリリースに対応できます」(廣瀬)

その他、開発チーム全体で作業を計画、追跡、ディスカッションする為のAzure boardsや、使い慣れたGitHubの操作で普段使っているOSSリポジトリから企業向けまでリポジトリを運用できるGitHub Enterpriseなど、それぞれの特徴を紹介していった。

ちなみに「実はGitHub EnterpriseとAzure boards、Azure pipelinesは接続することができる」とのこと。

続いて廣瀬氏は、Azure DevOpsがどんな言語でも、どんなプラットフォームへも対応可能と紹介。



「開発製品なので開発したものはどこにだって、皆様が作ったものに展開できないといけない。よってAzureでもAmazon Web Servicesでも、Google Cloud Platformでも、Docker Imageをビルドするパイプラインを作るなど、どこに配るもOKです」と廣瀬氏。

例えばiOSのアプリなどは、Azure pipelinesとビルドエージェントを使う事でMacでもビルドできるとのこと。開発者が自分の好きなものを好きに組み合わせて好きに作ろう、というのがAzure DevOpsのコンセプトのようだ。

ちなみにMacでビルドできるという点について、「簡単に言えばMacが自宅にあって、その中にエージェントをインストールすると、Azure pipelinesからリモートコントロールできる」という。

そして「自動的にバッチビルドして、バッチビルドが終わったらApp Centerに登録。そこで自動テスト、UIテストを通した後に、最後はストアまで全部ディストリビュートして、テストユーザーの募集できる」とのことだ。

そのApp Centerについて、いくつかのツールがあり通常のiOS、Androidのアプリであればそれらは全て使えるそうだ。



「特にオススメしたいのが、HockeyApp」と廣瀬氏。これはクラッシュした際にクラッシュレポーティングしてくれるもの。

他にも、1000台までのリアルデバイスをリモートコントロールし、その中にアプリケーションを送り込んで起動、動作チェックできてクラッシュしたらスクショを取ってくれるTest Cloudや、ビルドが完了しAPKができたら各アプリストアに配信するように登録できるCoodePushなどを紹介。

3000回ビルドを実行し、リリース時にAzure pipelinesに流せば自動でマーケットプレイスまでいくという工程ができるという。

まとめとして廣瀬氏は、「アプリをクラウドでビルドして、自動テストを行い、テストユーザーにメールで配布、各ストアに配布するという事をやってくれます。もう1つ、何度か出てきているPlayFabは、ユーザーの動向であったりセッションだったり、ゲームそのものの分析、ロギングができます。しかも、ため込んだデータをそのままAzureと連携させて、1年間のユーザーの動向分析も可能。リアルタイムのアナリティクスで、いままで日次、月次で解析していたものをその場の解析し、その場の状況を見ながらその場で修正していける」とコメントした。

そして最後にUnityのCI Buildのデモンストレーションを披露した。



▲廣瀬氏は開発環境について、手元のマシンではなくクラウド上に置いている。


▲こちらはAzure DevOps Labというサービス。チーム内で開発者それぞれに4コア、8コアまで、GPUは10個までという割り当てを行い、開発環境のイメージを作って配ることができる。






▲今回は、手元の環境にコードリポジトリがあり、そのリポジトリに廣瀬氏がプログラムをプッシュするとビルドが始まる、という流れで行われた。


デモンストレーションを終えた廣瀬氏は、「今回は環境が間に合わなかったけど、基本は変わらない」と、UE4+IncrediBuild+Azure DevOpsの組み合わせについても触れ、「IncrediBuildを使ってUnreal Engineのプロジェクトを複数台同時に分散ビルドし、ビルドそのものの時間を早める。ビルドが終わったら出来上がっているのでテスト流したりデプロイメントしたり。あと、予めUnreal Engineのプロジェクトの中にPlayFabを入れておくことによってリアルタイムにモニタリングができる」と紹介。

そして、「プロダクトをリリースした後も状況を掴みながら調整したり、逆に問題点を把握したりという形になるので、バックログがやってくる。それをまたAzure boardsで管理、調整して修正したものをコミットすると、またビルドというサイクルになってくる」とした。



▲なお同社はPlayFabに関する話をUniteで披露した。

最後に廣瀬氏は目指すべきゲーム開発の未来について、「クラウドというと、サーバーとしての使い方が圧倒的でしたが、今からのゲーム開発は、クラウドのサービスを積極的に活用して、レンダリング時間を短くしたり開発の手間を削減したり、共同で開発できるようにできたり、リアルタイムで分析するようにできるなど、個別に似たようなサービスは様々なクラウドで段々提供されてきていますが、その中でAzureの良いところは、これらを一気通貫、かつセキュアにしっかりと提供できるところかなと思っています。

今回お見せしたようにビルドのパイプラインからテストなど、そういった今まで細々やっていた手作業の手間にとらわれずに、どんどん自動化して、クリエイトすること、ゲームを作ることが目的なので、ゲームを作ることに集中できる環境を、クラウドを活用して進めていただきたいです。将来的にゲーム企業さんとご一緒できる関係が築けたらと思っています」とメッセージを送った。
 

■展示コーナーにMicrosoft Azureブースも出展!




CEDEC 2019期間中、会場1FにMicrosoft Azureブースも出展されていた。こちらでは、ゲームのデベロッパー向けサービスを集めた"Game Stack"のブースとなっており、Microsoft Azure、Azure DevOps、Visual Studio、GitHub、PlayFabなどの自社製品を始めとして、IncrediBuild、モノビットEngineなどAzureでの開発に相性の良いパートナーの製品、サービスなども紹介された。



最後に、会場で日本マイクロソフトのゲーム&エンターテイメント営業本部長の米倉規通氏から、CEDEC 2019に参加した背景についてコメントをいただいた。

日本マイクロソフト
ゲーム&エンターテイメント営業本部長
米倉規通氏


「7月からゲーム事業を専門で行う組織が新設され、今、会社が一丸となってゲームビジネスに取り組ませてもらっています。毎年CEDECには参加させていただいておりますが、今年は非常に手応えを感じてきております。Azureを中心としたマイクロソフトの技術・サービスで、ゲーム業界を盛り上げていきたいと思っています。業界の皆様、よろしくお願いします!!」




[関連記事]
【インタビュー】「Microsoft Azure」で実現するクラウドを活用したよりクリエイティブなゲームの開発環境とは…その可能性と未来を日本マイクロソフトの担当者に訊く


 
株式会社コナミデジタルエンタテインメント
https://www.konami.com/games/corporate/ja/

会社情報

会社名
株式会社コナミデジタルエンタテインメント
設立
2006年3月
代表者
代表取締役会長 東尾 公彦/代表取締役社長 早川 英樹
決算期
3月
直近業績
売上高1940億1100万円、営業利益336億4700万円、経常利益348億9300万円、最終利益278億2800万円(2023年3月期)
企業データを見る
マイクロソフト

会社情報

会社名
マイクロソフト
企業データを見る