コロプラ・ベアーズ 面白いものを作りたい仲間が集まるベアーズ

コロプラの事業に貢献するR&Dとは? 基盤開発エンジニア座談会
TEAM

コロプラの事業に貢献するR&Dとは? 基盤開発エンジニア座談会

Nobu

基盤開発グループ
マネージャー

エンジニアリング本部 開発推進部

Masa

基盤開発グループ
第2チームリーダー

エンジニアリング本部 開発推進部

Tomi

基盤開発グループ
第1チームリーダー

エンジニアリング本部 開発推進部

コロプラの「基盤開発グループ」は、ゲーム制作に共通の php をはじめ Node.js、Go、C#、kotlin、swift といった様々なプログラミング言語を用途に応じて使用しながら、スマホゲームで共通して利用されるプラットフォームを作ったり、リアルタイムオンラインゲームのためのネットワークエンジンを作ったりしている少数精鋭のチームです。
ゲームアプリに新機能を提供するのはもちろん、社内のエンジニアの業務が効率化されるように、最新の技術を交えながら開発環境を整えるのも大事な仕事になります。

多くの人にストレスなく使われるものを作るためには、世の中の流れや現場の声を汲み取る能力が必要なのではないか......と思って話を聞きに行ったところ、ちょっと異色のチームで、こちらの想像を超えたところへ会話が展開していきました。

「エンジニアですから、技術的な知識があるのは言うまでもないことなので」という前提のもと、チームを代表する3名が語ったこととは?

スマホゲーム業界における
基盤開発エンジニアの仕事とは

まずは入社時期と、入社理由から教えていただけますか。

Masa 私は2010年、コロプラがまだ100名に満たないくらいの規模で、フィーチャーフォンが主流だった時代に入社しました。ちょうど会社としてスマホ向けのアプリを作っていこうと思っているタイミングに居合わせまして、自分が開発に携わったスマホアプリを面接で見ていただいたのを覚えています。

Tomi 僕は前職がB to Bの会社だったので、B to Cの会社に入りたいと思っていろんな業界を見ていたんですが、まず一次面接がMasaさんで、社内の雰囲気も良くて、ここで働きたいなと思ったので入社しました。2015年の7月だったと思います。

Nobu 僕はいつ入社したか覚えていないんですけど、菅井さん(現CTO)に誘われて入社しました。たしか、「リアルタイムのゲームを作っているんですが、興味ないですか」と聞かれて、「リアルタイムに興味はあるけど、ゲームにはまったく興味がないですね」と答えたんですが......もう3年くらいいるような気がします。
te_20190612_0610_K7D1073.jpg

「ゲームにまったく興味がない」と言い切るエンジニアは、コロプラでは珍しいですよね。

Nobu ただ僕、前職も前々職もゲームに関連する開発会社だったんですよね。これだけ大きなトラフィック量とそれに対応するリアルタイムの開発ができるところって限られているので......改めて振り返ると、この業界に7~8年います(笑)。

Tomi 業界歴の話ですと、この中では僕が一番短いですね。前職は組込業界の独立ベンダー系ソフトウェア会社で受託・常駐によるシステムエンジニアを9年ほどしていまして......ここが2社目ですから。

Masa それでいうと私もこの会社に8~9年いますけど、ゲームの基盤部分の開発を担当してきているので、実際にお客さまの目に触れるゲームの部分を作っているわけではないんですよね。

コロプラのエンジニアと言っても、ちょっと特殊なチームのようですね。みなさんの業務内容を具体的に教えていただけますか。

Masa ざっくり言うと、アプリで必要になる "ゲーム以外の部分" 、たとえばユーザー認証や位置登録、協力バトル、アイテム購入、プッシュ通知といったところのシステム開発をしています。それぞれ新作ゲームをリリースするたびに必要になるんですが、共通化できる部分を僕たちが担当することで、各ゲームの開発チームが本来のゲーム作りに専念できるようにしているんです。

Tomi あと定常業務ではありませんが、新作をリリースする際にアプリ申請するときのサポートなどもしていますよね。いろんなゲームに共通するプラットフォームやネットワークエンジンも、このチームで作ってきたものが多いです。

Nobu だいたい言われたと思いますが、みなさんはゲームアプリのコードも見ていますよね。逆に、見ないのは僕くらいでしょうか。

