この企画は、有名企業で活躍するエンジニアと杯を交わしつつ

酒の力を借りてホンネを探るという、かつて無かったインタビュー企画である。

このエントリーをはてなブックマークに追加

【小飼弾×KLab若手エンジニア】業務と関係なくても問題なし!?

KLabが実践する、エンジニアが自由に開発・発信できる環境づくりとは?

KLab(クラブ)株式会社

モバイルオンラインゲーム業界において数々の有名ゲームタイトルを手がける東証一部上場企業。有名アニメ・漫画やオリジナルキャラクターを用いたモバイルオンラインゲームを手がけ、国内はもちろん世界中のユーザーに向けて提供している。


こんにちは、小飼弾です。

有名企業のエンジニアさんにお酒を飲ませていろいろ聞き出すこの企画、第4回は、スマホを中心としたモバイルオンラインゲームで有名なKLab株式会社さんです。(過去の回はこちら)

六本木ヒルズという豪華な立地にあるKLabさんのオフィスに遊びに来たのはこれが初めてなので、とても楽しみ! 今回もお酒をたくさん持参しましたよ〜。お邪魔しまーす!

▲入り口にあった顔出しパネルにて、大量のお酒と一緒に。



まずはオフィス内を案内してもらいました。
リラックススペースには自動販売機がズラリ。テレビも完備で、まさにオアシスですね。

なんとギターも置いてありました! 誰か弾く人がいるのかな?
どうだろう、僕もなかなか似合うんじゃないかな?(笑)

そして何より一番羨ましいのは、六本木ヒルズから見下ろせるこの夜景だよね。東京タワーもばっちり見えるし、こんなところで仕事ができたらすごく気持ち良さそうだ!

さてさて、今回お話を伺うのは、エンジニアのこちらのお三方。新卒で入社したエンジニアさんなどお若い方ばかりなので、ここぞとばかりに突っ込んでいろいろ聞いちゃいましょう。

それでは、カンパーイ!

ゲストプロフィール

千葉幹正さん

2011年新卒入社。とにかくLinuxがやりたい。社内向け・社外向けのインフラ構築・運用を担当する。これまでのオンプレ運用に加え、クラウドを実線投入するためのベース環境を整えてきた。好きなお酒は、梅酒や果実酒。

李承益さん

2012年に新卒入社して以来、自社製ゲームエンジンのクライアントサイドの開発を担当。ゲームを作りたいという思いからKLabへと入社。お酒は何でも飲むが、ウイスキー(ロック)が特に好き。

中澤慧さん

2010年に中途入社。Android関連技術を中心に、サーバーからクライアントまでの幅広い領域を担当。ゲームタイトルを横断する開発部署で、未来へと繋がる新しい技術の芽の開発に取り組んでいる。好きなお酒は、もっぱらビール。

Webからネイティブへの移り変わりと、KLab社内の変化

— 小飼:李さんは自社製ゲームエンジンのクライアントサイドの開発をやっているとのことですが、御社の手がけるゲームエンジンは、異なるタイトルでも使い回すの?

— 李:Unityが多くて、自社エンジンを使っているタイトルは少ないですね。

— 小飼:そうなんですか。自社エンジンの上に乗っているデータを変えれば別のゲームになるというふうに、すごく使い回しやすそうですが。

— 李:Webの時代であればそうだったかもしれないのですが、今はそれだけでは全然うまくいかないんです。ネイティブアプリがメインになってきたことで、開発環境や手法もかなり変わってきています。

— 千葉:インフラシステムも、Web時代に使っていた環境とは大きく変わりました。ソーシャルゲームが大きく発展してきたときに、「頑張って更新してきた系統からようやく新しくした」という感じで、最近は結構変わってきていますね。

— 小飼:今回ぜひ聞きたかったのはそこで、Webからネイティブに変化してきたことで、KLab社内では実際にどんな変化があったのかということなんですが。

— 中澤:クライアントサイドの比重が圧倒的に上がったのはありますね。サーバー側では確実にデータベースにデータの読み書きを行う。当然ゲームを進行していくと、あるプレイヤーと他のプレイヤーの関連というのもあるので、それらがちゃんと整合するようにとか、大量のアクセスを受け、大量のデータの中から正しいものをちゃんと拾ってきて、かつハイパフォーマンスにやる。その辺の話に閉じていって、クライアント側でやることがかなり多くなりました。

