2020年4月にミクシィグループに入社して1年。社会人としても成長を始めた新卒入社スタッフの軌跡を、シリーズでお伝えしていきます。どんな経験を積み重ね、この1年を歩んできたのか。そして、その先に見えてきた夢や目標は?リアルな“1年目”の声をお届けします。
今回は、CTO室 開発本部に所属する本間。入社1年目にして、『コトダマン』のデッキレコメンド機能「自動でかんたん編成」の開発をほぼ一人で担当し、2021年2月にリリースさせました。1年目にして大きな成果を出した本間に、これまでにぶつかった壁や成長したことについて詳しく話を聞きました。
━━まずは、現在のお仕事について教えてください。
大きく2つあって、一つは『コトダマン』におけるデッキレコメンド機能「自動でかんたん編成」の運用、もう一つはプロダクトを問わない形でのマルチプレイ技術の検証になります。『コトダマン』で手掛けたデッキについてもう少し詳しくお話すると、AIを活用してユーザーに合わせたおすすめデッキをレコメンドしていく機能です。これまでも、おすすめデッキというものは存在していたのですが、クリアしにくいデッキになってしまっていたり、運営側が提示したおすすめデッキが新キャラクターへの対応が手動だったり、といくつかの課題を抱えていたんです。そんな背景もあり、自動で簡単にデッキを編成できる機能が作りたいという話をもらいました。
━━レコメンド機能の開発はチーム単位で行っていたのでしょうか?
いえ、基本的には一人です。設計部分に関しては先輩に相談し、アドバイスをもらいながら進めていった感じです。
━━新卒入社で一人で担当されたんですね。すごい!「おすすめデッキの自動編成機能」を作るにあたって、どのようなフローで進めていったのでしょうか?
まず最初に「デッキに対する評価手法」について検討し、そこから「デッキ生成手法」を検討することにしました。これにより、根拠を持った形で進めることができると考えたんです。その後は手法を考えた段階で相談会を開き、先輩からレビューをもらって。修正しながら、導入していった流れになります。私の所属しているグループは、一つのプロダクトに紐づいているわけではなく、独立したエンジニア組織。課題解決のために各プロダクトのある機能の開発を依頼されているようなイメージに近いですね。なので、今回の案件についても集中して向き合うことができたと感じています。
━━難易度の高い開発案件に感じますが、本間さんはまだまだ余裕がありそうな印象を受けます。実際のところはどうでしたか?
全体で見ると比較的スムーズに進みましたが、その場その場で苦労したことも多かったです。特に「評価や生成手法」を検討するところは難しかったですね。そもそも、レコメンドする手法がなかったので、どういうものがあるのか、どうやったらできるのか…というところから考えていきました。また、評価についても、シュミレーターもなかったので、そこから作成をして。実機で試してみる方法もありますが、効率が悪いので作成することにしたんですが、バトルの処理を取り出してくる作業も苦労したところです。試行錯誤を繰り返して、最終的にプレイヤーのクエストログから学習し、プレイヤーに最適化されたデッキを作れるよう開発を進めていきました。
━━そうなんですね。開発期間はどのぐらいだったのでしょうか?
入社して少し経った6月頃から着手して、だいたい8カ月ぐらいですね。2021年2月にリリースをしたところです。
━━リリースまでは順調だったのでしょうか?
いえ、思ったようには進みませんでした。というのも、もともとは着手してから4~5カ月程度でのリリースを目指していましたのですが、実際は8カ月ほどかかってしまったんです。遅れた理由はいろいろな要素がありますが、プロダクト側での実装の優先順位があがっていかなかったのは大きかったです。期日までに機能開発を完了させていたとしても、プロダクトサイドでも様々な案件が動いていますから、すぐに次のアップデートにのせることが難しかったんです。これは自分の力ではどうにもできず、焦りを感じていましたね。
━━これは、本間さんがぶつかった壁?
そうですね。注力すべきこと、優先すべきことから対応されていくのは仕方のないことと分かりつつも、予定通りに進まないもどかしさがありました。反省としては、もっと密にコミュニケーションを取っていくべきだったということです。期日含め、プロジェクトの方向性をもっと明確にしていくべきだったと思っていますね。ですから、2月に無事にリリースできたときは、本当に嬉しかったです!Twitterなどでも好意的な意見を多く目にすることができて、開発してよかったと感じました。
━━次に、冒頭でお話されていたもう一つの、マルチプレイ技術の検証についても教えてください。
たとえば、「Unity DOTS」に関する調査などがそれにあたります。「Unity DOTS」とは、Unityでデータ指向設計(Data Oriented Design)をするためのパッケージ群のことを意味していて、今後非常に重要になってくるものになります。CTOの村瀬は、DOTSの技術を使いこなせないとこれから生き残っていけない、と言っているほどで。とはいっても、まだどういうものなのか、どう活用していけばいいのか見えていない部分があるのも事実なんです。CTOの村瀬から「Unity DOTS」についての調査依頼を受けて、情報を集めレポートしたり、技術検証を行ったりしています。
━━最終的にはプロダクトに導入できるような技術を研究していく、というものなんですね。
そうです。メリットの部分でいえば、CPUがボトルネックとなっているプロジェクトに関しては劇的にパフォーマンスが改善されますし、メモリ効率が良くなるはずです。同時にデメリットについても見ていきながら、プロダクトに導入するかどうかを検討する。ミクシィの事業拡大を目的に、新しい技術の可能性を探っていくような仕事です。
━━これは開発ではなく、調査・研究という言葉のほうがしっくりきますね。本間さんは、もともと知識を深く掘り下げていくことが好きだったんでしょうか?
確かに、昔から新しい知識を習得していくことは好きした。その体験をしたのは、中学3年生のときに初めて自分で3Dゲームを作ったときかもしれません。C++でコードを書いていったのですが、本やネットで調べながら、少しずつ学んで分かるようになっていったんです。とても難しかったですが、最終的にゲームとして形になったときは何とも言えない喜びがありました。それ以来、自分が知らないことや難しい技術にチャレンジするのはとても楽しいと感じるようになったように思います。努力をして、その壁を乗り越えたときは自分が成長できた、と思える瞬間です。
━━そうなんですね。大学時代はどのようなことを学ばれていたのでしょうか。
大学は情報系の学部で「自然言語系の機械学習」を学んでいました。その中でも“感情を考慮した対話生成”について研究をしていましたね。簡単にいうと、悲しみや怒りなどの感情を設定された文章に対して、その感情に合わせた違和感のない答えを自動で返していく仕組みです。
━━“感情を考慮した対話”に興味を持ったのはどうしてでしょう。
ゲーム作りをしていく中で、対話ができるゲームに興味を持つようになり、自分も作れたらと考えるようになったんです。どうやれば、感情のある自然な対話ができるのかを考えていく中で、そもそも人間はどうやって対話をしているのか、に興味が向くようになりました。
━━なるほど。そういう経験を経て、MLエンジニアを目指すようになったわけですね。
━━先ほど「努力して壁を乗り越えたときにこそ成長を感じる」というお話がありましたが、ミクシィに入社されてからはどうでしょうか。
改めて1年を振り返ってみて、成長できたと思います。その大きな理由の一つは、いろいろな技術に触れられたことです。おすすめデッキ自動編成機能の開発においてもそうですし、「Unity DOTS」などマルチプレイ技術の検証においても同様です。
たとえば、プログラミング言語でいえば、「Elixir」や「GO」については書いたこともなかったのですが、開発を進める中で学ぶことができましたし、「Kubernetes」についても、入社してから得た知識です。
━━いろいろな技術に触れられる理由は、“プロダクトから独立した組織での開発”というのが大きい?
それも一つあると思います。『コトダマン』はじめ他のプロダクトからも開発依頼を受けていますから、触れる技術が必然的に増えることになります。そして、技術検証というところでも、新しい技術を存分に学ぶことができます。直近だと「次世代映像制作」についても検証を行いました。あとは、周りに優秀な方が多いというのも刺激的な環境ですね。何でも知っている先輩がたくさんいらっしゃるので、一緒に仕事をさせてもらう中で、自然とスキルアップできるのだと感じています。
━━今後はどのようなことを目指していきたいですか。
「Unity DOTS」と「AI」の二つを掘り下げながら強みとしていけたらと考えています。スキルも経験もまだまだ足りていないことだらけですので、日々勉強を重ねて自分の強みにしていきたい。他の社員からも“あいつが詳しい”と認知される存在になれるよう努力していきたいと思います。そして、これまでなかった新しい技術や手法で、プロダクトの成長を牽引していきたいです。