※QAエンジニアとは
QAは 「Quality Assurance」の略で、品質保証の意。バグの有無等をチェックし、ゲームが製品クオリティーに達しているか検証などを行う
2020年9月に行われたゲーム制作者向けのカンファレンス『CEDEC2020』で、『龍が如くスタジオ』のQAエンジニアが発表した「全自動バグ取りシステム」が大きな話題になった。
『龍が如く』といえば、巨大歓楽街に生きる熱い男たちの生き様をドラマティックに描く大人のためのエンタテインメント作品。2005年の発売開始から15周年を迎えるセガの人気シリーズで、毎年のように新作タイトルがリリースされることでも知られている。
シナリオのスケールもゲームシステムもタイトルを追うごとに巨大になる中、『龍が如くスタジオ』ではQAエンジニア(※)の開発する「全自動でテストやデバッグを行うシステム」を使い、開発効率や品質の向上につなげているという。
※QAエンジニアとは
QAは 「Quality Assurance」の略で、品質保証の意。バグの有無等をチェックし、ゲームが製品クオリティーに達しているか検証などを行う
ゲーム業界の中でも最先端の取り組みだというが、このチームではどうやって自動化システムをゲーム開発に活用しているのか。なぜこうした開発体制が実現できたのか。担当する阪上直樹さん、粉川貴至さんに尋ねると、新時代のQAエンジニアの姿が見えてきた。
阪上:体制面から説明すると、『龍が如くスタジオ』には一般的な品質管理を担う手動のQAチームと、テストなどの自動化を担うQAチームがあり、僕は後者に所属しています。
このチームでは自動化にまつわるさまざまなこと、例えばオートプレイシステムやログ分析、クラッシュレポートの仕組み作りを担当していて、『CEDEC2020』で発表した「全自動バグ取りシステム」もそのうちの一つです。
「チーム」といっても今のところ自動化を専業で取り組んでいるのは僕だけで、粉川は社内横断的な技術サポートの部署に所属し、週2日ほど手伝ってくれています。
粉川:ゲーム会社の中でもかなり珍しいポジションだとは思います。というのも、『龍が如く』は、2005年の発売以降、1年ほどのスパンで新しいタイトルを出し続けている、ゲーム業界でも異例のシリーズです。ユーザーに少しでも早く新しいゲームを届けたいという思いが強く、昔から自動化や効率化に積極的なチームなんですよ。
阪上:元々『龍が如く4 伝説を継ぐもの』を開発していた頃までは、メインプログラマーが片手間で自動プレイテストの仕組みを作っていたんです。そしてそれが実際に、ゲームのクオリティーや開発効率のアップにつながってもいました。一方でシリーズを追うごとにゲームの規模も大きくなっていき、これを開発チームが担うのはあまりに負担が大きいということで、僕が自動化部分を引き取って、専業でやるようになったんです。
阪上:一般的なQAエンジニアが担当するような、テストとデバッグの作業を自動で行うことができます。
テストの部分では、オートプレイのシステムと、「どこでもリプレイシステム」というのがあって、前者はオートでシナリオやミニゲームを操作してバグを検出します。ランダムに動かすことができるため、ゲームの各モードが正常に起動するかどうかや、分かりやすい壁抜けを検出することができますね。
また「どこでもリプレイシステム」を使うと、一度手動でプレイした操作を記録して、何度も同じように再生することができるんですよ。ゲーム開発では、例えば「ある機能を付けたら干渉してシナリオクリアができなくなってしまった」といったことがよく起こりますが、こうした致命的なバグを見つけるのに役立ちます。他にも、見つけたバグの再現や修正確認を簡単に行うこともできます。
さらに「どこでもバグ報告」という機能もあり、これは開発エンジニアや手動のQAチームがバグを発見したら、ボタンを押すだけでRedmineのバグチケットが作れるという仕組みです。
ボタンを押すとウィンドウが立ち上がり、該当箇所のスクリーンショット、コードのエラー箇所、ビルド番号など必要な情報をセットにしてRedmineにアップロードしてくれるんです。
この作業を一つ一つ手作業でやる場合、スクリーンショットを添付し忘れたり、新人が入ってきた際に報告ルールを周知しなきゃいけなかったり、といった事が起こるのですが、こうした手間をぐっと軽減することができます。
粉川:ええ。やはり自動テストだけで全てのバグが拾いきれるわけではありませんから。「ここで逆走したらどうなのか」「プレイヤーが壁に少しめり込んでいる」など、トリッキーなものや細かい検証は自動ではできないため、最終的には手動のQAチームが必ずテストを行います。また自動テストの対応・運用リソースも無限ではありません。自動化した方がコストパフォーマンスがいいものもあれば、逆に人の手に任せた方がいいものもあります。「人手によるテストをサポートするツール」というのもその一つの答えですね。
さらに言えば、自動テストで検出したデータを基に、修正するかどうかを決めるのにも人の判断が必要です。例えばテストプレイを繰り返したところ、プレイヤーが同じところで何度も倒されていることが分かった。そういう場合、戦っていたのが雑魚敵だったらゲームバランスの調整をすべきかもしれないけれど、相手がボスだったら手応えを楽しめるように残しておくべきだ、とか。
阪上:開発終盤はバグの他にも、こうした「面白いかどうか」も品質のチェックポイントになります。そのあたりはやはりAIでは判断できないポイントなんですよね。
阪上:そうですね。ただ、自動化システムもゲームの面白さを高める上で必要なものだと思っています。というのも、ゲーム開発においては最後の1~2週間がゲームのクオリティーを高めるためにすごく重要なんですよ。ここであと一歩ストーリーに工夫を凝らしたり、バトルの演出に手を加えたり、ゲームバランスを調整したりすることでゲームの面白さがぐっと変わってくるわけです。
一方で、一般的な(手動の)QAテスターがテストを行うのはゲーム開発の終盤なんですよね。ここで致命的なバグが見つかってしまうと、大事な最後の1~2週間をバグ修正に費やさなければいけなくなる。しかも実装からバグ発見までにラグがあるため、なぜこのバグが出てきたのか、どうやって実装したのか記憶も曖昧だと修正が大変です。致命的なバグが直せなければ、最悪の場合発売遅延なんてこともあり得ます。
でも自動テストを用いれば、自分の書いたコードはその晩にはすぐ動かすことができるので、次の日会社に来たら「ああ、直さなきゃ」とアクションが取れて早いサイクルでバグを直すことができる。
すると手動のQAチームは、最終段階でプレイしたときに「ここがちょっとだけ操作しにくい」「こうした方が盛り上がる」とか、そういう意見を挙げることに比重を置くことができて、結果的にゲームの面白さを高めることにつながるわけです。
粉川:そうなんですよ。もちろん自動化したことによるメリットは他にも沢山あります。ただ、それによってどれぐらいコスト削減ができたとか、具体的に何が良くなったとかっていうのはちょっと分かりにくいんですよね。
以前私の尊敬する、自動化システムの開発ツールJenkinsの開発者、川口(耕介)さんが「自動化は複利」だと言っていたんです。すぐに効果が現れるわけじゃなく、ちょっとずついろんなところにそのメリットが現れて、積み上がって、結果的に大きな恩恵が得られるのだ、と。
阪上:数字で出せないところでいうと、以前ゲーム開発の人に「開発終盤フェーズの精神的ダメージがかなり減った」と言ってもらえました。
僕も元々プログラマーだったので分かるのですが、ゲームの終盤戦でスムーズにバグを直せなくなると、相当しんどいんですよ。さっさとバグを直したいのに、報告されてきたデータが足りない、画像がない、ちょっと何を言ってるのか分からない文章だ……。以前はそういうことが多発していたんです。でも、そういうイライラが解消されて、面白くするところにエネルギーを割けるようになった、と。
阪上:そうですね(笑)。みんなのMPが削られないように頑張る、というのが自分の仕事だと思っています。どこがバグるのかを探しにいかなくていいとか、直すために必要な情報がパッと揃っているとか。
阪上:開発とQAってよく分けられがちなのですが、僕の考えとしてはプロジェクト全員でゲームを作っているというイメージなので、いわゆるゲームの開発から離れたとは全く思っていないんです。今も開発チームの中にいて、隣でプログラマーが普通に仕事をしているっていう状況ですし。
開発チームの中にいるからこそ、プロジェクトのワークフローがどんなふうに回っているのかや、チームやエンジニアの特性なんかもよく見えます。困りごとがないか、どうしたら業務効率化を図れるかなどを考えたり、新しい技術や「ちょっとこんな機能を入れてみたいな」といったこともチャレンジできたりして、今の仕事はすごく楽しいです。
僕らの仕事によって、プロジェクトメンバーの工数を削減でき、先ほどもお伝えしたように彼らがゲームのクオリティー向上に専念できる環境をつくる。それって、一緒にゲームを作っているのと変わらないと思うんですよね。
粉川:私は今回登壇したCEDEC には参加側・開催側のどちらにも長年関わっていて、さまざまな企業の事例をよく見ているのですが、やっぱり自動化の分野においては『龍が如くスタジオ』が最も進んでいると言われますね。「どうやったらうまくやれるのか」と相談されることも多いですし、逆に「うまくいかなかった」という話もよく聞いてきました。
一方でうまく進み始めている会社もいくつかあって、共通項は、「開発チームの近くにQAエンジニアがいて、密なコミュニケーションが取れている」ということ。
QAサイドの人って、今まではゲーム開発の最後の最後にしか関わらなかった。でもそれではダメだ、というのはいろんなところで上がってきている話で。
早いうちからQAチームが開発に入っているとか、QAチームが開発中のゲームに手を出せなくても、開発の人に機能を入れてもらって自動化できるようにするとか。そういうのを少しずつやれている会社は、自動化の取り組みがうまく進んでいるように思います。
阪上:僕自身も、やはり「開発チームの中にいること」がすごく大事だと感じています。ちょっとウロウロしているだけで声を掛けられて相談されることが多いですし、見回っているだけでも自動化や効率化のアイデアが浮かんできますから。
阪上:CEDECの発表の反響で、そういった意見も少なからずあったんです。でも僕はそういう意図は全くなくて。どちらかというと、これまでお伝えしてきたように、自動化によって手動テストの方を支援しているといいますか。
最終段階でなるべくバグだけを追わなくてもいいように、なるべく現場調整に時間を割けるように、「面倒くさいところだけ」を自動化することを目的にしています。だから人間がやりたいフローにはタッチしないようにしているんです。
『龍が如く』シリーズだけに限りませんが、今後もハードウエアや世の中のニーズに合わせてゲームソフトのクオリティーもどんどん上げる必要があります。だからといって、そこへ人を増やしていけるかというと実際難しいですよね。
だからこそ面倒なところ、手間が掛かるところをどんどん自動化していきたい。それで、みんながクリエーティブなところに意識を集中してもらえたらいいなと。そんな気持ちで取り組んでいます。
取材・文/石川香苗子 撮影/赤松洋太 編集/河西ことみ(編集部)
NEW!
タグ