— 小飼:昔は画面を書くことまでサーバーでやっていましたからね。そういったものを全部クライアント側に丸投げして、サーバーはデータを送りつけて受け取るだけ。というか、本来そうすべきなんですよね。けどそれによって、KLab社内ではどんな技術的な変化が?

— 李:今までWeb系のサーバサイドの開発をやってきた人たちがクライアントサイドの開発をやるようになりましたね。 でもやっぱり、Webと違って、スマホゲームは動作環境のバリエーションがすごく大きいのと、扱うツール、フレームワークや言語もいまいち定着していないので、PHPなどのLLだけ触ってきた人たちにとっては、「今までとは全く違う分野に挑戦する」という状況になっていたと思います。

— 小飼:李さん個人で言うと?

— 李:私の場合は、大学の頃から研究でOSをやってきたというバックグラウンドがありまして。なので何かあったら調べられるっていう感じで対応してきました。あと、今はゲームエンジンを扱っていますが、Luaを使って書いていて、「どう書けばうまくチームワークが回るか」という点をよく考えているので、その辺はWebの頃と違うのかな。

— 小飼:具体的に言うと?

— 李:Webの事業に入ったばかりの頃は、UI/UXが現在よりシンプルだったり、サーバサイド開発のみであったこともあり、現在のアプリケーションよりシンプルなシステム構成でした。当時はシンプルな分、スピード重視で現在ほど熟慮せずに設計をしていました。現在はクライアントサイドとサーバサイドの連携を考慮して設計・実装します。クライアントをちゃんと作っていくと、次第に「通信部分のエラーはこう共通化したほうが良いよね」みたいな話題がどんどん出てくる。最初の設計から「このサブシステムはこう作っていきましょう」っていう、アーキテクチャーをちゃんと見ることが重要になってきてるのは感じますね。

— 千葉:あとは、Webだとユーザー操作と通信部分が対になっていて、紙芝居的な設計になるけど、スマホ化によるUI/UXの進化で、根本的なサーバーサイドの設計も変わってきてますよね。

— 小飼:台本さえつければ、紙芝居は全部クライアントがやってくれるというのは、本来そうあるべきだったんだよね。ガラケーではできなかったことだけど。

— 千葉:紙芝居のサーバーサイドを作るのに慣れている人が多かったわけですが、ネイティブへの変化によって、Webアプリの設計・実装経験しかなかった人はなかなか苦労したみたいですね。

— 小飼:ただ、ネイティブと言ってもすごく度合いがあって、iOSの場合でいうとUnityで書いたってネイティブっていう人もいるし、Metal くらいやって初めてネイティブという人もいますよね。直にコードを実行するのか、JavaScript を実行するのか。要は、中でWebアプリを動かすのか、全部ネイティブなのかっていう。結構、根源的な違いがあるんですけどね。

— 中澤:ユーザーがブラウザを立ち上げて遊んでもらうようなアプリや、アプリ内でWebブラウザの技術を多く使うアプリっていうのは、今のKLabでは新規開発はしていないですね。既存タイトルで動いているものはありますが、新たにつくるゲームのメインパートについては、いわゆるネイティブなつくりのものがほとんどです。

— 小飼:特にサーバー屋さんはそうしたいですよね。CPUパワーのトータルをしてみれば、クライアントの方が圧倒的。だからお客さんの手元でできることはそこでやってもらうというのが、本当に自然な姿だと思います。

KLabでやる理由は、「好き勝手にコードを書かせてくれる」から

— 小飼:ところで、今の仕事の中で「ここが一番面白い」という点を一つだけ挙げるとしたら、どういうところでしょう?

— 中澤:好き勝手にコードを書いてお金をもらえること。それと、しっかりご飯を食べられることですかね。

— 小飼:いいですね。本当に好き勝手書いているんですか?

