ゲームキャスト

面白いゲームを探すなら、ここ。

ロードラインタビュー第4回、プログラマー編(1) サーバープログラマーの苦労とは!?

ついに4回目を迎えたロードラインタビュー。
今回はクライアント(スマホにインストールされるアプリ)と、その後ろで動いているサーバーのプログラマーさんにインタビュー。
プログラマーがいなければ何も動かない。
画面表示のバグがあればクライアントプログラマーが、ソーシャルゲームでありがちな「サーバーつながらないぞ!」というときはサーバープログラマーが頑張っているのだ。

今回はサーバープログラマーの山本健継さん(犬の写真)、プログラマーの岡崎勇二さん(後ろ姿)、そしておなじみディレクターの宮内継介さんの3人にロードラのプログラムについて面白くもマニアックに質問していく。
rodo2rodo
nama
まず山本さんの経歴を教えて下さい。
oka02
最初はガラケーのアプリ開発をやってました。
アプリサイズ50KBの世界から始まって、ゲーム業界を離れて業務系のデータベースサーバーの仕事をしまして、その後、再びガラケーのアプリ開発に戻りました。

それ以降は全部オンラインゲームとなるんですけど、PCのMMORPGやiOSアプリのゲームサーバーを中心に何タイトルか開発に携わりまして、その後にアクワイアにきてロードラのサーバーを担当してるという感じです。
nama
ゲームからビジネスまで体験したサーバーの達人ですね…!
oka02
「サーバーやってくれたら、次はコンシューマーやっていいよ。」という話がくるんですけども、結局サーバーになってしまう(笑)
だから、クライアントもいじらせてもらって、それを晴らしているところがあります(笑)
nama
続いて岡崎さんの経歴をお願いします。
oka
ベテランの山本とは逆で…ルーキーです。
えっと、まあ…岡山県から…来ました(※すごく緊張している風)。
nama
ゲームにまつわる経歴だけで大丈夫ですよ(笑)
oka
ええ、専門学校のHAL大阪に4年間通って、ゲーム制作の勉強をしてアクワイアに入社したのが2012年4月になります。
入社2ヶ月目でロード・トゥ・ドラゴンのプロトタイプ制作を担当して、そのまま本開発、運営を行っています。
ロードラ漬けの生活が楽しいです(笑)
nama
では、新人研修を終えてすぐロードラという感じでしょうか?
oka
入ってすぐの時、新人が2人いたんですけど、最初は2人でゲームを作れと言われて。
それで作っていたプロジェクトが前にありました。
nama
新人2人でゲームを作れるって、いまどきすごいですね!
oka
一応遊べる形までは制作しました。
社内では賛否両論で結局はお蔵入りになりましたけど(笑)

今にして思うと、これも研修というか、ゲーム作りの特訓の一つだった様に思います。
ゲームを作るということは、チームで作るものなんだと改めて痛感しました。
oka02
でも、その経歴と情熱を買われて、ロードラチームに引きぬかれたんですよね?
oka
え、いや、そんなことは…。
miya
そうです。そういう事にしておきましょう。
新人2人だけの企画が順調に進んでいたら、今のロードラは無かったかもしれませんね(笑)
nama
ああ、ゲーム業界の嘘はこうやって作られていくんですね…!
「今から俺を殴ってみろ!」(※ゲームクリエイター列伝という漫画で、バーチャファイターの開発者がゲーム内で痛みを表現するためにこの発言をしたというほんとか嘘か分からない伝説。参考URLはこちら)とか。
game
▲PS全盛期あたりの本なので、もうさすがに手に入れるのは難しいかな…?


