【レポート】KLabゲーム制作のうらがわ、ゆるっとおみせします -KLab 福岡 Meetup #2-

イベント
【レポート】KLabゲーム制作のうらがわ、ゆるっとおみせします  -KLab 福岡 Meetup #2-

2018年5月18日(金)19時00分より「KLab 福岡 Meetup#2」が開催されました。約3ヶ月振りの開催となった「KLab 福岡 Meetup」。今回はビアバッシュ形式!飲み物を飲みながらリラックスして皆さんにご参加頂きました。


まずは福岡事業所の責任者を務めるの田中さんよりKLab福岡をご紹介いただきました。


KLab福岡はエンジニア、カスタマーサポート、制作、総務があります。

中でも今回お話させていただく、エンジニアが全体の半数となっています。

エンジニアといっても、共通基盤とインフラが福岡ではメインになります。

共通基盤とは、一言でいうとタイトル横断で必要となる機能の開発をしています。

インフラとは、サーバインフラ環境の仕様策定、構築などを行っています。



仕事以外のところも和気あいあいとしている福岡事業所では、豆茶葉研究会、運動部、

釣りなどが盛んです。

もっと詳しく話を聞きたいという方は懇親会で!(田中さん)。


登壇者と講演テーマは下記の通りです。

KLabの勉強会の紹介

山内 敏彰

Unityネイティブプラグインの勧め

牧野 龍太郎

Google I/O 2018 参加レポート 〜I/O の楽しみ方教えます〜

山根 哲也


それではKLab 福岡 Meetup#2 スタートです!

【発表 #1】KLabの勉強会の紹介

まずは山内さんの登壇です。

山内 敏彰(やまうち としあき)/KLab株式会社 エンジニア

iOSのアプリ開発、Webサイト制作を経て2013年KLab入社。

現在は新規で立ち上がる案件に課金やデータ連携など共通的な機能を組み込むチームに従事。




KLabの考え方にはエンジニアの市場価値を高めるという考えがあります。

一般的に市場価値を高めるというと技術的要件を解決するためのスキル。

でもそれだけではなく、設計や仕様について話し合い、ミーティングしたり、教えたり教わったり、ドキュメント整理したり、などこんなことができるエンジニアって市場価値高くないですか?

その一環として社内勉強会を行っています。



1つ目は福岡開発会。

福岡独自で行なっているもので、毎週行われる開発メンバーのMTGで一人発表するコーナーを設けています。案件で◯◯やったよ!の情報共有などがテーマとしては多くあり、きっかけの場になっております。Meetup#1の「ジョークRFC」もここでの発表がきっかけです。


2つ目はクリエイティブ勉強会。

社内のデザイナーのスキルアップや交流を目的として、CGソフトの講習や各案件のノウハウ共有などを行っています。運営側が発表者をサポートする仕組みもあります。

また社内だけではなく、外部向けの勉強会も積極的に行っています。


3つ目はALM。

「あなたが話したいことを聴きたいひとがいる」をキャッチコピーとして、月に1回テーマフリーでプレゼン大会をしています。

任意で参加した人の投票によってベストプレゼンターが決まります。

今年のベストプレゼンターはこんな感じです。




業務に関係のない話もベストプレゼンターに選ばれていますね。


まとめると、

KLabではそれぞれのニーズに応じた勉強会が用意されています。

これらはすべて自主的に行われており、会社としても積極的にやらせてくれる風土があります。

このような勉強会を通して技術・知識の習得やプレゼン力なども身に付きます。

ぜひみなさんの会社やコミュニティで行われている取り組み等教えてください!


【発表 #2】Unityネイティブプラグインの勧め

2人目は牧野さんの登壇です。

牧野 龍太郎(まきの りゅうたろう)/KLab株式会社 エンジニア

2015年KLab入社。それ以前は協力会社として業務に携わっており在籍期間は10年以上。

携帯サイトやiOS,Androidアプリのクライアント開発・運用などを経て、現在Unityネイティブプラグインの開発に従事。




今回は、

  • モバイルゲームに必要な機能について

  • 共通ライブラリとは

  • ネイティブプラグインとは

  • ネイティブプラグインの実装事例

についてお話させていただきます!


まず、モバイルゲームに必要な機能についてですが、

ゲームとしてまず必要になるのがゲームのコア部分の機能についてです。

ゲームによって様々ですが、リズムゲームであれば「音楽に合わせたタップパターンを表示」「タップ判定」「クリア要素」などなどがあります。

またモバイルゲームを作るにはコア部分以外にも必要となる機能があります。

例えば、

  • プラットフォーム上(App Store, Google Play)の課金処理

  • Push通知

  • データ引き継ぎ機能

  • アプリ内チャット機能

  • 知人へのシェア機能

など。

でもそれぞれのゲームでコア部分以外の機能をアプリごとに作るのは面倒だし効率が悪いですよね。

