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

サーバーサイドエンジニアのマネージャーが語る「知識欲」と「論理的思考」
PEOPLE

サーバーサイドエンジニアのマネージャーが語る「知識欲」と「論理的思考」

K.S

サーバーサイドエンジニア/マネージャー

大学卒業後、IT系企業でシステムエンジニアの仕事に約5年携わった後、ゲーム業界に転身。ゲーム制作会社に4年勤務した後、2015年9月コロプラに入社。VRチームに配属され、数々のVRゲームの制作に携わり、現在はサーバーサイドエンジニアチームのマネージャー。

大学時代にプログラミングにハマり、技術を高めるために地元を離れてシステムエンジニアに

大学時代はゲームセンターに通い詰めていて、プログラミングを本格的に始めたのは4年生になってからなんです。理工系の大学だったんですが、ロボットを遠隔操作するシミュレーターを作ることになり、それがプログラミングにハマったきっかけでした。シミュレーターでロボットを動かす感覚がゲームに近くて楽しかったんですね(笑)

それからはひたすらプログラミングに没頭する毎日です。レンダリング処理をしたり、ちょっとしたシューティングゲームを作ってみたりしていましたね。自作PCをカスタムするようになったんですが、なるべく安価に済ませたい。無料のOSをいろいろ試しているうちに、ますますプログラミングにハマっていきました。

その頃からプログラミングの仕事に就きたいと思うようになったんですけど、地元には自分が希望するような仕事がほとんどなかった。これはもう上京するしかないという結論に至り、大学卒業後、東京の小さな会社でシステムエンジニアの仕事に就いたんです。

そこでは映像の伝送系システムをはじめ、サーバー構築や業務用アプリケーション、顧客管理システムやカーナビ用システムなど、いろんなプログラムを書きましたね。もともとプログラミングの技術を高めたいという気持ちが強かったので、いろんなチャレンジができていい経験になりました。

その後、ゲーム制作会社に転職しました。大手ゲームメーカーの依頼でゲームを作るデベロッパーの会社です。自分が作ったものをもっと多くの方に使ってほしいと思ったんですね。

今はサーバーサイドエンジニアとして仕事をしていますが、当時の自分はサーバーサイドとクライアントサイドという区別なく仕事をしていました。基本的には違う性質の仕事なので分けたほうがいいんでしょうけど、両方そろってひとつのアプリケーションだと考えていたので、全体の構成を見ながら幅広く仕事がしたかったんですね。

Colopl_Be-ars_pe_K.S2_800_533_3.jpg

新しい領域として試行錯誤しなければいけないVRゲームは、まさに自分が求めていた仕事だった

当時はフィーチャーフォンのゲームからスマホゲームへの移行期でした。グラフィックが大幅に向上したり、ソーシャルゲームにWebの技術が取り入れられたりするなど、一番ホットな技術として盛り上がっていたんです。

あるとき、『Unite』(※Unityのカンファレンス)にコロプラのトップエンジニアが登壇して、『白猫プロジェクト』のサーバーサイドの仕組みを発表していたんです。ほかにもVRの展示もしていて、「最先端なことをやってるな」と思ってコロプラに興味を持ちました。もともと『白猫プロジェクト』のヘビーユーザーだったこともありますけど(笑)。

その後、セミナーに参加したことがきっかけで面接を受けることになり、入社が決まりました。自分はサーバーとクライアントの両方できるのでさまざまな職種を検討したんですが、最終的にサーバーサイドを選びました。担当できる領域が広く、「いろんなことができそうだ」と思えたからです。

入社後はVRチームに配属されました。ちょうど『VR Tennis Online』で通信対戦の機能を作るためにサーバーサイドエンジニアが必要とされていたんです。通信に関しては、ソーシャルゲームに比べるとVRはトラフィック量がそれほどでもないので問題なく実装できましたが、クライアントサイドの面でやるべきことがたくさんあったので、両方の仕事をやるようにしていました。

VRは新しい領域なので、当時は最適化されていない部分が多く、いろいろなことを試さなければいけない状況でした。世界中のデベロッパーがVRに挑戦して知見を蓄積している段階で、もうしばらく時間がかかるかもしれませんが、数年後に大きな市場になる可能性を秘めた、未来を感じる仕事ができて本当によかったと思っています。

Colopl_Be-ars_pe_K.S2_800_533_1.jpg

エンジニアには、手を動かしながら学んでいくタイプと、知識を深めてから手を動かす2つのタイプがある

エンジニアには2つのタイプがあると思っています。ひとつは、すぐに手を動かして作りながら学んでいくタイプ。エンジニアには"とりあえず作って試してみる"という文化があるんですけど、自分にはちょっと合わない。もうひとつは、まさに私のタイプなんですが、技術的な理解を深めてから手を動かすタイプです。わからないことがあると、それが気になって手が止まってしまうんですよね。

これはどちらがいいという話ではなく、人によって特性があって、ひたすら手を動かしたほうが伸びる人もいれば、しっかり知識を積み上げてから作業に取りかかったほうが伸びる人もいる。新人を教育する際は、どちらのタイプかを見て教えるようにしていますね。

自分の場合は、必ず本を1冊以上読んでインプットして、全体を把握してから作業のアウトプットに入ります。休みの日はじっくり本を読むのにいい時間という感覚になっていて、もはや知識を吸収することが趣味ですよね(笑)。

だけど、技術というのは具体的に使えなければ意味がない。技術を鍛えつつも"何のために使うか"を見極めるようにしています。いくら高度な技術でもユーザーさまが求めるコンテンツになっていなければ意味がないし、全体の最適化を考えたとき、優先されない場合もあります。必ず全体を見て、そのコンテンツにとって"最適な技術は何か"を考えて仕事をするようにしていますね。

ところで私はサーバーサイドエンジニアチームのマネージャーとして採用の選考にも携わっており、面接ではコンピューターサイエンスの基礎的部分の理解を見るようにしています。優れたサーバーサイドエンジニアとは、いわば問題解決能力が高い人なんですよね。そのためには基礎の土台ができているほうがいい。
ただしそれは最低限あってほしいということで、それ以上に重要になるのが、何か問題が起きたときに"論理的に考えて解決策を導き出せるか"です。基礎的な理解は、そのための引き出しのひとつなんですよね。

問題解決力を身につけるためには現場で経験を積むことに尽きますが、コロプラでは担当できる領域も広く、かつ技術共有の機会も多いので、エンジニアとして成長しやすい環境が整っていると思います。

Colopl_Be-ars_pe_K.S2_800_533_2.jpg