orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

ドラゴンクエストXを支える技術~大規模オンラインRPGの舞台裏~を読んでみた

f:id:orangeitems:20181116220352j:plain

 

買いました

昨日のエントリーで、面白そうな本が出た話題を出しましたが早速買ってきました。そして全部目を通しました。全部読み込むには一週間ぐらいかかりそうなくらい。ボリュームたっぷりです。私はドラクエXを3年ほどやっているのもあり、ゲームの内容説明などは斜め読みでき時間を節約しました。

 

どんな本か

一言で言えば、ドラクエXを運営するにあたって必要な情報が全て盛り込まれているすごい本です。すごい、というのは何を示しているかと言うと、著者の青山さんは今プロデューサーというこのゲームの運営トップなのですが、その組織の末端にいたるまで仕事内容を細部に把握し、これを文書化したことです。

元々プログラマー出身なので開発サイドの情報はとても詳しく書かれています。特にバージョン管理やリリースをはじめ、どんな言語を使っているか、マルチスレッドに対する考え方、メモリの利用方法やストレージの使いまわしなど、コアとなる情報はしっかり書いてあります。しかし、それだけではなく・・・

・データベースのOracle Exadataの利用方法であったり、キーバリューストアの話であったりといったデータベースエンジニアとしての知識

・キャラクターのデザインや、ポリゴンなど、デザイナーとしての知識

・ロードバランサーやスイッチなどのネットワークエンジニアとしての知識

・OSやハードウェアなどのサーバーエンジニアとしての知識

・作業分担や進捗確認、会議体運営等の、プロジェクトマネージャーとしての知識

・大人数の組織運営に関する管理職としての知識

・品質管理メソッドの知識

・広告やイベントなどの、営業としての知識

・カスタマーサポートの知識

・もちろん、オンラインゲームの知識

全部書いてあります。

正直、デザインの部分は、私の専門と全く違うため、読んでも読んでもさっぱり頭に入ってこないです。一方で、著者は自分の専門外かどうかにかかわらず全ての部門を把握し、プロデューサーとして今後全体を統括できるためにこの本を執筆したのではないか、そう思うほど全部書いてあります。漏らさずに。

インフラサイドの話はそこまで深くありませんし、デザインの部分も専門家が見ればさわりの部分かと思います。しかし、トップがここまで勉強し把握していてくれれば、これは最終決定権者としては部下も相当ありがたいのではないか、と思います。

きっと、スクウェア・エニックスの新人はこの本を新人研修で読まされるのは間違いないな‥と思うくらい全てを書ききることに執念を感じる本です。また、大規模オンラインゲーム運営企業に就職・転職される方は間違いなく読んでおいたほうがいいと言い切れる本です。

むしろ、仕事しながら良くこれだけ書けたな・・と。

書いてあること一つ一つを細かく覚える必要はないですが、国内最大級のオンラインゲームをスムーズに運営できるその体制と、苦労した内容を公開することは日本の財産にもなるのではないでしょうか。次に始める企業は、全く同じ体制・役割でスタートすれば大きな抜けがありません。もちろんスクウェア・エニックスやドラクエXチームは大人数の部類ですが、人数が少なかったとしても、チームを小さくすれば機能できる構成です。また、少ないうちに最終形を意識して組織づくりをすれば成功に近づけるのではと思いました。

 

感想

ここからは個人的な感想です。

ゲームをリリースしたのが2012年8月2日。全く触れられていませんが、東日本大震災の311はリリース直前です。この年のことを思い出すと、クラウドが脚光を浴びた時期でした。計画停電等でBCP(ビジネス継続プラン)やテレワークなどに関心が高まった際にクラウドへシステムを移すことの人気が高まりました。

逆に言えば、オンラインゲームをクラウドで運用することはまだまだ現実的でもなく、大型のオンラインゲームであればデータセンターを借りて自前でオンプレミス運用することが当たり前でした。2012年の時期においての、最も洗練されたシステム/インフラ/ソフトウェア設計だという印象です。

しかし本文中にもある通り、2018年の今は技術動向が全く違ってきています。クラウドであっても、種類によっては仮想環境だけではなく物理サーバー(ベアメタルサーバーと呼ばれる)も使えますのでオンプレミスでしかできなかったこともできるようになりました。また、ソフトウェアももっと良いものもありそうです。しかし、「載せ替えても障害のリスクがあるだけで便利になるわけでもない」という通り、過去のアーキテクチャーを継続しつつ周辺ツールの工夫で生産性を上げているそうです。

※一部はAWSを使っているが周辺システムとのこと。

ただ、やはり6年、7年と経つと、コンテナやサーバーレス、PaaSやIaaSの進化など、革新的な技術が出てきています。今まで通りのサービスレベルを続けるのか、それとも新しい技術を取り入れ時代に追随するのか。あまりにも新しい技術を無視していると以下の懸念があろうと思います。

・技術者が、新しい技術に刺激を受けたとしても、業務で使うことができないか場面が限られる。モチベーションが下がるため他の会社に転職する理由の一つとなる。故にマンパワーが低下する。

・今の技術で作った洗練されたサービスを立ち上げた競合他社から、ユーザーを奪われる可能性がある。かといって、変更するには大変な工数がかかる。

ただし、スクエニもたくさんのゲームや部署を抱えるでしょうし、新規についてはクラウドで最新のソフトウェアを使って構築するところもあろうと思います。部署異動などでメンバーの希望も聞きながら、うまく配属しているんだろうなと思います。

特に、伝説の堀井雄二さんが統括している組織なので、「支える技術」よりもそのミッションのやりがいのようなものがモチベーションに大きく寄与しそうだと思いました。

 

より大きな成功をしているサービスについて、時間が経過したときにどうしてもアーキテクチャーが古くなってしまう。オンラインゲームは特に修正と追加の連続であり、膨れ上がったゲームの内容を簡単に、移行ができない。古いアーキテクチャーを引きづりつつ、新しい機能を実装していかなければいけない。また、コアシステムとは独立している周辺のシステムは時代に合わせてクラウドを使うなど柔軟にシステム設計できる。しかし、やりすぎるとソフトウェアの数が増えるためメンテナンスの難易度が上がる。

このあたりを強く感じた本でした。

ちなみに、大企業って大変だよなあ・・いろいろな人と連携して結果責任を負わなければいけない上役は重いなあ・・、と思ったのは余談です。

 

 

ドラゴンクエストXを支える技術 ── 大規模オンラインRPGの舞台裏 (WEB+DB PRESSプラスシリーズ) 単行本(ソフトカバー) – 2018/11/14