そのため共通ライブラリを作ります。


共通ライブラリとは?

ゲームのコア機能以外の共通機能を抽出してライブラリ化します。その共通ライブラリを別のアプリに組み込むことでアプリ開発者がゲーム開発に集中できるようになります。





KLabではこのような機能をライブラリ化しております。

その中で私はクライアント開発基本ライブラリを手がけています。

クライアント開発基本ライブラリは、KLabではゲーム開発は主にUnityを使っていますが、そのUnityから利用できるiOS,Androidのネイティブプラグインを提供することが目的です。



ネイティブプラグインとはネイティブ(主にiOS,Android)の各開発言語(C, C++, Objective-C, Java)で書かれたライブラリで、Unityの開発言語であるC#から直接呼び出して利用できます。

ネイティブプラグインを作るメリットは

  • ネイティブでしか提供されない機能を使える

  • iOS,Androidの最新機能で追加された機能も、ネイティブプラグインで実装することで、Unityをバージョンアップせずに利用できる

    という点です。


最後にネイティブプラグインの実装事例をお話します。

ネットワーク通信機能をC#の既存APIから、ネイティブ実装に置き換えします。

ネイティブ実装に置き換えた目的は、

  • 既存の機能の不具合を解消したい

  • サポートされていない機能を使いたい

という点です。


ネイティブプラグインの構成

ネイティブ側で使用したAPI、およびライブラリ

  • iOS

    • NSURLSession

      • iOS7から使える通信クラス


  • Android

    • Okhttp

      • サードパーティライブラリ

      • Androidでも内部的に使用されている



置き換えたことによるメリット

既存の実装に比較して通信が安定した

○ その結果、通信異常関連のユーザーからの問い合わせやレビューが激減

■ 約40% → 10%未満となった


● 通信機能自体の処理が把握できるようになった

○ どんな処理をしているかが把握しやすくなった

○ 問題が発生しても開発者側で対応することが可能になった


実際に特定の環境での通信エラーが起きた際に解決したお話や、オブジェクトの参照が増えすぎてクラッシュしたお話等もしていただきました。


まとめると。

ゲームの機能を共通化することで、ゲーム開発はゲームのコア機能部分の実装に集中できる。

ネイティブプラグインを使うことで、Unity上でネイティブの機能を十分に利用できる。

ゲームエンジンのアップデートを待つことなく、開発者側で問題が解決できる。



【発表 #3】Google I/O 2018 参加レポート 〜I/O の楽しみ方〜

最後の登壇は山根さん。

山根 哲也(やまね てつや)/KLab株式会社 エンジニア

2013年KLab入社。入社前はNon-OSの組み込みエンジニアをしつつ趣味でiOS/Androidアプリ開発。

入社後はiOS/Androidアプリの開発リーダーを経て、現在は社内横断でGoogle/Apple関連の課題を解決。


山根さんはKFM #2の1週間ほど前に開催されたGoogle主催のイベントGoogle I/O 2018に参加されており、昨年の話を交えてGoogle I/Oというイベントを次のように紹介されています。


「今回は先日開催されたGoogle I/Oに行って、現地で感じたことなどをお話していきたいと思います。

まずはGoogle I/Oについて簡単にご説明します。

Google I/OはGoogleの新技術/サービスにフォーカスを当てた開発者向けの会議で毎年5-6月頃にカリフォルニアで開催されます。

Android OSの新バージョンの詳細が説明されたりと、このイベントで初出となる情報も多くあるイベントでして、例えば昨年のGoogle I/O 2017では『Androidの開発言語にKotlinを正式採用!』と発表された時は凄い歓声でした。」


続いて、Google I/Oへの参加について、現地まで行って参加する場合と日本にいたままで参加する方法について以下のように話します。


「まずI/Oって現地まで行く必要あるの?と思われる方もいるかもしれません。

現地で参加する場合は4月頃に申し込み(抽選)で当選したらチケット代($1,150)を支払いします。チケット代+航空券+ホテル代+現地交通費すべて含めて50万円前後かかってしまいます。


一方、現地まで行かずに日本にいたままでも、情報系サイトやYoutubeなどで情報収集をしたり、世界各地のI/O Extendedに参加して情報を集めることは可能です。

これだけみると50万円の参加費用をかけて現地に行かずとも日本からの参加で十分なのでは?むしろ日本にいたほうが整理された情報を得やすいのでは?と思うかもしれません。

しかし、Google I/Oの楽しみは発表だけではありません。

Google I/Oには、Sessions、Codelabs、Office Hours & App Reviews、Sandbox、After Hoursといったイベントがありますが、

日本にいたままで参加できるのはSessionsとCodelabsの一部のみであり、それ以外の部分には現地まで行って参加するだけのメリットが十分にあると考えます。」



山根さんはGoogle I/Oを構成する5種類のイベントについて、次のように紹介します。


