ゲームキャスト

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

ロードラインタビュー第4回、プログラマー編(2) クライアントにかける熱い想い

ロードラインタビュー第4回、プログラマー編(1)ではサーバープログラマーの苦労について色々とお話をうかがった。
その2ではクライアントプログラマー。
つまり、プレイヤーの手元にあるプログラムの担当者をメインにお話を伺った。

前回に引き続き、お話して下さるのはサーバープログラマーの山本健継さん(犬の写真)、プログラマーの岡崎勇二さん(後ろ姿)、そしておなじみディレクターの宮内継介さんの3人だ。
さらに…今回はiPhone5に対応した新バージョンの画面を、特別にいただいてきてしまったぞ!
rodo2rodo
nama
では、クライアントプログラマーのお仕事について教えて下さい。また、ロードラでの担当箇所を教えて下さい。
oka
凄く簡単に説明すると、絵や音楽を実際に動かしたり表示するようにしているのがプログラマーです。
プログラマーがいなかったら、ユニットやエネミーも画面には出てこないし動かない…田崎の作った曲も流れないし止まりません。

自分が主に担当しているのは、クエストに出発してからのゲーム部分全般ですね。
スキルとかタッチ操作の部分とか、ダメージを与えたり、動くタイミングとかを制御しています。
nama
ロードラのクライアントはどのような環境で作っているのでしょうか、iOSとAndroid両対応はどうしていますか?
oka
Unityという開発環境で作ってます。Unityで制作した場合、iOSとAndroidでほとんど同じソースを用いて完成させることが出来ます。
ただ、実際はそこまで甘いことではなくてUnityでもサポートしきれない部分が沢山あります。
解像度の違いとか、描画部分とか…色々あるんですけど、そういった部分はプログラマーが吸収してプログラムを作っていきます。
nama
一部で話題になるスカートが透けるバグとかもそうですよね。
Androidの機種依存の…。
oka
Android版に関わらず、ゲームとして、商品・サービスとして、ちゃんとしたものを出すための努力や責任は、開発チームやパブリッシャーにあると考えてます。
全てを完璧には対応できてませんが、機種が沢山あっても、可能な限り順次対応していっている状況です。
nama
個別のプログラムを作成して直していっているのでしょうか?
oka
はい、Androidは機種個別の動作があるので「この機種だとこの動作」というプログラムを作っています。
とある端末で何かがおきるとそのためにプログラムを改良して、それで他の機種に影響を及ぼさないかバグを確認して…。
連鎖が起きるので大変です。
nama
機種依存というと、iPhone5も画面サイズが違って大変では?
そろそろAppleがiPhone5対応していないものは審査を通さないという事になっていた気がしますが。
miya
次のアップデートでiPhone5対応を行っております。
基本的にはiPhone5専用だったので大変でした。
詳細は言えないですけど、ただiPhone5対応しただけでなくて、レイアウト変えたところもあるので…。
nama
本当ですか!上下に壁紙をいれただけの対応になると思っていたのでiPhone5ユーザーとして非常に嬉しいです!
って、そこにあるのは…新画面!?
え、これをゲーキャスで公開しちゃっていいんですか!?では…!
rodo4
▲これがiPhone5対応の新画面!レイアウトが違う!

rd
▲比較するとこんな感じ!全身が見えるぞ!

rodo5
▲タイトル画面も、見切れていたドラ助が…!
oka02
自分もiPhone5ユーザーなので、「壁紙だけじゃ寂しくないです?」とちょっとわがままを言ってみたら、ステキな対応をしてくれました。
nama
スマホゲームならではの苦労や長所があればそれぞれ教えて下さい。
oka
さっきの話にも繋がるんですけど、機種が多くて…iOS、Android、それによってメモリや動作の速度も速い・遅いとかあって対応するのが大変という感じですね。
nama
そのあたりはデザイナーさんのインタビューで、新しいモンスターを出すときに「半透明の表現が難しかった」というのもそれですね。
oka02
Androidの方は岡崎以外のスタッフもやっているんですけど、課金周りはすごく大変でした。
決済フローとかもiOSと違うので。
誤ってアプリを消してしまった時にセーブデータが消えないようにする機能についても、iOSでは便利な機能があって簡単に実装出来たんですが、Androidでは同じ機能がなくて、代替になるものを探したり考えたりするのに、とても苦労しました。
nama
iOSに最初からあるものがなかったりするのが大変だったんですね。
rd2 (1)
▲課金も機種が違うとそれだけで大変。
oka02
端末依存な部分も少なからずあったりして。
そのためにいっぱい認証や課金のフローを描いた記憶があります。

