いった様々なプログラミング言語を用途に応じて使用しながら、スマホゲームで共通して利用されるプラットフォームを作ったり、リアルタイムオンラインゲームのためのネットワークエンジンを作ったりしている少数精鋭のチームです。ゲームアプリに新機能を提供するのはもちろん、社内のエンジニアの業務が効率化されるように、最新の技術を交えながら開発環境を整えるのも大事な仕事になります。多くの人にストレスなく使われるものを作るためには、世の中の流れや現場の声を汲み取る能力が必要なのではないか......と思って話を聞きに行ったところ、ちょっと異色のチームで、こちらの想像を超えたところへ会話が展開していきました。「エンジニアですから、技術的な知識があるのは言うまでもないことなので」という前提のもと、チームを代表する3名が語ったこととは?スマホゲーム業界における基盤開発エンジニアの仕事とはまずは入社時期と、入社理由から教えていただけますか。私は2010年、コロプラがまだ100名に満たないくらいの規模で、フィーチャーフォンが主流だった時代に入社しました。会社としてスマホ向けのアプリを作っていこうと思っているタイミングに居合わせまして、自分が開発に携わったスマホアプリを面接で見ていただいたのを覚えています。Cの会社に入りたいと思っていろんな業界を見ていたんですが、まず一次面接がMasaさんで、社内の雰囲気も良くて、ここで働きたいなと思ったので入社しました。2015年の7月だったと思います。僕はいつ入社したか覚えていないんですけど、菅井さん(現CTO)に誘われて入社しました。「リアルタイムのゲームを作っているんですが、興味ないですか」と聞かれて、「リアルタイムに興味はあるけど、ゲームにはまったく興味がないですね」と答えたんですが......もう3年くらいいるような気がします。「ゲームにまったく興味がない」と言い切るエンジニアは、コロプラでは珍しいですよね。僕、前職も前々職もゲームに関連する開発会社だったんですよね。これだけ大きなトラフィック量とそれに対応するリアルタイムの開発ができるところって限られているので......改めて振り返ると、この業界に7~8年います(笑)。業界歴の話ですと、この中では僕が一番短いですね。前職は組込業界の独立ベンダー系ソフトウェア会社で受託・常駐によるシステムエンジニアを9年ほどしていまして......ここが2社目ですから。それでいうと私もこの会社に8~9年いますけど、ゲームの基盤部分の開発を担当してきているので、実際にお客さまの目に触れるゲームの部分を作っているわけではないんですよね。コロプラのエンジニアと言っても、ちょっと特殊なチームのようですね。みなさんの業務内容を具体的に教えていただけますか。ユーザー認証や位置登録、協力バトル、アイテム購入、プッシュ通知といったところのシステム開発をしています。それぞれ新作ゲームをリリースするたびに必要になるんですが、共通化できる部分を僕たちが担当することで、各ゲームの開発チームが本来のゲーム作りに専念できるようにしているんです。あと定常業務ではありませんが、新作をリリースする際にアプリ申請するときのサポートなどもしていますよね。いろんなゲームに共通するプラットフォームやネットワークエンジンも、このチームで作ってきたものが多いです。だいたい言われたと思いますが、みなさんはゲームアプリのコードも見ていますよね。逆に、見ないのは僕くらいでしょうか。はい、Nobuさん以外は全員見ていますね。Nobuさんは......それでいいんだと思います。以前、ある新作のリアルタイムエンジンを作ったんですけど、リリース前にみんなでテストプレイをしたら僕があまりにヘタすぎて、「これではテストにならないです」と言われたくらいゲームができないんです(苦笑)。そこに僕が時間をかけても、誰のためにならないと思いました。ほかのエンジニアがスマホを2台並べて両手でプレイしていたんですが、その人のほうが強かったですよね(笑)。その新作におけるNobuさんの活躍はすごくて、『コロプラアワード2016』※のテクノロジストMVP賞を受賞されていましたよね。簡単に言うと、そのゲームの肝とも言える動き、リアルタイムのレスポンスを格段に速くする仕組みを作られたんです。あのときは「こういうリアルタイムエンジンを作ります」と宣言してから2か月くらい、それしか作らなかったですね。実際にゲームに組み込んだのはほかの方ですし、受賞は申し訳ないくらいでした。それから1年半くらいかけて、汎用性の高いリアルタイムエンジンを作ることにしました。リアルタイムエンジンが重要な理由と「事業に貢献するR&D」とは?時間をかけて、汎用性の高いリアルタイムエンジンを作った理由を教えていただけますか。予測していたからです。一方で、それを作れるゲーム会社って日本ではまだ少ないので、作れば武器になると思いました。コロプラは意思決定が早く、根幹のシステムにも手を付けられる会社なので、実現できたんですね。今、コロプラのいろんなゲームで使われていますよね。リアルタイム性のあるゲームではほぼ使われていると思います。想像する力が求められるんですね。世界におけるゲーム業界の流れを見ていないとダメですね。リアルタイムエンジンに関して言うと、日本ではまだそれほど優先度が高くないんですが、世界の市場を見ると絶対的に重要です。仮に「日本では流行らない」と言われたとしても、それは「今の日本」の話でしかないんですよね。あと、コンシューマーゲームで流行っているものはいずれスマホゲームでも求められる、という傾向もありますよね。スマホゲームにおけるリアルタイムエンジンの技術は特殊な作り方になるので、そこは新たなシステムを構築していく必要があります。ある意味、R&D(研究開発)の領域ですよね。社内では「事業に貢献するR&D」という言い方をされていますね。いうものをみんなで選んで取り組むんです。使われないものを作っても、仕方がないですしね。ゲーム開発の現場から「作ってほしい」と言われてから作るのではなく、こちらから「こんなのどうですか」と言えるようにしたいと思っています。重要なのはバランスなんですよね。進行中のプロジェクトにぴったり合わせてツールを作ると、仕様変更があったときなどに使えなくなってしまうので......こちらはある程度、汎用性のあるものを作るほうが使ってもらいやすくなるんじゃないでしょうか。それはあると思います。あと、これまで作ってきたツールに関して言うと、「これはあの技術に長けているTさんの発案。あれはゲームに詳しいHさんの発案」というふうに、それぞれの人の得意分野が生きているんですよね。素晴らしいことだと思います。その分野に興味がある人たちでチームを組んで開発できるので、楽しいですよね。なんとなく個人作業をされているようなイメージがあったんですが、チームワークが多いんですか。ゲームのプロジェクトと比べると、みんなで連携して作業することは少なくて、個人作業が多いですよ。最初に話し合いをして、基本的な設定についてのコンセンサスを取った上で分担する感じです。属人化を避けるために、コードレビューは大事にしていますよね。いつも3名くらいの他者に、ロジックまで理解したレビューをしてもらうようにしています。ことNobuさんは以前のインタビューでも「美しいコードを書きたい」と言っていましたよね。個人的な見解ですが、100人のエンジニアが書いても同じ人が書いたように見えるようであってほしいと思っています。アルゴリズムや計算といったロジックの部分は人それぞれ考え方が違うので個性が出ていいと思いますけど、他のエンジニアが編集するときに辛くなるようなことがないように、プログラミング言語ごとのルールは大事にしています。Masaさんも、業務で大事にされていることがあったらお話しいただけますか。チャット(Slack)で社内の人にお願いや相談をするときは、ちょっと長くなるにしても順を追って、目的も含めて書くようにしています。短い言葉で伝わる作業ならいいんですけど、ものによっては相手が意図していることが正確にわからなくて、確認作業が増えてしまうこともあるので、そうならないように気をつけています。......見習います。(爆笑)Tomiさんも、業務で大事にされていることがあったらお話しいただけますか。日々、社内のいろんな方から質問が来るのですが、レスポンスはできるだけ早くしようと思っています。相手が待っているだろうな、と思うので。......見習います(苦笑)。みなさんのキャラクターがわかってきたように思います。いうことをお話しいただけますか。違います、電源コード(を床にしまうため)のフタですよ。すみません、こんなこと言って。(爆笑)楽しそうで、いいですね。楽しくて、いいチームですよ。それ心配していたんですよ。あると、どんどん聞きますし。Nobuさんは海外に長く住んでいたため、日本語の意味をときどきチームメンバーに確認します)。逆に静かだと、業務のことも話しづらくなっちゃうので。僕も知っていることに関しては答えますけど、やらなきゃいけない作業があるときは聞いていないので、大丈夫です。Nobuさんの哲学の話とか、面白いと思っていますよ。Tomiさんは真面目な方で、メリハリがありますよね。Masaさんは文学が好きで、いつもいろんなことを教えてもらっています。えーと、ここは自由で......自分が作りたいものがあれば、ちゃんと作れる環境だと思います。僕も入社当初はiOSとかMacとか一切触ったことがなかったんですけど、自分で学んで今に至りますので。たしかに、学び方は知っていてほしいですね。何か新しいことをやるときに、自分で吸収してできるようになっていく力は必須だと思います。僕らのチームではそれができないと、どうにもならないですよね。あとは自分の意見がしっかりしている、やりたいことがある方に来ていただけるといいなと思います。なんとか、まとまりましたね。まとまったんでしょうか。僕はもう少し真面目に話すほうが良かったかもしれないと思い始めています。