— 中澤:かなり好き勝手やってますね。新しい技術に何かしら興味を持つと、まず個人の時間であれこれ試してみて、気に食わないところは本家にプルリクエストを投げた後に、会社の一部のツールに導入してみたり。そういうことを割と日常的にやっています。個人的な興味っていう部分と仕事にそれを使うっていう点がすごくマッチしているので、本当に好き勝手やっている感覚です。

— 小飼:つまり業務命令がない?

— 中澤:残念ながらないんです。私が所属しているところが、どちらかというと「未来の技術への種まき」をするような部門ということもあって。

— 小飼:例えば、どんなことで好き勝手やっていますか?

— 中澤:今はゲームエンジンのプロジェクトをやっているんですが、当然エンジン単体では終わらなくて。いろんな周辺の機能があるわけですが、その中で特にエンジンや周辺ライブラリが安定していなかった頃って、よく手元でクラッシュしたり、謎の理由で端末上でパフォーマンスが出ないことがあったんです。なので社内向けにログデータを端末から吸い上げて処理し、何かしら分析するって仕組みが必要だったんですね。それを、技術としては「サーバーサイドをLinux上のMono環境で、C# のコードと ASP.NET+ServiceStackにMySQL で作る」という感じでやっていました。世界にもやっている人は1000人もいないような、超マイナーなエリアなんですけど(笑)

— 中澤:要は、自分が興味を持った C# やその周辺のASP.NETとかっていう技術を使って、Windowsを使わずにサーバーでうまくそれを動かすことをやりたかったんです。それが実際に社内の限られたエリアですけども実用できたし、その知見は今でも活きていて、すごく良かったですね。

— 小飼:でもそれって、中澤さんのチームが研究開発のチームだからできたと思うんですが、その「自由に好き勝手やっていいよ」という精神は全社的なものなの?

— 千葉:もちろんそれぞれのミッションがあるので全員がいつでも好き勝手やっているわけではないのですが、“ちゃんと自分のすべきことさえやっていれば” 自分次第で好きなことに取り組める環境だと思います。

— 中澤:社内の割と大きめのプロジェクトで使われているコード検証ツールが、なぜかHaskellで書かれている、ということがあって何でだろうと調べたら、やっぱりそれを書いた人がHaskell好きだったからという話もありました。

— 小飼:自由にやれることの良い部分もあると思うんですけれど、逆に誰もメンテナンスができない、みたいなことにはなりませんか? その辺はどう整備を?

— 中澤:小さめのツールであれば、誰も触れなくなったら作り直せばいいので。あと、最初から多数の人に使ってもらう想定で作るわけじゃなくて、「こんな自分用のツールを作ったから、良かったら使わない?」みたいな感じから始まることが多いんですよね。

社内に自然と根付く、技術を発信し共有する文化

— 李:けど、そういった少人数で使う想定のものが、なぜかいろんな人に使われるようになることは多くありますね。例えば、前のチームメンバーはゲームデータのフォーマットミスで悩まされていたとき、自分の作業をスムーズにするために手軽なチェックツールをRubyで作ったのですが、なぜかそれが結構使いやすいからと他の人も使い始めて。結局それが手順フローに組み込まれたことがあります。

— 小飼:そういう広がり方はよくするの?

— 李:結構ありますね。あとは「作るもの」と言っても、世の中にある車輪の再発明でもOK。プロジェクトでは車輪の再発明をしすぎると開発効率が悪くなりますが、個人で勉強するためだったら、むしろどんどんやって周りにも共有してと言われますね。

— 小飼:そういったチャレンジというか、作ったものを共有しようっていうアクションは奨励されているの? 何となく全社的に根づいた雰囲気なのか、それとも何かメッセージとして明文化されていたり?

— 中澤:技術発信しよう、というか「しなさい」に近いものはありますけど、それ以上のものは特にないですね。ただ自然と、何か良さげなもの作っている人を見かけたら「何でこれ発信しないの?」みたいには言われます。

— 千葉:CTOや偉い人だけじゃなくて、周囲の人も普通に言いますね。文化的にそれが受け継がれている感じです。明確に言語化されているわけではないですが、みんな違和感なくそれを感じています。

— 小飼:皆さん個人としては今までにどんな発信をしてきているの?