自分がiOSの開発をロードラの前にやっていたので、iOSの方は比較的簡単だったんですけど、Androidは経験がなかったので「サーバーで何やったらいいんだろ?」、というところからスタートして。 結局サーバーだけじゃなくて、端末やOSの仕様まで調査しました。知っていそうな知り合いに泣きついて聞いたりしたこともありました。
しんどかったです。
nama
クライアントのプログラムでここを見てくれ!という所があれば教えて下さい。
oka
んー、どこでしょうね……。
担当している箇所が多い割に、
やってることは細かいところだったりするのでなかなか伝えづらいです(笑)
miya
でも、その細かいところで魂を込めますよね。
これは次回のアップデートで入るんですけど、攻撃したときに敵のライフが震えたりする様になりました。
それ自体はただの処理の一つなんですが、その振動のタイミングとか、
振動と、敵のライフゲージの減り方のバランスとかを延々と調整してましたね(笑)
oka
アートディレクターの内山とは、密にコミュニケーションをとっていて「ここはデザイナーでアニメーションを作るから、ここはプログラマーで作りましょう」と連携してやってます。
そういうところも、こだわっているところですね。
ロードラはUIとかほとんどパッと消えるものがなくて、フェードインしたり、フェードアウトしたりしています。

そのあたりは内山がアニメーションでやる所が多いんですけども、できないものもあって、そこはプログラムで作っています。
本当に細かい話だと「ソウル+1」とか「ソウル−1」のフェードは自分がプログラムで作ったりとか、他のUIは内山が多いですね。
nama
プログラムがデザインをカバーしている!意外なお話しですね。
何気なく流していましたけど、スマホゲームをプレイしていると流せない引っかかりみたいなものを感じると楽しさが減ってしまう。
そこを感じさせないのが凄いと思いました。
oka02
自分が昔携わっていたMMORPGでは、そのあたりが少し違って、パッと消えてしまうものも多かったんですよね。
OSのウィンドウシステムを作っているのに近いところがあって、ウィンドウも移動できて、パッと消えて、そのほうが便利と思われるところもあって。
もちろん、それはそれですごいんですけど、このあたりのアニメーションがしっかりしているのは、さすがコンソールゲームの会社だなーと、同じチームながら思いますね。
miya
アートディレクターの内山のこだわりというか、慣れがそこだと思うんですよね。
過去に一緒にやったゲームでもウィンドウの動きでもコマ割り部分の指定をディレクターが書いていて。
信念として「何を触った時でも面白くしておかなくてはいけない」というのがあって。
「メニューを触って動かしただけで楽しい」という風にしたいと。
パネルを消費したりするのも、メニューでボタンを押すのも、全ての動きにそういう意図が入っているのではないかと思います。
もちろん、楽しさだけで利便性が損なわれては本末転倒なので、あくまで「楽しさ」を入れられる許容範囲のギリギリを見極めている、といった感じですけどね。
nama
家庭用のゲーム会社からの流れをくむ、アクワイアならではのこだわりですね。
oka
2012年の7月とか、レスポンスの話ばっかりしていましたからね。
スマホのゲームでタッチ操作がメインですし、レスポンスというか、さわり心地の細かい調整を喧嘩しながらやっていたという(笑)
最近のアップデートで、カットインの表示時間をボクが伸ばしたんですよ。そしたら宮内が「なんかしっくりこないなぁ……」と(笑)
miya
それ自体は、実際にロードラをプレイしていただいている方のご意見やご要望があると思うんですけど、それだけを完全に認めたわけじゃなくて、実際に遊ばれている方の反応を見て判断することもありますので。
ただ、自分の意見はあまりに感覚的でもあったので、話す内に自分自身で却下しました。
oka
追撃とかで4人同時にカットインが出ることが増えたので、4人のカットインが全部見えるようにカットインの時間を増やしたんですね。
自分はロードラを凄くやり込んでいるので、やり込んでいるプレイヤーとしての目線もあって、ここは譲れないところでした。
nama
ロードラといえば矢継ぎ早なバージョンアップが特徴ですが、バーアジョンアップの中で特にプログラムで最初とこの辺りが変わってきた、という点があれば教えて下さい。
miya
ベルトコンベア式になっているというか、次のアップデートを出す前に、その次のアップデートのプログラムを考慮するようになって、スムーズにアップデートできるようにチームの体制が変わったことですね。
自分が、言わなくてもやってくれるというか、やって欲しいと言う前に察知してみんなやってくれるのも、凄く助かっています。
nama
チームの体制が整って余裕ができて、そこで休むのではなくてそこをロードラをさらに良くするのに使っているんですね。
oka
ロードラ漬けの生活、楽しいです(笑)
miya
そういう言い方だと、いらぬ誤解を生みそうですね(笑)
チームとしては、可能な限り、ちゃんとスタッフが休日を取れるようスケジュールを考えてます。
その為のベルトコンベア方式、というのもありますね。
oka02
アクワイアで、ここまで長期間、運営サービスを続けてきたタイトルはないと思います。
アクワイアは、今まで、ほとんどがコンソールゲームがメインでした。
自分は、アクワイアに来る前にも、いくつかのタイトルで運営サービスに関わってきましたが、そこで思うのは、マスターアップまでに詰め込まなければいけないコンソールゲームとはちょっと違って、長期間の運営サービスというのは、マラソンに似ていると思ってます。