Masa はい、Nobuさん以外は全員見ていますね。ただ、Nobuさんは......それでいいんだと思います。
te_20190612_0610_K7D0996.jpg

と言いますと?

Nobu 以前、ある新作のリアルタイムエンジンを作ったんですけど、リリース前にみんなでテストプレイをしたら僕があまりにヘタすぎて、「これではテストにならないです」と言われたくらいゲームができないんです(苦笑)。そこに僕が時間をかけても、誰のためにならないと思いました。

Masa ほかのエンジニアがスマホを2台並べて両手でプレイしていたんですが、その人のほうが強かったですよね(笑)。

Tomi でもその新作におけるNobuさんの活躍はすごくて『コロプラアワード2016』※のテクノロジストMVP賞を受賞されていましたよね。
(※ その1年で最も活躍した人を職種や部門ごとに表彰するコロプラ社内最大のアワード)

なんだかめちゃくちゃな話ですが、Nobuさんは何をされたんでしょう?

Masa 簡単に言うと、そのゲームの肝とも言える動き、リアルタイムのレスポンスを格段に速くする仕組みを作られたんです。

Nobu あのときは「こういうリアルタイムエンジンを作ります」と宣言してから2か月くらい、それしか作らなかったですね。ただ、実際にゲームに組み込んだのはほかの方ですし、受賞は申し訳ないくらいでした。それから1年半くらいかけて、汎用性の高いリアルタイムエンジンを作ることにしました。

リアルタイムエンジンが重要な理由と
「事業に貢献するR&D」とは?

時間をかけて、汎用性の高いリアルタイムエンジンを作った理由を教えていただけますか。

Nobu "これからのゲーム業界で、リアルタイムの仕組みが整っていない会社は生き残れないだろう" と予測していたからです。一方で、それを作れるゲーム会社って日本ではまだ少ないので、作れば武器になると思いました。コロプラは意思決定が早く、根幹のシステムにも手を付けられる会社なので、実現できたんですね。

Masa そして今、コロプラのいろんなゲームで使われていますよね。

Tomi リアルタイム性のあるゲームではほぼ使われていると思います。

基盤開発エンジニアには、"今後、ゲーム業界で求められる技術" を想像する力が求められるんですね。

Nobu 世界におけるゲーム業界の流れを見ていないとダメですね。リアルタイムエンジンに関して言うと、日本ではまだそれほど優先度が高くないんですが、世界の市場を見ると絶対的に重要です。仮に「日本では流行らない」と言われたとしても、それは「今の日本」の話でしかないんですよね。

Masa あと、コンシューマーゲームで流行っているものはいずれスマホゲームでも求められる、という傾向もありますよね。

Nobu ありますね。ただ、スマホゲームにおけるリアルタイムエンジンの技術は特殊な作り方になるので、そこは新たなシステムを構築していく必要があります。

そういった "今すぐ業務で必要なもの" ではなく、"これから世の中で必要とされるであろうもの" って、ある意味、R&D(研究開発)の領域ですよね。

Tomi 社内では「事業に貢献するR&D」という言い方をされていますね。定常業務をする中で、"こんなツールがあったらいいのでは" というものが思い浮かぶわけですけど、そのすべてを形にするわけではなくて、"これを作ったら、社内のいろんなチームで使われるだろう" というものをみんなで選んで取り組むんです。

Masa 使われないものを作っても、仕方がないですしね。

Nobu ゲーム開発の現場から「作ってほしい」と言われてから作るのではなく、こちらから「こんなのどうですか」と言えるようにしたいと思っています。

Masa たぶん、重要なのはバランスなんですよね。進行中のプロジェクトにぴったり合わせてツールを作ると、仕様変更があったときなどに使えなくなってしまうので......こちらはある程度、汎用性のあるものを作るほうが使ってもらいやすくなるんじゃないでしょうか。

Nobu それはあると思います。あと、これまで作ってきたツールに関して言うと、「これはあの技術に長けているTさんの発案。あれはゲームに詳しいHさんの発案」というふうに、それぞれの人の得意分野が生きているんですよね。素晴らしいことだと思います。

Tomi その分野に興味がある人たちでチームを組んで開発できるので、楽しいですよね。
te_20190612_0610_K7D0991.jpg

