8月下旬に3日間にわたって行われた日本最大のコンピュータエンターテインメント開発者向けカンファレンス「CEDEC2024」。 gumiからは、Technical Strategy & Development(以下TS&D)に所属する若手エンジニアとCTO(Chief Technology Officer)が登壇しました!今回は登壇を終えたエンジニアに率直な感想や、準備にまつわるエピソードなどを聞きました!
<登場人物> 井上虎太郎(いのうえ・こたろう)Technical Strategy & Development所属。大学院(理工学部)を卒業後、2022年にgumiに新卒入社。インフラ業務をメインに担当しながら新入社員のサポートも務める。
鈴木俊豪(すずき・としたけ)Technical Strategy & Development 所属。大学(情報学部)を卒業後、2023 年にgumiに新卒入社。社内ツールの作成に従事。
清水佑吾(しみず・ゆうご)CTO(Chief Technology Officer)。 2011年よりサーバーサイドを中心に複数タイトルの開発に携わる。サーバーサイド共通ライブラリ・フレームワーク/リアルタイム通信ミドルウェア開発などを経て2021年より現職。
CEDECとは CEDECは、Computer Entertainment Developers Conferenceの略で、一般社団法人コンピュータエンターテインメント協会(CESA)が主催する、ゲーム開発・エンターテインメント制作・ビジネスに関するカンファレンスです。コンピュータエンターテインメントの開発に携わるプロフェッショナル、及び関連する仕事に従事している方による講演での知見の共有と、参加者同士が交流することにより、お互いの情報や意見を交換することで開発能力の向上や業界全体の発展を目指すことを目的としています。 もともと、東京ゲームショウと一緒に行われていた技術に関する説明会でしたが、1999年からは独立し、現在国内のゲーム開発者向けのカンファレンスとしては最大級の規模を誇っています。 イベントは3日間開催され、ゲームデザインやサウンドといったクリエイティブ分野から、ビジネス分野まで7つの分野に分かれており、合計で約200のセッションが行われます。 講演は基調講演や、スポンサー講演、公募講演などの種類があります。今回gumiでは、公募枠に応募。厳正な審査の上採択され、公募講演にて発表しました!
セッション概要 gumiからは、Technical Strategy & Developmentより3人が登壇。 内容の特性上、詳細については公表できませんが、発表した概要はこちらです!
テーマ: ソーシャルゲームにおけるbotを機械学習で見つける方法、分類と可視化を通じたHuman in the loop体制の構築
内容: ソーシャルゲームにおけるbotは、ログインボーナスを長期間受け取り、ゲーム内資産を溜めていきます。そして、最終的にアカウントがRMTで販売され現金化されていきます。実例として、gumiが運営中のタイトルでは、DAUに占めるbotの割合は一時期8割を超えていました。そのため、KPIからbotを取り除かなければ、超高継続率かつ超低LTVアプリとして解釈されてしまいます。そして、botによってKPIが乱れると広告出稿等の投資判断が行えない状態に陥ってしまいます。 このセッションではGoogle Big Queryを用いた、簡易的なbot検出のアルゴリズムの紹介と、機械学習を用いたユーザのクラスタリング、可視化を用いたBotの目視判定、それらを通じたHuman in the loop体制の実現について解説します。
講演者: 井上虎太郎・鈴木俊豪・清水佑吾 共同研究者・開発者:中山 心太(株式会社NextInt 代表)
「まさか通るとは・・・」CEDEC登壇を振り返って 佐藤 まずは、初めての登壇お疲れ様でした!ゲーム開発関係者にとっては憧れの舞台かと思いますが、いかがでしたか?
鈴木 いやー、さすがに緊張しました(笑)去年、新卒研修の一環でCEDECをオンラインで視聴していたのですが、まさか翌年に自分が出ることになるなんて考えてもみなかったです。
井上 他の会社の登壇者が、管理職や部長クラスの方たちが多かったので、とにかく緊張しました!
佐藤 そうでしたか!緊張をあまり感じさせない堂々とした発表に見えましたよ。 新卒2年目、3年目であの大舞台へ挑戦することは、なかなかできない経験ですよね。公募に採択されたときの気持ちはいかがでしたか?
井上 「まじか、通っちゃったか!」というのが正直な気持ちでした。
井上 実は、応募を決めて、提出書類をちゃんと書き始めたのが応募締め切り日当日で・・・。
井上 そうなんです(笑)共同開発者の中山さんが一緒に考えてくださったのでなんとか形にはなったんですけど、そんな感じでバタバタだったので、まさか通るとは思ってなくて。記念受験気分でした。
井上 でもきっと、来場者が持って帰る価値がある内容だと判断してもらえたのだと思うので、驚きと同時に、気が引き締まりました。
二人三脚で進めた登壇に向けての準備 佐藤 いざ登壇が決まってからは、どんな準備をされてきたんですか?
井上 進め方としては、私が、ベースとなるロジックを考え実装して、その上でよりこんな機能があったらいいよねというのを毎朝2人のmtgで話して、UIの部分を鈴木さんに担当してもらう形で進めましたね。 登壇が決まった段階でほとんど形にはなっていたので、発表ではさらに実際に現場で使ってみてもらった結果を報告したいと考えました。なので、そこから現場で使えるように実装をスタートしました。
鈴木 その作業でいうと、TS&Dが提供している社内の認証基盤があって、それと連携しないとそもそも現場のプロジェクトに提供できないので、OIDC(※) の認証を組み込むという作業が大きな壁でしたね。
※OIDC(OpenID Connect): サービス間でユーザーの同意のもと認証情報を連携するための規格。
井上 OIDCの認証を入れるというのは、新卒2年目で担当するのはだいぶ酷だったと思います。なんとか2か月でがんばってもらいました(笑)
鈴木 とはいえ、取り組む時間はゆとりをもっていただいたので、自分で仕組みから勉強しながら進めることができました。でもバグが出たら井上さんに泣きついて見てもらったりもありましたね(笑)
井上 おかげで発表のときには、現場での実証の結果をお見せすることができました。
インタビューの合間も、相談しながら作業を進める2人 佐藤 鈴木さんが本格的にプロジェクトに参加したのは、新卒研修が終わって配属となった去年(2023年)の10月からになりますよね。新しい技術をキャッチアップする鈴木さんも、それをリードする井上さんも、なかなかハードだったのではと想像します。
鈴木 そうですね。特に、UIの構築が私にとっては一苦労でした。フロントエンドの技術が必要だったのですが、新卒研修の最初のほうでしか触れたことがなく、井上さんに教えてもらいながらUIを充実させていきました。
井上 一緒に動き始めたときは、分類データなどはありましたが、人に見せるためのUIが何もできていない中で鈴木さんと一緒に形にもっていくというのは、なかなかやりがいのあることでしたね。
井上 いやいや、鈴木さんには自走しながら丁寧に進めてもらえて、半年ほどでとても見やすく扱いやすいUIを作ってくれました。
佐藤 そんな苦労があったからこそ、あの堂々とした発表に繋がったんですね。
鈴木 いえ、ここからが一番大変でした! 1か月半かけて作った発表資料が、登壇の1週間前に、全部作り直しになったときは焦りました(苦笑)
井上 そうそう、CTOから、資料の構成だったり、実際何をやったのかという具体的な部分をもっと充実させようとご指摘いただいて、ガラッと変わりました。 あの直前のバタバタに比べたら、他の苦労はかすんで見えます・・・(笑)
佐藤 ええー!発表はスムーズだったので直前まで修正していたようには見えませんでした!
鈴木 井上さんと一緒に前日の夜遅くまで修正して、資料が完成したのは発表当日の昼12時でした。
井上 通常業務もやりながらだったので、その直前の追い込みが一番印象的ですね(笑)ほぼ練習なしで臨みました!
登壇を終えて 佐藤 ふだん取り組んでいるプロジェクトを大勢の場で発表するという経験は、社会人になってから初めてだと思いますが、どんなことを経験できましたか?
鈴木 そうですね。自分が業務でやっていることを外に向けてリリースする機会はあまりないので、そういった意味でもいい経験ができたと思います。会場では、高校の頃から遊んでいたゲーム会社の人から質問がきたときは嬉しかったですね!消費者から開発者側にまわったんだなと実感しました。 また、配属後すぐに先輩から次々に依頼される、全く知らない技術を使った要望に対応し続けたのはすごく大変でしたが、そのぶんスキルが身についた実感がすごくあります。 今後同じような開発があったときに役に立つと思います。
井上 このシステムは、現場のディレクターがたまに使うことがあるかどうかという、あまり外に出るようなシステムではないので、内容としては非公開ではあるけれど、発表という形で報われた気がしています。 また、何社かこの仕組みに興味を持っていただいたりして、価値のあるものを作れていたのだなと改めて実感しました。
佐藤 登壇が終わってお疲れのところ、ありがとうございました!
CEDEC2024登壇の記念品 Chief Technology Officer清水より 佐藤 清水さんご自身もプロジェクトの大枠の説明や今後の展望などの発表を担い、若手2人をサポートしながら一緒に登壇されていましたが、発表の出来はいかがでしたか?
清水 2人とも落ち着いていましたね!私が社会人になって初めて発表したときは、1時間枠なのに緊張して早口になって20分くらいで終わっちゃったので、比べるまでもなく、言うことなしです!(笑)
佐藤 清水さんでもそんなご経験が!若い2人が初めての登壇の場がCEDECというのはハードルが高いのではと思いましたが、応募した理由は?
清水 CEDECを目標に開発をしていたわけではなく、たまたま募集のタイミングで2人が担当しているプロジェクトが発表に繋がりそうなプロジェクトだったんです。 もちろんやっていることには価値があると思っていますので、受かったら良い発表の場になりますし、受からなかったら、他の場で発表できたらというくらいの気持ちでいました。
佐藤 そうだったんですね。どんな場であれ、発表するつもりだったとのことですが、こういったカンファレンスに参加する意義はどのようにお考えなんでしょうか?
清水 登壇を目標にしているわけではないですが、そういった場に参加する意義としては、若手が取り組んでいることが価値があるもので、それを世の中に共有することで貢献する経験をしてもらいたい という部分があります。あとは技術的に価値があることをやっているというgumiブランドの構築や、gumiのプレゼンスを高めたいという狙いもあります。
佐藤 今回は、一般に発表内容資料を公開していないので反応は限定的になってしまったと思いますが、来場者の反応はいかがでしたか?
清水 bot対策という内容上、対策の手の内が知られてしまうといたちごっこになってしまうため、資料は一般公開せず、SNSも禁止にしたので、ネットで話題になることもなかったのですが、それでも会場でご質問いただいたり、発表後もいろいろな方からお問い合わせやお声をいただいております。 botの問題はゲーム業界ではずっと悩まされてきた課題ですので、各社対策されているかと思いますが、より発展的で精度の高い内容をご提供できたのならよかったです。
佐藤 今回のプロジェクトや登壇を通して見えた2人の成長は?
清水 鈴木さんに関しては、SQLite WASMやOPFS
(※) など、新卒でいきなりこれやる?という、かなりとがった技術も採用しているので、特に大変だったかと思います(笑)
でも、難しいけれど正攻法の技術中心に採用しているので、新卒2年目にしてかなり実力がついているのではないかと思います。
井上さんに関しては、もともと能力が高いのですが、井上さん自身も社外発表は初めての中、フロントエンドを鈴木さんに教えたり、コードレビューも井上さんが行っていたので、先輩として引っ張っていってくれる力がさらについて、一層頼もしくなったかなと思います。
※ SQLite: 軽量でフル機能のSQLデータベースエンジン、ライブラリ。 WASM(WebAssembly): 仮想マシン用のバイナリ命令形式。ブラウザで実行できる。 OPFS(Origin Private File System): ブラウザでオリジン固有のファイルシステムを扱う仕組み。
佐藤 gumiのエンジニアチームとしては、今後もこういった発表に積極的に参加していかれるのでしょうか?
清水 そうですね、技術的な内容を社外に向けて発表することは、引き続きやっていきたいと思っています。今回はたまたま私から2人に声をかけましたが、もちろん自主的に声を上げていただいてもOK です。TS&Dはゲームの開発チームにいるエンジニアと違い、直接ゲームに関わるというよりは間接的な支援が中心になるので、スタッフロールに名前が出たりするような機会が少ないです。 そのため、こういった発表の場を通して、プロジェクト内容や関わったエンジニアの名前が世に出るという機会は、モチベーションに繋がると思いますし、良い名刺がわりにもなると思います。
佐藤 たしかに、登壇をした経歴はずっと残っていきますよね。発表がゴールではありませんが、価値のある知見を提供していく意味では、常に技術のアップデートをしていく姿勢ですね。
清水 はい、前例がこうだからこういう技術を使わなきゃいけないという縛りは原則なく、作るものにあわせて必要な技術を使っていくという姿勢です。 新しい古いではなく、作るものに合っているかで技術を選び、しっかりキャッチアップしていく。真正面から技術と向き合う会社です。 gumiの場合は、作るものに適しているか、技術の特性、向き不向きを見極め、正攻法でやっていきますので、そういった点に魅力を感じていただける方はぜひ、一緒にものづくりを極めていきましょう。
佐藤 今回の発表を通して、社内でも知る機会の少ないTS&Dの取り組みへ理解を深めることができました。ありがとうございました!