LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog

Blog


【Team & Project】 LINE GAMEの基盤プラットフォーム開発・GAME SDKの開発を担当しているチームを紹介します

LINEの開発組織のそれぞれの部門やプロジェクトについて、その役割や体制、技術スタック、今後の課題やロードマップなどを具体的に紹介していく「Team & Project」シリーズ。 

ゲームの基盤プラットフォーム及び関連システムやクラウドプラットフォーム開発・サービス、 LINE GAME への技術支援及び運営をしているゲームプラットフォーム開発室の中から、今回は、GAME SDKなどを担当しているゲームクライアント開発チームを紹介します。 

Choi Younghoと Lee Seonuにゲームプラットフォーム開発室全体の取り組みについて、そしてYamazaki Goにゲームクライアント開発チームの話を聞きました。 



―― まず、自己紹介をお願いします。 

Choi:2012年からゲームプラットフォーム組織に所属し、LINE GAME立ち上げから携わって今に至ります。 Senior Manager (室長)として部署の方向性の決定やメンバー管理など、組織の全般的な業務をマネージメントしています。  

Lee: 私は2013年からゲームプラットフォーム組織で働いています。 現在は、Deputy Senior Manager (副室長)としてゲームプラットフォームの全般的なArchitectureの設計、サーバー開発チームのチーム長を担当しています。

Yamazaki:2018年3月に中途入社しました。現在まで、 LINE GAME のクライアント(SDK)開発を担当しています。  



―― みなさんがLINEに入った理由を教えてください。 

Choi:私は前職、ゲーム関連の会社に勤めていたのですが、当時モバイルゲームに大変興味がありました。LINEはゲームプラットフォームの開発は始めていなかったのですが、LINEがモバイルゲームをすれば絶対に成功すると確信を持っていました。また、LINEがゲームを始めることも知っていたので、誰も取り組んでいないゲームプラットフォームを作る業務に取り組めることにとても興味がありました。また、韓国から日本に来てLINEならではの大規模プロダクトの処理や 優秀な技術を学んでみたいと思ったからです。 

Lee:私は元々、韓国の他のゲーム会社でモバイルプラットフォームを開発する業務をしていました。2013年の当時、LINEがアジアを中心に世界的に使われるプロダクトへと成長していて、私も韓国だけではなく世界中で多くのユーザ使われるサービスの開発業務を一度経験してみたいと思い転職を決心しました。 

Yamazaki:私はiOSやAndroidのアプリに対してCやC++を使って共通のコードを書く業務を前職では担当していました。自分が持っている技術を使って、モバイルマルチプラットフォーム開発の仕事を探したところ、 LINE GAME が求めている技術と私が持っている技術スタックとがマッチしていたのがきっかけです。また、LINEはエンジニアに対して福利厚生がしっかりしているところも魅力の一つです。その中でも個人的には「O'Reilly Online Learning」の購読が一番魅力的に感じています。 



―― LINEで働くやりがいを教えてください 

Choi:私がやりがいを感じる時は、チームメンバー自身が業務環境や自分がやりたい仕事を積極的に取り組むために、私に頼ってきてくれた時です。そしてメンバーの一人一人が成長をしている様子を感じた時がとてもやりがいを感じます。また、新しいプロジェクトをリリースしたり、レガシーシステムをなくしたり、新しい良いアーキテクチャーについて皆さんと議論したりするのはとても楽しいですね。 

Lee: エンジニアとして自分が作成したり参加したProductがリリースされ、問題なくスムーズに動き、多くのユーザーに利用されていることに大きなやりがいを感じます。 

そしてマネージャーとしては、後輩エンジニアたちが成長して行って,  それによって開発室が丈夫な組織になっていっているということを感じる時にとても楽しいです。最近ゲームプラットフォーム開発室では大きな組織改編があり、それ以降、組織がとても安定してきて、メンバーも成長してきているので、とてもやりがいを感じています。 

Yamazaki:私はSDKの開発者として、SDKを利用するゲームデベロッパーに向けてより良い開発を提供すること、そしてプロダクトのビルド工程を自動化・効率化することで、開発チームのメンバーがより良い環境で開発ができるようになる仕組みを作ることに魅力を感じます。マルチプラットフォーム環境で動くコードをいかに少ないビルドスクリプトでビルド・リリースするかは本当に重要なポイントです。最新のビルドシステムの動向をチェックして、私たちのシステムに取り入れるようにしています。 





―― チームの構成・役割などについて教えてください。 