— 中澤:最近はちょっと少ないですが、去年は月に1回は外部で発表するなどの喋る機会を作っていました。いろんな資料がスライドシェアに雑に上がっていますよ(笑)他には技術系雑誌への記事執筆や技術同人誌への寄稿をしています。

— 千葉:僕の場合は、社内の勉強会ですかね。インフラ部会というものが毎週開催されていて、月に1回は誰かが好きなテーマで喋るのですが、そこで「障害が起きた時にメール以外でアラートを出せないか」っていう話をしましたね。最近だとKDDIさんのtwilio(ツイリオ)も出てきましたし、その辺りのAPIを使って「メールを受け取れなかったら電話します」というツールを作ったりしてみました。

KLabのエンジニア文化を支える、どぶろく制度という大義名分

— 小飼:アウトプットしようという文化を支える制度みたいなものはあるの?

— 李:どぶろく制度というものがありますね。がちがちの制度、というわけではないのですが、勤務中の1割の時間は、業務と全く関係ないことをしても良いというものです。

— 千葉:そういう制度があるので、業務中にちょっと席を離れていたり、完全に仕事と関係ないことをやっている人がいた時に、「何か作ってるんだろう」という許せる気持ちにはなりますね(笑)

— 中澤:「あ、今どぶろく中ね」みたいな、制度があることによって大義名分が生まれる感じですね。

— 小飼:どぶろくで食中毒に当たった人はいる?(笑)

— 中澤:それは結構いるんじゃないですかね。業務以外のことにハマって、一日中それをやってるみたいな。

— 小飼:それだったら個人だけで済むじゃないですか。それよりも、どぶろくを振舞ったら皆が「あー痛い」っていう状況になることは?

— 中澤:あるといえばありますね。そもそも、自社で作っているゲームエンジンが元々どぶろくスタートで、それによって苦労している李さんみたいな人がいるわけですけど(笑)もちろん自社エンジンならではの良いところもいっぱいあるんだけれど、問題が起きた時に世の中をどんなに漁っても、ドキュメントは自社のものしか出てこない。それを超える情報は自分自身でソースを見なきゃ分からない、ということがある程度の規模で起こるのは、ある種不幸なのかもしれないなと。

— 小飼:でも、皆が使えるものを作ろうとすると、往々にして誰も使いたがらないものができ上がるんだよね。エラーチェックだらけになって、あれはクリアしているか? これは大丈夫か? っていう条件が最初にずらっと連ねてあって、それを全部突破してようやく本来の機能に辿り着ける、みたいな。今のゲームエンジンの話でも、それが苦しめている部分はあるかもしれないけど、プラスの面も当然多いわけですよね。どぶろくから生まれたものが社内に良い影響をおよぼしている事例って、どんなものがありますか?

— 千葉:ゲームの1本をどぶろくで作ったという人が、確かいた気がします。

— 小飼:もうどぶろくじゃない(笑) もはや本業ですね。

— 千葉:個人とか2~3人でやり始めたものが発展していくケースはあります。むしろゲームの場合、初めから大人数で作っていく方がかえって難しいと思うんですよね。

— 小飼:なるほど。それが大企業のコアビジネスになっているというのも、面白い点ですね。

守るだけじゃない、アグレッシブなインフラの人間がいてもいい

— 小飼:では最後に、どのようなエンジニアが KLabという会社に合うか、教えてください。

— 千葉:おそらくどこの会社でも同じだと思うんですけど、常に指示待ちの人は、あまり合わないのかなと思います。入社してから「あれやってこれやって」と細かな事を言われたことがない気がして。小さな事でも自分から仕事を見つけて動いていけるかどうかだと感じています。

— 小飼:でも、サーバーっていうのは、ネットワークの定義ではまさに「指示待ち」だよね。だから使う方としては、インフラが指示を待たないっていうのは結構怖いと思うんだけれども。

— 千葉:もちろん、全てを自分から取り出すわけではないですが。もし問題があった時は、自分からどんどん突き進んで解決していく姿勢はほしいと思いますね。

— 小飼:どんな無茶な要求をしても答えるけれど、自分の方からは出さないっていうのがある意味、理想のサーバーではありますよね。