ゴールを目指して突っ走りつつも、ちゃんとペース配分を考えたり、お休みをしたりしないと、スタッフのみんなが倒れてしまいます。
また、自分たちがゴールだと思っていたところは、プレイヤーの方からみたらゴールでなかったりすることもあり、そうなると、軌道修正をしつつ、どうやって目的地にたどり着くのかを走りながら(日々の運営サービスを続けながら)考えないといけません。

だからといって、無理をしすぎては、結局、ロードラをプレイしてくださっている方々に、新しい楽しみを提供できなくなってしまいますので、ちゃんとお休みしてリフレッシュすることも、とても大切なんです。
miya
もう、半年以上、運営サービスをしてますからね。
体制が変わり、運営サービスというものにチームが慣れてきたと感じることがあって、iPhone5の対応とかも、自分がいろいろ言う前に提案がきたりしていましたから。
oka
アップデートを重ねて、メモリ対策とか動作を速くするとかも、少しずつですが最近はやれています。
これも体制が整って余裕が生まれたからですね。
oka02
若い人が多いので吸収が早くて、どんどんチームの動きがよくなってきているんですね。
nama
今までのインタビューを拝見していると、サウンドの田崎さん、プロデューサーの横山さん、そしてサーバーの山本さんと要所をベテランが指導しつつ、若い人がどんどんと経験を積んでいる感じですね。
まだ、当分先になるはずですけど、ロードラスタッフの次回作があるとしたら凄いものが出てきそうですね!
nama
ちょっと具体的な話になるのですが、新しい仕様が決まってからそれが実装されるまでの流れを教えて下さい。
miya
まず、仕様が決定したというという段階で、現在プログラムの統括をしている山本に相談します。
で、山本に見積と作業の割り振をしてもらいます。
サーバーの準備をして、クライアントで数値を受け取って表示できる感じに。
クライアントはデザイナーさんが絵を用意したところで表示するような流れです。
oka02
自分がだいたい通信など仕様を作って資料にして。
まず、サーバーの受け口を作らないといけないので1~2日で作って、その間に通信がいらない部分を作ってもらって、サーバーができたら繋ぎこんで。
デバッグしてわわわーっと。
nama
それは気軽に言ってますけど大変なのでは。
新機能を1~2日というのは、バグが出てきそうな。
oka02
サーバーの実装の先には、クライアントの実装と、データを打ち込んでゲームにする人が待っているので、まずはその人たちが困らない程度のプログラムを短期間で書き上げてしまいます。
細かい調整やエラーチェック等は、つなぎ込みがうまく行った後にしっかりやっていますので、大丈夫ですよ。

それと、宮内から最初に出てくる資料がポイントを掴んでいてわかりやすいという事もあるので、設計が考えやすいという事も実装スピードに影響していますね。
nama
そのあたりは、チーム内で役割分担ができて、有機的につながり始めている、というところなんでしょうね。
miya
日々、成長しています。
nama
クライアントのこだわりとか、これを見てくれ!というところはありますか?
oka
新機能を追加したら重くなってしまって「こんなの出せない!」というのがあったりして、毎回必死に軽量化しています。
こだわりというか、新機能を追加した結果今までできたことが快適でなくなってしまってはいけないという戦いはしています。