Lee:ゲームプラットフォーム開発室は、日本と韓国で50名以上のメンバーと一緒に開発をしています。そしてゲームプラットフォーム開発室でどのような開発を行っているのかを簡単にご紹介します。 

私たちは、数千万人のユーザーが利用するLINEのゲームサービスをサポートするためのプラットフォームや、それ以外にも様々なWebサービスを開発・運用をしてます。 

LINEプラットフォームとは独立していながらも密接に繋がっていて、メンバーの皆さんが様々な分野に接し、成長できるよう勤めており、東京オフィスだけでなく韓国、様々な国のオフィスをも巻き込み、色んな国籍のエンジニアが共に協力しています。 

主な業務内容としてはClient(SDK開発)を始め、Server side、Infrastructure等、幅広い分野・業務を担当しています。詳細は下記の通りです。 

  • SDK、認証、Social-graph、Billing、Promotion、Communityといった様々なDeveloper product の開発 
  • GameYoyaku、GameCategory (LINE内のゲームポータル)等のWeb Service の開発 
  • LINEのMessenger、LINE Family Serviceとの連動及びサポート 
  • Data Engineering、Cloud Infrastructure、Global networking、DevOps等といった共用機能の開発 

※Developer Center:SDKを公開しているサイト( LINE GAME 事業部と契約締結した方のみ利用可能) 





私たちはゲームの開発を直接するわけではありません。 
LINEのメッセンジャーの中にゲームポータルがあり、各ゲームをスタートするときにLINEログインの機能やランキングの表示、または決済など、各アプリストアやGoogle Playと連携する機能の開発、運用をしています。 

プラットフォームというと見えない部分かもしれませんが、スムーズにLINEプラットフォーム、Google、Appleと連動し、開発会社の人たちが楽に開発できるようにすることが私たちの主な取り組みです。 

Yamazaki:クライアント開発チームは、全部で7名です。全員 LINEとLINE GAMEで提供するSDKを開発しています。どのメンバーがどのプロダクトを開発する という様な壁は非常に低く、ポジションは自分自身がやりたいものに自由に希望を出せる体制です。クライアントチームはサーバー側のメンバーと比べて人数は少ないのですが、個々のスキルがとても高いです。 

SDKに何か問題があったときに、iOSもAndroidもどちらにも対応できる必要があります。また新機能を付け加える時など、Unityやそれぞれのアプリに対するゲームエンジンの理解が必要です。必要なスキルの幅がとても広く、それは私たちの強みであると思います。 



担当するプロダクト 

LINE GAME SDK 
LINE と連携したソーシャルゲームを運用するにあたって、ゲーム開発側で必要な機能を提供します。LINEの認証やLINE の友だち検索、メッセージング・課金 などです。 

PION SDK 
ゲームユーザーの交流とゲームの活性化をサポートする多彩な機能を、選択式で提供します。ランキング・リーダーボード・業績 などです。 

Universal Tracking System 
LINE株式会社が提供するアプリに含まれている、ユーザの動作をトラッキングするためのライブラリです。 



―― チームメンバーを紹介してください。 

Yamazaki:私たちのチームはゲーム開発をやってきた方が多く、また、SDKの方で支援を行ってきた人の方がとても多いです。私以外は韓国、中国人のメンバーでとても多国籍なチームです。 LINE GAME のクライアント開発では、 CとC++ が使えることやiOSとAndroidをどちらも同じくらい理解する必要があります。もちろん、どちらかだけの理解があり、この先学んでいくという姿勢があればチャレンジは可能です。チームのメンバーはお互いに支え合い、技術力向上のために、切磋琢磨しながら業務に取り組んでいます。 



―― 利用技術・開発環境について教えてください。 

Yamazaki:私たちゲームクライアント開発チームでは、iOSやAndroidなどのライブラリに対しても、実装は C、C++ で書いています。ゲーム開発側で機能実装するために C++、java、Obj-C、C# のインターフェースを提供しています。 

Language C、C++11、java 8、Obj-C、C# 
Build System CMake、XCode、Gradle 
Game Engine Unity、Cocos-2dx 
Other Jenkins(Shared library)、DeployGate 



―― 今のチーム課題と課題解決に向けた取り組みについて教えてください。 

Yamazaki:私たちが開発するSDKは、マルチプラットフォームで動作するライブラリであることから、ゲームに導入するプロセスが他のライブラリと比べ大変複雑です。例えばiOSだと、Gradleに瞬時に上げる仕組みは整っていません。実際にゲーム側から導入して自分たちのプロダクトに導入することは全て手動であり、複雑です。今はその導入における複雑さを直すことが今のLINE GAME SDKの課題です。 

