ゲーム開発には、プログラムコードをコンピューターが実行可能な形式に変換するビルドや、映像やCGをゲーム用に構築するためのレンダリングなど、大量の計算処理が必要になります。それらを効率的に処理できる環境を提供することが、開発用のITインフラに求められるもっとも重要な課題です。私が所属する部門では、ゲーム開発に必要なサーバーやストレージ、ネットワークといった技術要素を活かしてインフラ基盤の構築に取り組んでいます。その中で常に第一に考えているのは、ゲーム開発者に「我慢してもらわないこと」「開発に注力してもらうこと」です。どんな要望でも遠慮せずに伝えてもらえるように、普段から気軽に相談してもらえるような関係づくりを意識しています。
こうした日常のコミュニケーションをしている中で、ゲームの開発規模が大きくなるに従い、計算処理用の大量の専用PCなどの維持管理に多大な時間と労力がかかっているという課題が見えてきました。開発現場では、複雑な計算処理を行うために数百台の専用PCが稼働しており、開発者は本来の業務に加え、専用PCの維持管理や不具合の対応に追われている状況でした。
この状況を変えるため、数百台の専用PCに代わって、開発者自身が、必要な時に・必要なだけ・自分自身で・簡単に作成・作り直しできる大量の仮想PCに置き換えできるよう、独自の大規模計算リソース基盤を構築することになりました。しかし、大規模ゆえハードウェアの置き場所となるファシリティの準備や、開発者が直接触ることになる操作用WebUI(ユーザーインターフェース)の使いやすさ、手触り感までを通して考える、フルスタックの検討が必要でした。それは、私が20年近く任天堂でIT担当を務めてきた中でも、前例のないプロジェクトでした。
仮想PCは、一般的に物理PCよりも性能が落ちてしまうという問題があります。しかしながら、ゲーム開発効率のためには仮想PCの性能がネックになることは避けなければなりません。そこで私たちは、既存のしくみをベースに独自のカスタマイズを施した環境を用意することで、任天堂のゲーム開発に最適な計算リソース提供基盤を構築する手法を選びました。しかし、物理レイヤーの調達からハード/ソフトウェアの選定とカスタマイズ、UIの実装まで、フルスタックでの構築をしたため、越えなければならないハードルがたくさんありました。ゲーム開発にとっての理想の開発環境を整えるには、開発者からの要望は最大限叶えられるよう、リードタイムは限りなく短く・リソースのボリュームは十分に・必要な機能と拡張性を持たせる必要があります。そのための、技術検証・機能実装を行い、関係各所と協議しながら構築を進めていきました。ただ、どうしても実現が難しい要望については、開発者と相談して落としどころを見つけていく必要があり、こちらも困難な作業でした。また、簡単に仮想PCを作成、作り直しするためのWebUIと仕組み作りも手探りの状態からスタートし、完成までにかなりの試行錯誤を要しました。そういった数々のハードルを乗り越え、最終的には物理PCに近いユーザビリティの仮想PC環境を実現することができました。
この大規模計算リソース基盤の真価が発揮されたのが、『ゼルダの伝説 ティアーズ オブ ザ キングダム』の開発です。大量の仮想PCが利用できるようになったことで、前作(『ゼルダの伝説 ブレス オブ ザ ワイルド』)の十数倍の計算能力の投入が可能となり、ゲーム開発者が試作を繰り返しやすく、面白さの追求を存分に発揮できる環境が整いました。とくに顕著に成果が表れたのは、ゲーム内の地形や地表面の計算処理、そして装備に別の素材をくっつけて新たな武器を生み出すスクラビルド機能の開発です。スクラビルドには無数の組み合わせパターンが存在し、それぞれの画像や名前のチェックをどのように実現したのかが話題となりました。実際、この膨大な作業を人手で処理するのは現実的ではありません。必要な時に・必要なだけ計算リソースを簡単に使うことができたからこそ、チェック作業の自動化が可能となり、この仕様の実現につながったのです。まさに、この処理能力があったからこそ成しえた開発だと言えるでしょう。
その後、他のタイトルでも仮想PCを使った開発環境が使われるようになり、今では大規模計算リソース基盤は任天堂のゲーム開発になくてはならないITインフラとなっています。
この前例のないプロジェクトは、部門だけにとどまらず、多くの人の協力がなければ決して成し遂げられませんでした。私たちは、電源や空調などの設備の導入と維持管理から、ソフトウェアやUIの設計まで、フルスタックで開発環境の構築に取り組んでいます。フルスタックで取り組んでいるからこそ、ゲーム開発を第一に考えた柔軟で制約の少ない選択が可能であり、開発を支える技術を内製して突き詰められることが、任天堂ならではのエンジニアとして働く大きな魅力だと思います。
自分が全力を尽くすことで、ゲーム開発者に喜ばれ、その先にいるお客様にワクワクしていただけるようなプロダクトの提供につながることにやりがいを感じています。