nama
では続いてお2人の好きなゲームを教えて下さい。
oka02
『ロマンシングサ・ガ1』が大好きすぎて青春の半分を費やしていた気がします。
3地点制覇(最終装備を手に入れる場所が3箇所あり、通常は1箇所しか行けないところをフラグを管理して3箇所廻る超高等テクニック)のやり方を見つけるために何周もしていました。
当時はインターネットがなくて頼れる情報が攻略本しかなかったんですけど、正確な方法は攻略本にも書いていなかったので、なかなか見つけられませんでした。
あと、ラスボスが強くて。
nama
サルーインのHPがこちらの攻撃力に応じて変わるのは反則でしたよね(笑)
自分も『ロマンシングサ・ガ1』が大好きです。
oka02
2や3が好きって人も結構多いんですけども、自分は1が一番いいなぁ、と。
世界観、キャラクター、システム、グラフィック、BGM、、あと裏ワザ(笑)、すべての要素が大好きでした。
nama
他機種版とPS2のリメイク版はいかがですか?
oka02
『ロマンシングサ・ガ ミンストレルソング』も大好きですね。
ワンダースワン版も、もちろんプレイしてます。
nama
岡崎さんの好きなゲームは?
oka
大きく2系統にわかれるんですけど、対戦ゲームが好きで『ストリートファイターIV』と『カルドセプト』、PS2までの『アーマードコア』シリーズですね。
あと、雰囲気ゲーというか、世界観や雰囲気が良い『REZ』や『風ノ旅ビト』みたいなゲームも好きですね。
miya
彼は負けず嫌いなんですよ。
『カルドセプト』をやると、当日まですごく練習してきて「え、いや、全然やってないですから」と(笑)
で、岡崎は基本的に人を尊敬しないんですけど「唯一尊敬する人がいるとするとウメハラ(格闘ゲームのプロ)です」と。
oka
唯一じゃないですけど、ウメハラさんは尊敬していて本も持っています。
ウメハラさんや野球のイチロー選手など、ジャンルは違っていても世界トップクラスの人達は似たようなことを言っているなと思っていて、 その人達の言葉を信じてやっていれば世界一になれると思って日々努力しています。
ゲーム作りもそうです。
nama
では、ロードラもかなりやり込んでいると。
oka
全世界で1位は難しいですが、少なくとも周囲では負けたくない。
会社内で誰よりもやり込むようにしています。
nama
ロードラのプログラムも、岡崎さんの力でゲーム界1位のものになると。
oka
頑張ります…!
nama
期待しています!
さて、まずはサーバー系の質問からしていきたいと思います。
山本さんが担当されているサーバープログラマーのお仕事について教えていだだけないでしょうか?
oka02
サーバー側のプログラムを書いている人です。
オンラインゲームだと、ゲームロジックのほとんどがサーバー側にあるので…そちら側のプログラミングをするのが主な仕事ですね。
nama
ゲームロジックというと?
oka02
ユーザー間のやりとりとか、合成とか、クエストの受託とか。
例えば、ユニットを合成しようと思ったときにプレイヤーが手元で“合成”を行うと、手元のスマホで合成をしているように見えますが、実際に合成の処理を行っているのはサーバー側で、“成功”とか“大成功”などを決めているのはサーバーのプログラムなんです。
クライアント(スマホ側のプログラム)はサーバーの結果を受けて演出を再生しているんですね。
rodora_14_02
▲合成の処理は、スマホでやっているように見えて実はサーバーの処理。

nama
なるほど。ゲームの裏側の数字の処理などは全てサーバーがやっている、と。
oka02
あとはサーバーそのものの設定やメンテナンス、パフォーマンスを上げるための設定やOSの設定、ネットワーク構成を考えたりとか…。
地味な作業ばかりなんですけども。
そういった部分は僕の方でやっているという形ですね。

だいたいこのサーバーでこれぐらいの人数に対応できそうだから、このサーバーを買ってください、と言うのが自分ですね。
nama
ということは、ロードラは初日から信じられないぐらいのダウンロード数をたたき出していましたけど、それも想定されてサーバーの設定をしたということでしょうか?
miya
いえ、あれは想定以上の数の方がきていましたね。
最初の方はサーバーの増設の話ばかりしていました。
oka02
そうなってしまってもすぐに対応ができる様に開発をしていました。
nama
話せるレベルで構わないのですが、サーバーの環境はどのようなものでしょうか?
oka02
よくあるソーシャルゲームの環境と同じだとは思います。
LAMPと呼ばれる一般的な構成を使っております。
そんなに特別な環境というわけではありませんね。

ハードウェアの方は、PCのオンラインゲームをやっていたときは物理サーバーを使うのが主流だったので、今回もそうしようと思っていましたが、思っていた以上にクラウドの世界がすごくなっていて、安いし、早いし、拡張もすぐできるようになっていたので、クラウドで行こうという話になりました。