「イベントの1つ目はSessionsです。

現地での参加は他のディベロッパーの熱量を肌で感じることができ、世界中のディベロッパーが何に関心があるのかをつかむことができます。

また、セッションでは新しい技術の一端に触れることができますが、実際に自分たちが使う場合に現実的に利用可能か?という問題は常に発生します。現地で参加している場合、セッションで聞いた最新情報を、現実的な技術・手法に落とし込むためにGoogle社員に質問することも可能です。そういった質問は後述するCodelabsやOffice Hoursで行います。


2つ目はCodelabsです。

サンプル実装のために環境の整ったPCが揃っています。

サンプル実装にはSessionsで発表されたばかりの新技術も多く含まれるため、Codelabsブースに控えているGoogleの技術者に相談しながら、新技術の挙動や利用方法を確認することができます。

また、4つの課題クリアで来年のI/Oチケットが抽選でプレゼントされたりもします。


3つ目はOffice Hours & App Reviewsです。

Google技術者と1:1で相談ができるブースで、ここには日本語スタッフも常駐しています。

自身のアプリを持ち込んで技術的なレビューをしてもらうことも可能ですし、Sessionsで発表されたばかりの新機能への質問にも答えてくれます。

ここでの相談は公式リファレンスやソースコードからでは判断しかねる疑問を解決できることも多く、私が現地まで行った方が良いと考える一番の理由が、このOffice Hours & App Reviewsになります。

4つ目はSandboxです。

新技術や新機能をすぐに試せるスペースです。

色々あるのですが、今回はSessionでも言及されたAR Core + 機械学習や、VRの体験をしてきました。


最後にAfter Hoursです。

野外ステージでのライブコンサートやマジックショーなど様々な催しが開催されます。

お酒片手に各国のデベロッパーと話ができるいい機会です!」


続いて、Google I/Oの技術的な発表物に限らない、現地の歩き方全般について次のように話されます。

 

「次に全般的な現地の歩き方についてですが、まずは気になっている人も多いと思われる”英語”についてです。

英語はもちろんできたほうがいいです。

ただし流暢な英語が話せないと楽しめないということはなく、。

拙くてもいいので英語で話しかけてみるというのが大事です。

イベント会場では日本語の話せるGoogle技術者を呼ぶこともできるので、そういった英語のフレーズは用意しておくと良いと思います。


次に最重要ともいえる注意点ですが、陽射しがすごく強いため、配布されるサングラスと日焼け止めは必須です。とにかく陽射しが強いです。

また、水やスナックは会場のあちこちで入手可能ですが、水分補給や塩分補給も忘れずに!



食事については、基本的には朝昼晩とGoogle I/Oのイベント会場でご飯が食べれます。

夜はお酒もでるので1日中楽しむことができます。


あとは現地でもらえるノベルティも気になりますよね。今年のノベルティは2つ!

・Google Home Mini (¥6,480)

・Android Things Starter Kit ($199)

今日はAndroid Things Starter Kitを組み立てたものを持ってきてますので、後ほど興味のある方はお声がけください!」


今年のGoogle I/O 2018の全体的な雰囲気や注目機能について次のように話されます。


「今年のGoogle I/Oの全体的な雰囲気についてですが、

マシンラーニングを推しているのはすごく伝わってきましたし、AR/VRの人気は衰えず。Google Maps APIの注目度も高かった。という感じですね。


また、個人的にはAndroid App Bundleにはかなり注目しています。

というのもAndroidアプリでは2019年8月予定の64bitライブラリ必須化によってapkサイズの肥大化が想定されていまして、100MBというAPKサイズ上限を超える懸念がありました。

App Bundleを使って32bitapkと64bitapkに分離してapkサイズを抑えることは今後検討しようと考えています。」

最後に、山根さんは次の通りメッセージを送り講演をまとめました。


「Google I/Oというイベントは、確かに日本にいたままでも一定の情報を得ることはできますが、現地の熱量というのは遠隔では感じにくい部分が多くあります。

また、Google社員と直接相談することで解決できる問題も多いですし、Googleへの要望・フィードバックを直接伝えられるという側面もあります。

そういった現地参加者特権をみんなで享受しよう!というところで、、来年のGoogl I/Oはカリフォルニアで会いましょう!


山根さんの当日のスライドはTECH PLAYサイトに公開されています。



以上で3名の登壇は終了です!


懇親会!

多くの参加者が懇親会まで残り、楽しい時間になったことと思います!



関連するイベント

おすすめのコラム

【イベントレポート/社員とハッカソンで触れ合う採用イベント「データサイエンス就活」in関西】

イベント

2019年3月16日、株式会社神戸製鋼所、パナソニック株式会社、パナソニック ソリューションテクノロジー株式会社を中心...

【イベントレポート/社員とハッカソンで触れ合う採用イベント「データサイエンス就活」in関西】