「THE METHOD」は、ミクシィのさまざまなプロダクトにおいて実践されているノウハウやメソッド惜しみなく共有するオンラインイベントです。
※過去の実施内容はコチラ
“メソッド”が学べるオンラインセミナー「THE METHOD」が始動。その内容は?
モンストのキャラクターはどのような工程で作られているのか? “メソッド”が学べるセミナー「THE METHOD #1」
モンストのステージはどのように制作されているのか?“メソッド”が学べるセミナー「THE METHOD #2」
第4回目は『モンスターストライク(以下、モンスト)』のキャンペーン施策に焦点を当てた回。サーバサイドエンジニアの視点から、1つの機能をリリースするまでの流れやその際に心掛けていることなどが語られました。本記事では、イベントのダイジェストをお届けします。
登壇者の紹介
登壇者は、モンスト事業本部のサーバサイドエンジニア、浅野 大我(あさの たいが)。ネットワークなどに詳しく、最近はKubernetesに関心があるそう。モンストは、リリースされた直後から遊んでいたというベテランプレイヤーです。
浅野 大我(アサノ タイガ)
2020年に新卒として入社し、『モンスターストライク』のサーバーサイド開発を担当。GoやKubernetesに興味があり、趣味でも自宅Kubernetesクラスタを構築している。
イベントは司会のミクシル編集長・深町の質問に、サーバサイドエンジニアの浅野が答える形で進行していきました。
ユーザーのデータを預かるクリティカルな機能開発
深町 では早速、今回のテーマになっている「キャンペーンの新機能」について、どのようなものですか。
浅野 今回お話させていただくのは、2021年4月から1ヵ月間にわたって開催した「使って、もらえる!オーブキャンペーン」です。ガチャを引いたり、クエストに挑戦するのに必要なスタミナに交換したりできるアイテム「オーブ」アイテムの使用数に応じて報酬がもらえるという機能を実装しました。
深町 オーブは、ゲームの中でかなり大事なアイテムですよね?
浅野 そうですね!ユーザーさんからお預かりしている大事なデータです。なので、今回実装した機能はクリティカルなものだと言えます。
深町 どのくらいのスケジュールで進められたのですか?
浅野 ざっくり言うと、開発の流れは、企画キックオフ、開発、結合テスト(QA)、リリースの4段階。今回は、キックオフからリリースまでにかかった期間は、2カ月程度でした。モンストで何か1つの機能を開発するときは、だいたいこのくらいです。
深町 実装にかかった期間は?
浅野 実際にコードを書いて、サーバに入れるのにかかった期間は1カ月程度でした。より規模が大きい機能を実装する場合は、数カ月かかることもあります。さらにいうと、企画からリリースまでの流れを2サイクル回して、1つの機能を作ることもありますよ。
キックオフミーティングで課題解決の実装方法を検討
深町 ここからは、各工程について詳しく聞いていきます。最初の企画キックオフでは何をするんですか?
浅野 これは、企画やプロモーションの担当者、デザイナー、エンジニアが集まって行うキックオフミーティングのことです。ゲーム内のクエストとキャクターのマスターデータの調整や、課題の整理とそれを解決する実装方法の検討などが行われます。
深町 課題というと、具体的にはどのようなものですか?
浅野 よく挙がるのは、サーバにかかる負荷です。APIを叩く数が多いほど通信時間が長くなるので、1回で返せるように設計するなど。
深町 なるほど。ちなみに、エンジニアは何名で開発するのでしょうか。
浅野 基本的には、案件ごとにサーバサイドエンジニアとクライアントエンジニアが1名ずつアサインされます。多機能を開発する場合は、それぞれ2名で対応することもありますし、インゲームのみ場合は、サーバサイドエンジニアは入らず、クライアントエンジニアだけで対応することもありますね。
深町 規模によってアサインされる人数が変わってくるんですね。
影響範囲が重要
深町 続いては、開発について解説をお願いします。
浅野 まずは、キックオフミーティングの内容をもとに、APIとマスターデータを設計します。必要なデータをどこから持ってくるか整理して、ドキュメント(仕様書)に落とし込んでいく作業です。心掛けているのは、コードが既存の機能に関係するときは、影響範囲を調べることです。
深町 それは、簡単に調べられるものなんでしょうか?
浅野 僕は結構時間をかけるタイプです…。モンストには、ゲームの動作そのものに必要なものや、今回のようなキャンペーンに使われるものなど、色々な機能があるので、調べるのに時間を使います。今回の機能は冒頭でもお話した通り、オーブに関連するものなので、僕としては本当にデカいプロジェクトでした(笑)。ほかの機能に影響が出ないか確かめるためにテストも書きました。サーバチーム内では、自分が開発した機能がメンバー開発を担当する機能に影響しそうなときは共有するようにしています。
深町 機能開発にアサインされるエンジニアは1人ですが、他のサーバサイドのメンバーとも協力しながら進めているんですね。
浅野 はい。週に1度はエンジニアのミーティングが行われるので、そこで自分が担当している開発について共有しています。サーバにコードを反映して、想定通りの挙動が行われるか確認した後は、サーバサイドエンジニアの先輩方からのコードレビューを受けます。ちなみに、サーバサイドエンジニアの役割はモンストの新機能の開発だけではありません!
深町 というと…?
浅野 開発の後の結合テスト(QA)で使用するツールもサーバサイドエンジニアチームで管理しているんですよ。やはり実機で結合テストの操作を繰り返すのは負担になりますし、効率的に開発に取り組めるよう、メンテナンスを行ったり、随時要望を取り入れたりしながら管理ツールを開発しています。
質疑応答
最後は、質疑応答です。視聴者のみなさんから寄せられた質問にもリアルタイムで回答しました。
Q.管理ツールはどのようなフローで開発しているのでしょうか。
管理ツールを利用する人に事前にヒアリングを行い、「こんな機能が欲しい」という要望を取り入れています。
Q.今回、新機能を開発するにあたり、一番苦戦したことは何ですか?
「ガチャを引く権利」を表現するところです。これまでモンストでは、どれか一つのアイテムを使ってガチャを引いていました。ところが今回は、アイテムとプラスαの何かを使ってガチャを引くので、複雑かつ作業も多く、かなりヒヤヒヤしていました(笑)。安心して取り組める環境ではありますが、ポイントの加算が失敗すると、オーブが追加されなくなるので責任重大で緊張しますね…。
最後に
第4回目の「THE METHOD」では、サーバサイドエンジニアの視点から、キャンペーン施策の一環となる新機能の開発フローやその際に心掛けていることをご紹介しました。開発の様子や現場の雰囲気も掴んでいただけたのではないでしょうか。
オンラインセミナー「THE METHOD」は、今後も開催予定。様々な“メソッド”に焦点を当てながら、制作ノウハウなどをお届けしていくので、エンジニアに限らず、ものづくりに関わる皆さまに広くご参加いただければと思います。
【次回開催についてのご案内】
概要:THE METHODの第5回目は、ミクシィグループのヒットタイトル「モンスターストライク(以下、モンスト)」でユーザーの皆様が楽しく遊んでいただくための「UI(ユーザーインターフェース)」をどのように作っているかについてお話しさせていただきます。 特にモンストの新規クエストの一つである「秘密の冒険船」制作をどのように行っているかを谷口 晋也(タニグチ シンヤ)がUIデザイナーの視点からお話しさせていただきます。
日時:2021年6月15日(火)19:30~
※Q&Aを含め、40分程度を想定しております。
場所:オンライン配信(予定)
応募:https://the-method.connpass.com/event/213737/
※先着申し込み順となります