結果的に、クラウドでなければ負荷が耐えられなくなったときの対応が遅くなってしまっていたと思うのでクラウドで良かったと思っています。
nama
サーバー系の問題でこれはやってしまったという事件や、大変だった事件はありますか?文字数チェックが抜けていたとか。
miya
(ああ、きたなという顔)
あれは、俺がやっちゃったんでサーバーの問題ではなかったじゃないですか(笑)
oka02
まずは「よろしくお」(※よろしくお願いしますの文字数が長すぎて「よろしくお」で切れた状態で送信されてしまった事件)ですね。
たまたま、文字数チェックが抜けてまして…。
チェックが抜けているとデータベース側のほうで長すぎる部分が切れてはいってしまうので…あの様なメッセージになってしまいました(笑)
miya
後日、きちんとした文字数チェックを実装していただきました。
rodo5
▲「よろしくお」詳しい経緯はデザイナーさんのインタビューを。

nama
あれはすごく印象的だったので、私のロードラ仲間の間では「よろしくお!」が挨拶になっています(笑)
LINEでやり取りしているんですが、偽スタンプ(画像を送信してスタンプっぽく使う技)までありますよ。
yoroyoro2
▲勝手に作られたよろしくおスタンプの一例(cアクワイア)。実はあと4種類ぐらいある

oka02
大変だったという意味では、自分は今までもオンラインゲームをやってきたので同じように大変だったのですが、会社の人とか周りのプログラマーに理解を得るのが大変でした。
特にロードラチームは若い人が多く、ほとんどがコンシューマゲーム開発者だったので「データベースって何ですか?」ところからスタートする人ばかりでした…。
(オンラインゲーム開発の)用語が通じない。
そこを細かく説明して、理解を得る作業ですね。
miya
最初は「サーバーのほうでデータ保存しているだけでしょ」ぐらいしかみんな思っていなくて、サーバーで処理を追加したらクライアントの処理が増えるとか、そういったところまで全員意識が向いていませんでした。
nama
そこから!よくロードラが出てきましたね!
oka02
周りが理解してくれた後で、上の人に説明するのがまた大変でした。
図説資料を沢山作って「通信があって、これをこうするとこんなモノが必要です」というような説明を社内でたくさんして。
オンラインゲームに必要なものを理解してもらいました。
nama
『グラディエーター』などのオンラインにつながるゲームはリリースされていますが、やはり完全なオンラインゲームとなると、まだ社内の体制が整えられていなかったと。
miya
確かに、アクワイアでは、いくつかオンラインにつながるゲームを出しています。
ですが、ロードラチームに関しては、自分も初ディレクションですし、チームの成り立ちからメンバー集め、スマートフォンでのゲーム開発も初めてでした。
それでも、企画を考えた時から首尾一貫していたのは、ちゃんとキャラクターが動いて、物語を想像して楽しめるゲームを作るという部分です。
ゲームを作るのにコミュニケーション能力はいらない、という話もありますが、組織の中でコミュニケーションをとって必要なものを理解してもらう、その能力もやっぱり必要で、そこでロードラが助けられた面は大きいですね。
nama
ロードラを通じて、社内の意識が整えられていったんですね。
miya
少なくともロードラチームの周りでは理解が得られるようになりましたね。
あと、山本が一番苦労して、悩んでいたのが、よくも悪くもクライアントを先行して作りすぎていたので、あとからサーバーの処理をくっつけなければならなかったことです。
oka02
サーバーと通信するゲームを作った人のクライアントプログラムは、そこが考慮されていることが多いのですが、ロードラは、そこが比較的考慮されていませんでした。
だから通信に関してはこちらの指示に従ってもらう、という感じでやっていきました。
nama
岡崎さんのように若い人が多いチームで、プロトから勢いで作りつつも、重要なオンライン部分などは山本さんが固めていったと。
では、クライアント重視で作ったから、ここがこうなったという箇所などありますか?
miya
どっちかが譲って変になってしまった部分はないですね。
oka
ユーザーに見える部分では無いですね…内部のプログラムはぐちゃぐちゃですけど(笑)
nama
ロードラのサーバープログラムのここがすごい!という部分があれば教えて下さい。
oka02
皆さんにおみせできる形ではなにもないんですけど、運営用のツールは頑張っているんじゃないかな、と。
miya
運営のための管理ツールは整っていまして、開発運営メンバーの方は助かっています。
oka02
こういうチームでしたし、ゲーム自体の開発が忙しくて、ゲーム運営ツールはおろそかになりがち…というのは予想出来ていましたので、ツールとゲームをセットで開発するという形で進めました。
いまも必ずセットで作るようにしています。
miya
ツールがあったから助かっていることとして、単純に機能だけ見て言ったら、「これこで十分だろう」という機能があったりするんですよ。
例えばクエストの敵の配置の確認とかは数字でできれば、もうそれで大丈夫だったりもするいいんですけど、数字文字だけではなくて絵で全部表示される出るように出来ている。

