琥珀色の戯言

【読書感想】と【映画感想】のブログです。

【読書感想】ドラゴンクエストXを支える技術 ── 大規模オンラインRPGの舞台裏 ☆☆☆


Kindle版もあります。

内容紹介
ドラゴンクエストX』は、ドラゴンクエストシリーズ初のオンラインRPGです。
本書は、ドラゴンクエストXの開発・運営の舞台裏を、現在はプロデューサーとして全体の責任者を務め、
以前は技術責任者でもあった著者自らが徹底公開していきます。
著者のこだわりによりプログラミングやドラゴンクエストXの事前知識がなくても読み進められるよう
丁寧に解説していますので、技術者やドラゴンクエストXのプレイヤーでなくても、
幅広い方々に参考にしていただけます。


第1章 ドラゴンクエストXとは何か ── ドラゴンクエストかオンラインゲームか
第2章 開発・運営体制 ── ドラゴンクエストXを支える人々
第3章 アーキテクチャ ── クロスプラットフォームMMORPGの基本構成
第4章 開発と検証 ── 並走する追加と保守のサイクル
第5章 メモリ管理 ── MMORPGボトルネック
第6章 ゲームクライアントグラフィックス ── 魅力的な絵を描画する工夫
第7章 ゲームサーバプロセス ── 機能ごとに分離して負荷分散
第8章 キャラクター移動 ── 移動干渉による押し合いへの挑戦
第9章 ゲームDB ── ワールド間の自由移動を実現する一元管理
第10章 ゲーム連動サービス ── ゲーム内とつなげるための工夫と力技
第11章 運営と運用 ── リリースしてからが本番!
第12章 不正行為との闘い ── いたちごっこ覚悟で継続対応


 この本を見かけたとき、「ああ、『ドラゴンクエストX』を運営してきての裏話とか、面白いエピソードとかが紹介されている本なんだな」と勝手に思い込んでしまいました。
 僕自身は、WiiU版の『ドラゴンクエストX』のパッケージ版を購入して遊び始めたものの、最初のオフラインの段階で、なんとなくリタイアしてしまい、オンラインでは全然遊んでいないんですよね。
 ものすごくつまらなかった、というわけではないのだけれど、時間が経つにつれ、いまさら参入しても、ついていけないよなあ、とか思ったこともあって。

 僕は昔から、オンラインゲームというのが苦手だったのです。
 ゲームの中とはいえ、知らない人に声をかけるということが、どうしてもできなくて。
 ゲームでも、『スプラトゥーン』みたいに、黙ってプレイしているだけで済むものであれば、大丈夫なんですが……RPGでは、他のプレイヤーとコミュニケーションすることが醍醐味でもあり、プレッシャーでもあるのです。


 そんなことを思いながら読んでいたら、『ドラゴンクエストX』では、『サポート仲間』というシステムがあることが紹介されていて、「もう少しやってみればよかった……」と、けっこう後悔したのです。

 オンラインゲームにおけるパーティは、プレイヤーどうしで組むことができます。たとえば複数のプレイヤーが同意のもとでパーティを組み、一緒に強い敵に挑戦するなどです。ドラゴンクエストXでも、通常時はプレイヤー最大4人でパーティを組めます。
 一方、従来型のドラゴンクエストシリーズでは、最初の『ドラゴンクエスト1』はパーティを組めず1人のみでしたが、次の『ドラゴンクエスト2』以降ではパーティを組めるようになりました。たとえば『ドラゴンクエスト3』では、自分が仲間にしたいキャラクターを「ルイーダの酒場」という施設で雇うことで、パーティを組めます。オンライン非対応のゲームのためプレイヤーは1人ですが、その1人が、パーティ内の全キャラクターを操作する形でプレイします。
 そしてドラゴンクエストXで登場した「サポート仲間」は、「冒険者の酒場」という施設で他人のプレイヤーキャラクターを雇うことで、パーティを組むしくみです。また、その雇われたキャラクターを「サポート仲間」と呼びます。
 「サポート仲間」として雇われたいプレイヤーは、「冒険者の酒場」で自分のプレイヤーキャラクターを登録します。別のプレイヤーは、その登録された「サポート仲間」を雇い、パーティを組んで冒険します。そしてその冒険で得られた経験値の一部は、雇われた「サポート仲間」のプレイヤーキャラクターにも入ります。つまり、お互いの時間は共有しなくても、別のキャラクターと一緒にプレイしているとも言えます。


 この「サポート仲間」は、AIによって自動的に行動してくれ、プレイヤー1人あたり、3人のサポート仲間を雇えるそうです。これで、ソロプレイでも4人パーティで遊べるようになっているんですね。
 他の人に気を遣わずに、パーティプレイができる、というのが、この『ドラゴンクエストX』の特長なのです。
 プレイヤー同士のコミュニケーションが重視されるオンラインRPGで、このシステムを採用したのは、かなり思い切ったことのはずですが、著者自身も「自分から仲間を集めて遊ぶのは苦手」だと仰っています。
 

 ドラゴンクエストXの主要なゲームサーバのプロセスはシングルスレッドです。
 スレッドとは、1つのプロセスの中で並列して動作する処理のことです。シングルスレッドは1プロセス内では同時に1つしか処理を動かしません。対義語はマルチスレッドで、こちらは1プロセス内で複数の処理が同時に並列動作します。
 クライアント/サーバ型アプリケーションのプログラミングを筆者が初めて勉強したときは、サーバはクライアントから接続要求を受けるたびにスレッドを新規作成する形式でした。つまり、そのプロセスと接続しているクライアントの数だけスレッドが並列に動くマルチスレッドです。ドラゴンクエストXはその形式ではなくシングルスレッドのため、特徴的といえるでしょう。


 このくらいは、流し読みできるくらいじゃないと、この本を読みこなすのは難しいんですよね。正直、僕は技術的なところは、けっこう読み飛ばしてしまいました。
 シャープX1で、『マイコンBASICマガジン』のプログラムを打ち込んでいた僕には、隔世の感があります……

 この本、ところどころに開発の裏話などが紹介されているのですが、読んでみて痛感したのは、基本的には、「オンラインゲームを開発していく上での技術的な話がメイン」なんですよ。
 コンピュータやプログラミングに詳しくない僕としては、けっこうつらいものがありました。
 逆に、これから自分でゲームをつくってみたい、という人には、この本に出てくるコンピュータ言語やプログラミングのコツなどをそれぞれマスターしていけば、ゲーム開発者への道が近づいてくるのではないかと思います。

 オンラインゲーム開発はリリース後も続きます。Webサイトなどオンラインサービスの運営や運用の経験がある方は、何をそんな当たり前のことを……と思われるかもしれません。しかし、筆者には衝撃的でした。これは古くから作ってきたゲーム開発者も同様と思います。
 オンライン非対応のゲームはリリース版の完成がすべてでした。そのためマスタアップには全神経を注ぎますが、完了したら長期休暇を取得し、旅行にいくなどリフレッシュしていました。筆者にはこれが普通でした。
 しかし、オンラインゲームは、運営と運用が続く限り開発も続きます。むしろ、リリース前よりリリース後のほうが多忙なことが多いです。筆者は『PlayOnline』リリース時にこれを初体験しました。サービスを開始したからこそ寄せられる、不具合報告や要望への対応に忙殺される日々の始まりです。リリース版を完成させたあとのほうが忙しいとは夢にも思いませんでした。また、いつでも改修できるのは良いことですが、いつまでも完成しないことでもあり、当時は正直つらいと感じていました。
 ただし、このときは経験不足でしたが、これが普通だと考えれば問題はありません。


 ユーザーの反応というのも難しいところがあって、ある操作がやりづらい、という意見が多かったので変更してみたら、今度は「元のほうが良かった」という反応がたくさん返ってきて、結局、プレイヤーで操作法を選択できるようにしたそうです。
 声をあげてくれる場合には伝わるけれど、沈黙が満足なのかどうかは、わからないところがあるのです。
 それに、ほとんどの「大いに不満なユーザー」は、クレームを入れるのではなく、プレイしなくなるだけ、なんですよね。

 これからゲームを作ってみたい、という人は、一度目を通してみて損はしない本だと思います。
 長い間、『ドラゴンクエストX』をやってきた、という人も。

 それ以外の人にとっては、興味がある方は、一度書店でページをめくってみることをおすすめしておきますね。僕は、けっこう難しいな、と感じたのと、税別で2680円と、けっこう値が張るので(専門書としては、高くはないのですが)。


fujipon.hatenadiary.com

アクセスカウンター