— 千葉:攻める(?)に少し近い話だと、例えばここ1年で、BeansTalk、RedisSentinel、RedisClusterに興味を持つことがあって、どぶろく制度を使って遊んでいました。うまく使えそうな機会があったので、BeansTalk、RedisSentinelに関しては本サービス、RedisClusterに関しては、触っているのは僕だけですが(笑)、社内環境へ入れ込んでみたり。結果的に失敗したものや、実用出来ていないものも有りますが、皆を納得させる材料さえあれば、そういったチャレンジに対してとても寛容な空気が気に入っています。

— 小飼:「指示を要求される」事が多いのに、攻められるインフラエンジニアってすごいですね。中澤さんはどうですか?

— 中澤:ありきたりですが、「新しいことをどんどん取り入れていける人」ですかね。今KLabは完全にモバイルゲームの会社ですが、数年後には全然違うことをやっているかもしれません。それこそ、前はPHPをゴリゴリ書いていたのに今はUnityで3Dプログラムをやっている人っていうのは、他の技術トレンド・サービストレンドが来ても生きていけるはずだし、むしろ重宝されるはず。

— 小飼:突き詰めることを求めたりはしない?

— 中澤:いろんなことをやりたい人って、1つをひたすらやれって言われると、すごくストレスを受けると思うんです。私自身がそうで、すごく中途半端を極めているので(笑)

— 小飼:それはうまい言い方ですね。最後に、李さんはどうでしょう?

— 李:極端な言い方ですが、無人島に流されても手元にあるもので生活していけるタイプの人ですかね。

— 小飼:その例えのこころは、サバイブできないと難しいってことですかね。10言わないと10動かない人では厳しい、と?

— 李:そうですね。例えば、世の中のエンジニアはほとんどが問題に当たったらググったり誰かに聞いたりして解決していくと思うんですが、「ググってヒットしなかったらお手あげ」ではなくて、自分でちゃんと検証して問題解決できる人が、うちの会社ではヒーローになりやすいのかなと。

— 小飼:なるほど。でも、本当に無人島に流されても平気な人というのは、六本木ヒルズのオフィスに来ますかね?

— 中澤:六本木をサバイブするのって、無人島を生き抜くのと同じくらい大変なんですよ。

— 全員:(笑)

インタビュー後記

Webからネイティブという大きなトレンドの変化の中で、KLabが的確に技術対応していけた要因の1つは、自発的(で自由奔放?)に動けるエンジニアの存在が大きそうですね。またそんなエンジニアの行動を自然と生み出す文化もさすが。若手のエンジニアさんと話すのも、勉強になってすごく楽しかった!

モバイルオンラインゲーム業界の旗手として、業界をリードし続けてきたKLab。その成長の秘密は、エンジニア一人ひとりの「やりたいこと」を尊重し、応援する風土があるからなのかもしれないね。今、新たなスマートフォンゲームの開発に携わるエンジニアを大募集しているというから、我こそはという方はぜひ求人情報もチェックしてみてはどうだろう?

この企業の求人情報をチェックする

このエントリーをはてなブックマークに追加

「飲み会で探る
エンジニアのホンネ」
バックナンバーもチェック!

インタビュアー紹介

小飼弾

プログラマ、ブロガー、実業家。コンピューターネットワークの構築・機材販売、文書翻訳、コンサルティング業務などを行なう株式会社ディーエイエヌの代表取締役。Perl5.8の開発に携わったことでも知られる。オン・ザ・エッヂ元取締役。

このエントリーをはてなブックマークに追加

適職をディグる! ジョブリシャス診断(適職診断)
履歴書の添削を受ける

「知っトク」メール

基本のノウハウだけでなく、市場動向も踏まえた「今、知っておきたい」転職情報を読めるメールマガジンです。毎週月曜日配信です。

新着求人メール

新着求人の中から、あなたの希望条件に合った求人やお勧め情報をお届けします。
毎週2回、更新日(火曜日・金曜日)に配信です。

  • マイナビ転職 グローバル
  • マイナビ転職 エンジニア求人サーチ【IT】
  • マイナビ転職 エンジニア求人サーチ【ものづくり】
  • マイナビ転職 女性のおしごと