なんとなく個人作業をされているようなイメージがあったんですが、チームワークが多いんですか。

Masa ゲームのプロジェクトと比べると、みんなで連携して作業することは少なくて、個人作業が多いですよ。最初に話し合いをして、基本的な設定についてのコンセンサスを取った上で分担する感じです。

Nobu ただ、属人化を避けるために、コードレビューは大事にしていますよね。いつも3名くらいの他者に、ロジックまで理解したレビューをしてもらうようにしています。

業務で大事にしていることと、
"これだけは言っておきたい" こと

Nobuさんは以前のインタビューでも「美しいコードを書きたい」と言っていましたよね。

Nobu 個人的な見解ですが、100人のエンジニアが書いても同じ人が書いたように見えるようであってほしいと思っています。アルゴリズムや計算といったロジックの部分は人それぞれ考え方が違うので個性が出ていいと思いますけど、他のエンジニアが編集するときに辛くなるようなことがないように、プログラミング言語ごとのルールは大事にしています。

Masaさんも、業務で大事にされていることがあったらお話しいただけますか。

Masa チャット(Slack)で社内の人にお願いや相談をするときは、ちょっと長くなるにしても順を追って、目的も含めて書くようにしています。短い言葉で伝わる作業ならいいんですけど、ものによっては相手が意図していることが正確にわからなくて、確認作業が増えてしまうこともあるので、そうならないように気をつけています。

Nobu ......見習います。

一同 (爆笑)

Tomiさんも、業務で大事にされていることがあったらお話しいただけますか。

Tomi 日々、社内のいろんな方から質問が来るのですが、レスポンスはできるだけ早くしようと思っています。相手が待っているだろうな、と思うので。

Nobu ......見習います(苦笑)。

みなさんのキャラクターがわかってきたように思います。そろそろ終わりの時間が近づいてきましたので、最後に "これだけは言っておきたい" ということをお話しいただけますか。

Nobu あの、そこに靴下が落ちていますよ! 子供の。

Masa 違います、電源コード(を床にしまうため)のフタですよ。

Nobu ああ、そうでしたか。すみません、こんなこと言って。"Masaさんの靴下じゃないしな" って思ったんですけど。

Tomi あの、質問は、"これだけは言っておきたい" ことでしたよね......?

一同 (爆笑)

楽しそうで、いいですね。

Tomi はい。楽しくて、いいチームですよ。

Nobu 本当ですか! それ心配していたんですよ。僕ランダムにいろんなこと喋っちゃうので、みなさんのストレスにならないかなって......わからない言葉※ があると、どんどん聞きますし。
(※ Nobuさんは海外に長く住んでいたため、日本語の意味をときどきチームメンバーに確認します)。
te_20190612_0610_K7D0986.jpg

Masa 大丈夫ですよ。逆に静かだと、業務のことも話しづらくなっちゃうので。

Tomi 僕も知っていることに関しては答えますけど、やらなきゃいけない作業があるときは聞いていないので、大丈夫です。Nobuさんの哲学の話とか、面白いと思っていますよ。

Nobu それは良かったです。Tomiさんは真面目な方で、メリハリがありますよね。Masaさんは文学が好きで、いつもいろんなことを教えてもらっています。

なるほど......では真面目なTomiさん、"これだけは言っておきたい" ことをお願いします!

Tomi 採用メッセージですよね? えーと、ここは自由で......自分が作りたいものがあれば、ちゃんと作れる環境だと思います。ただ、"教えてもらう姿勢" ではなく、"自分の力で成長する力" は必要かなあと。僕も入社当初はiOSとかMacとか一切触ったことがなかったんですけど、自分で学んで今に至りますので。

Masa たしかに、学び方は知っていてほしいですね。何か新しいことをやるときに、自分で吸収してできるようになっていく力は必須だと思います。
te_20190612_0610_K7D0992.jpg

Nobu 僕らのチームではそれができないと、どうにもならないですよね。あとは自分の意見がしっかりしている、やりたいことがある方に来ていただけるといいなと思います。

Masa なんとか、まとまりましたね。

Tomi まとまったんでしょうか。

Nobu 僕はもう少し真面目に話すほうが良かったかもしれないと思い始めています。

チームのありのままを伝える企画なので、大丈夫ですよ! 今日はありがとうございました!!