最近ですと、タイム・オブ・ゼロとか。
単純にCPU負荷が多かったので、すごく重くなっていましたが、リリース前に何とかしたので、皆さんに楽しんでいただけるようになりました。
rd2
▲バシバシ消すだけで楽しい!ここに岡崎さんのこだわりが。
nama
ロードラは画面の切替が早く快適ですが、それを実現するにあたって「通信・クライアントで実はこんなことしている」というような話があれば教えて下さい。
oka02
あまり明確な基準はないんですが、通信は頻繁にしないでね、という話はしていました。
フレンドの一覧とか一度とったら同じ画面ではしばらくリフレッシュしないとか。
そのあたりは早い段階で意識していました。
送受信も差分しかやらないとか、そういうところも効いているのかもしれないですね。
oka
クライアントでは処理を軽くするために、シーンが切り替わるときにすべてロードせずに徐々にロードしていくとか、そういうところはやっています。
nama
サーバーと通信するということで、テストはスタンドアロンのゲームよりかなり大変になると思います。テストの苦労話など伺えれば教えて下さい。
oka
通信切断とか、圏外になった時の対策とかですかね。
oka02
PCのオンラインゲームと違って通信環境が悪いので、エラーチェックとかしっかりやっておいてねという話は最初からしていました。
丸ノ内線とか、銀座線とか通信環境の悪いところを1周してゲームをテストしていたりした事もあります。
オンラインゲーム開発ばかりやっていたので、通信エラーを気にする事は自分にとっては普通でした。
nama
初期は図鑑がサーバー保存ではありませんでしたが(※初期は図鑑がローカル保存で、アプリを消すと図鑑データが消えていた)、このあたりはプログラム的な理由があったりしたのでしょうか?
oka02
最初、サーバーに保存するように設計していたのですが、リリース初日から想定を遥かに超えるアクセス数があり、それは嬉しかったのですがデータの保存量が多くなってしまって対応できなくなってしまって、非常に心苦しく思っていました。
miya
ユーザーさんの声が上がっているのは理解していまして、常に意識はしていました。
oka02
なので、プログラマーとしても新機能追加の裏でずっとタイミングを伺っていたところはあります。
そして最近、サーバーの方でようやく保存できるめどが立ちまして、無事実装できました。
miya
プログラマの努力が当然あるのですけど、ロードラを応援してくださる皆さんの声がサーバーリソースの確保にもつながったというのが大きいと思います。
nama
山本さんがその1でおっしゃっていた「素敵なサーバーを買ってもらうために頭をさげる」という、話ですね。
ロードラユーザーが増え、アクワイアの中でも大きなタイトルとなっていく中で、サーバーも確保できるようになった、ということでしょうか。
oka02
そういうことですね(笑)
このあたりはロードラプレイヤーの皆さんに対して申し訳なく思うと同時に、応援に本当に感謝しています。
nama
なるほど。
プログラマさんの努力はもちろんですけども、ユーザーの力がロードラを育てている面もあるのですね。個人的にも究極の疑問が解決してスッキリしました!
最後にロードラプレイヤーの皆さんに一言お願いします。
oka02
システムの改善と新仕様をいち早くお届けできるように今後も頑張っていきますので、応援よろしくお願いします。
あと、みなさんのお友達にもロードラを紹介してくださると嬉しいです(笑)
oka
自分を含めて、スタッフ全員ロードラが大好きなんです。
異常なほどのロードラ愛を見せているチームだと思うので、みなさんの期待に応えるための努力は惜しまず、どうしたらみなさんがもっと楽しんでいただけるのかをずっと考えているチームです。
今後も、もっと多くの方々に楽しんでいただけるように頑張ります。

クライアントプログラムは、仕様書などに沿ってやるだけではなく、演出やユーザーの快適さまで考えて提案し、ときにはディレクターとも戦う熱いお仕事だった。
記事では省かれた部分もあるが、会社で1番ロードラをプレイしているという岡崎さんの「ユーザー目線で、ゲーム体験をより良くしたい」という思いが、“新機能を追加しつつもクライアントの動作が軽くなっていっている”という形で反映されているのが印象的だった。

そして、ということでインタビューを終えたのだが…。

「トシさん、今回はロードラのデッキについて質問がありませんでしたが、岡崎は社内1ロードラをプレイしていて、バトル部分のプログラムをやっている強者です。
山本もかなり課金するぐらいハマっている1人なので、彼の口からロードラの攻略や遊び方を聞いて記事にしませんか?」

と、宮内ディレクターよりお言葉が。
ということで、プログラマーインタビューはいつもどおり前後編の予定だったところ、特別編を挿入。実際にロードラの内部を知っているプログラマーに、ゲームの攻略や遊び方を聞いてしまう禁断の記事だ!

その3も
yoro

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

攻略リンク:

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