これを解決するために、 Unity Package Manager を始めとした、ライブラリの導入・運用を進めています。ネイティブのゲームはまだ検討中ですが、Unityで最近導入された Unity Package Managerを使うことで、複雑だった導入が簡略化される予定です。 

Unity側だけというのはありますが、どういうデプロイのシステムがあるのか検証を進め、ネイティブのゲームでも簡略化を目指していきたいです。 



―― 今後のロードマップを教えてください。 

Yamazaki: 私たちは開発しているSDKをLINE GAMEのみでなく LINE 全体に、この技術スタックを軸においたSDK開発をしていきたいと思っています。 

また、分散されたプロダクトを一つに統合していくことは私たちの短期的なロードマップの一つです。しかし、これを進めるには、私たちが提供するSDKを使っているゲームデベロッパーの方にお願いして組み込んでもらう必要があります。 

SDKを統合する理由を説明し、ゲームデベロッパーの方のSDK更新についてできる限りのサポートをするという形で今後対応していく予定です。 

Choi:LINE GAMEがはじまってから9年になります。私たちはこれまで非常にたくさんのプラットフォームを開発してきました。その結果、プラットフォームが分散している状態になりました。そこで私たちは今後、プラットフォームの統合を進めていく予定です。そして、LINE GAMEだけのプラットフォームだけでなく、私たちが提供しているランキングサーバーの機能を活用できるように一般的なプラットフォームとして成長させていきたいと思っています。 

また、個別メンバーがやりたい業務を積極的にできるようにやっていくといういのが、私個人のロードマップとなっています。 

Lee:私たちがゲームプラットフォームで提供している機能は、契約しているゲーム開発会社だけが使える、クローズドなプラットフォームと言えるでしょう。これを少しずつ契約をしていなくても使えるようにし、ユーザを増やしていきたいと思っています。私たちは今、オープンプラットフォームへと転換できるよう準備を進め、より多くの開発者の人たちが使える機能を提供しようと考えています。 





―― 最後に、ゲームのプラットフォーム開発チームに興味を持ってくれた人にメッセージをお願いします。 

Choi:私たちの室には「ゲーム」という言葉がついているので、ゲーム関連の業務だけをするのかと誤解されてしまうことが多くあります。ゲームが好きではない場合は入ることができないのかな?と思われる方もいるようです。実際には、ゲームは提供している1つの商品であって、内部ではゲームだけでなく全体的な開発をやっています。ゲームという単語にとらわれないように考えていただけると嬉しいです。 

Client SDKは外部の開発者に提供されるバイナリになります。そのバイナリを自分たちで作って、世界の様々なところで使われる、開発者のための開発者になる経験はとても貴重です。非常に良い経験になると思っています。 

やってみたいことはほとんど出来るチームなので、自分が作ったSDKなどがLINEだけでなく、たくさんの人に使われるという経験をしてみませんか? 

Lee: ゲームに興味のある方、ゲームという新しいDomainの仕事を経験してみたい方は、ぜひ私たちのチームにお越しください。私たちが独立したプラットフォームを運営しているので様々なサービスを自由に開発できる機会があります。 

LINEのサービスはトラフィックが非常に高く、ユーザが多いので制限がある部分もあります。しかし、私たちは高いトラフィックを処理しながらも自由に設計できる環境があります。また、ゲームプラットフォームのメンバーは、技術力も高く情熱的で優れた仲間ばかりです。一緒に業務をすると非常に楽しいと思っています。 ゲームプラットフォーム開発室のドアは開いておりますので、気楽に連絡してください。 

Yamazaki:「開発者にバイナリを渡す」という行為は非常に気を使います。 

導入・更新は楽か。インターフェースは直感的か。開発・動作環境の変更と共にどの様な変更・ガイドが必要か。問題が起こった時、診断できる体制が整っているか。何よりライブラリの更新には、必ずライブラリ使用者(ゲームデベロッパー)への負担が伴います。 
このようにクライアントSDK開発者はとても大変だな、と思われるかもしれません。しかし、SDK開発、自分のコードを人に使ってもらう、開発者に感謝される仕事はとてもやりがいがあります。開発者の支援にご興味のある方、是非この課題を一緒に挑戦していきましょう。 



ゲームプラットフォーム開発室ではメンバーを募集しています。

SDK Developer / LINE Game Platform

サーバーサイドエンジニア / LINE Game Platform