ゲームにとって、バグは、お客様の快適なゲーム体験を阻害するとても厄介な存在です。ですが、開発していくうえでバグはどうしても発生するもので、製品の完成に向けて可能な限りなくしていく必要があります。『リングフィット アドベンチャー』では「処理落ち」(※)のバグは特に厄介で、もし処理落ちが発生すると、お客様の身体の動きとゲームの動きにズレが生じて、ゲームとしては成立しなくなってしまいます。そのため、私は、お客様が快適にゲームを遊べるように、品質保証を意味するQA(Quality Assurance)エンジニアの役割を担い、『リングフィット アドベンチャー』の開発に関わることになりました。
※処理落ち・・・画面の更新時にゲーム内の計算が完了しておらず、表示がカクついたり遅れたりする症状
処理落ちのバグを直すために、まず、どういう時に処理落ちが起きているのかを調べることから始めました。『リングフィット アドベンチャー』は、同じコースでも、ゲームの進行状況で起こる天候や配置物の変化によって、処理落ちの発生状況も異なります。すべての組み合わせを考え、人の目でチェックしていては大変です。そこで、私は自動で各コースでの処理負荷を調べるためのシステムを実装しました。
『リングフィット アドベンチャー』は、プレイヤーがフィットネスをすることにより、ステージ上のコースを前に進んでいくゲームです。この自動テストでは、コース上に適当な間隔で計測ポイントを設け、プレイヤーを各計測ポイントにワープさせ、その場所のCPUとGPUの負荷の度合いを計測したり、スクリーンショットを撮影するというものです。これにより、どの条件で処理落ちが発生するのかを把握することができるようになりました。
また、このシステムを毎日実行させることで、新たな処理落ちが発生したことにいち早く気づけるようになりました。また、最適化を行った際にどの程度改善したのか把握したり、処理落ちに至るまで徐々に負荷が増えていったのか、それとも急に増えたのかといった推移を調べたりすることもできるようになりました。調べた結果をWeb上でグラフとして表示する仕組みも、チームの先輩と連携しながら実現しています。人に例えると、毎日体重や血圧等を測って記録し、日々の健康状態を把握したうえで、改善を繰り返すことで健康体を目指すイメージです。
処理落ち以外のバグについては、デバッグやモニターを主に行う任天堂グループのマリオクラブ株式会社と協働して、バグ対策をとることにしました。『リングフィット アドベンチャー』は、RPGとフィットネスが融合した新機軸のゲームということもあり、開発中の試行錯誤によってバグが多く発生してしまいました。また、マリオクラブ株式会社のテスターさんが作業するうえで、どの仕様が確定済みで、どの仕様がまだ調整中なのかが分からないとチェックが進めにくいという問題もありました。
そこで私は、テスターさん側との窓口スタッフとして、彼らと密にコミュニケーションを取ることで、この困難を乗り越えることにしました。何かあればチャットでも連絡を取りますが、同じ建物で働いていたため、なるべくテスターさんの席に足を運び、困っていることを解決したり、開発側の情報を伝えたりすることで、彼らの仕事がスムーズに進められるようにしました。また、必要に応じてプログラマーのミーティングにも同席してもらったり、ゲーム内の各要素の仕様を決めているプランナーに引き合わせたり、とテスターさんの作業効率を最大限引き出せるように心がけました。
このように、プログラマーの技術の力と、コミュニケーションの力の双方を利用して、このゲームのバグを極力なくし、ゲームを快適に遊んでいただける状態で世に出すことができて、大きな達成感を味わうことができました。