あるクエストを設計して作ったとして、数字のデータ上はバランスとか問題ないんですけど「なんかこのクエスト、他のクエストと見た目で似てしまうのでは?」というところで、絵が出てくるのは助かりますね。
oka02
オンラインゲームのサーバーって基本的に文字の世界で、絵がないので、クライアント開発に比べるとちょっとさみしいんですよ。
なので、ツールとして求められていなくても、僕が絵を出したいので、デザイナーさんに「この絵使っていいですか?」って許可をもらって、絵が出るように作りました。マップデザインとかについても、僕が観たかっただけというか…。

文字だけよりも、グラフィックもある方が好きなので。
運営用のツールの方が作っていて楽しくなってしまって、豪華になっていきました(笑)
32
▲サーバーって文字だけの世界(これはロードラとは関係のないイメージ画像)

nama
山本さんの「クライアント作りたい!」という思いが形を変えて、ロードラのイベントの質と量をより良くしているんですね。
miya
本来なら全く必要ない背景の絵が入ってきましたからね(笑)
それがチームのモチベーションを上げるんですよ。
「あ、なんか変わったよ!」と。
ロード・トゥ・ドラゴン【ロードラ】死神出現
▲クエストは山本さんのツールに支えられて作られている!?

nama
スマホのオンラインゲームと普通のオンライゲームで何か違う苦労はありましたか?
oka02
PCのオンラインゲームと比べて、スマホは通信環境がいい場所にいることと、悪い場所にいることとあって。
その対応をしなければならないのが苦労しました。
nama
電波が悪いところにいるときの、通信失敗時のエラー処理などでしょうか?
oka02
通信の再送する、再送しちゃいけないとか、通信エラー時にクライアントがどうするとか、そのへんは大変でした。
nama
先日100万DL達成イベントが有りましたが、そこまで大きくなるとサーバー側で特別な何かが必要になるのではないでしょうか。大人数をさばくための特別な苦労・工夫があれば教えて下さい。
oka02
素敵なサーバーを買ってもらうために頭を下げに行くとか(笑)
あとは、サーバーの世界ではセオリーだと思いますけど、すぐにサーバーを足して、負荷分散をできるような設計にはしてあります。
miya
ただ、すごいトラブルってあまり記憶にないですね。
oka02
1度だけ、リリースして1日しないぐらいですかねぇ…。
サーバーが応答を返しづらくなってゲームがほとんど遊べなくなってしまった事がありましたが、その時はなかなか原因がつかめなくて頭を抱えていました。

諦めずに調べていたら、通信が不自然な詰まり方をしている事がわかって、サーバーの設定をひたすら見直して、原因の設定を変更することで大きく改善して乗り切れました。
nama
初日からすごいアクセスがあったのに、快適にプレイできてすごい、と思っていましたが裏でそんな苦労があったんですね。
oka02
あとは全体プレゼントにめちゃめちゃ時間がかかったというのもありますけど。
miya
何十万のユーザーにプレゼントを送るのに時間がかかりすぎて(笑)
oka02
そこのプログラムが安直に作られていたので、大惨事に(笑)
今は改善されていますけど、そこはかなりやっちゃったなーと(笑)

普段何気なくロードラをプレイしていると、手元にあるスマホの画面が全てと思いがち。
だが、その裏で大人数がスムーズにアクセスするための努力から、クエストの確認機能まで、裏方として支えるサーバープログラマーの努力がゲームのクオリティを引き上げていた。

新人が多い(インタビューでも触れられていたが、ロードラは宮内さんにとって初のディレクター作品だ)チームを、ベテランの山本さんが知識の面で引っ張り、社内的な態勢を整えていったという話もスマホ移行期ならではの話。

ということで、今回はサーバープログラマー、山本さんへの質問を中心にお送りした。
次回はクライアント側のプログラマー、岡崎さんへの質問をメインにお送りするぞ。
プログラマーインタビューその2も…
yoro01

※スカートが透ける画像を初期に掲載していましたが、2chからの転載画像だったことが判明し削除いたしました。画像をUPされました方、申し訳ありません。

アプリリンク:
ロード・トゥ・ドラゴン(itunes) 基本無料
ロード・トゥ・ドラゴン(Google Play) 基本無料

攻略リンク:

ロード・トゥ・ドラゴン攻略(ゲームキャスト)