11月18日、『モンスターストライク』(以下、モンスト)を運営するミクシィ主催のオンラインセミナー「THE METHOD#6『〜「モンストをつくるひと」がキャリアについて振り返ってみた〜』が行われた。
本セミナーは、プロダクトにおいて実践されている「ものづくりの方法論」の発信・共有を目的としている。第7回目となる本セミナーのテーマは、ミクシィのデジタルエンターテインメント事業の発展を支える「開発」部門から「モンストエンジニアのキャリア」についてフォーカス。
新卒4年目、クライアントエンジニアグループのマネージャーである岡本 勇太氏が登壇し、『モンスト』を支えるクライアント開発や、自身がエンジニアとしてどのようなキャリアや経験を歩んできたのかについて説明が行われた。本稿では、セミナーの内容についてレポートをお届けしていく。
【登壇者紹介】
岡本 勇太
2018年新卒でミクシィに入社。モンスターストライクにおいて、クライアントサイドの開発を担当。新規コンテンツ機能の実装、ストライクショットの実装、開発環境改善等、複数の担当領域の開発を兼任して手掛ける。2021年5月からモンストクライアント2グループのマネージャーとして従事。
長期運用タイトルの開発における業務の進め方
岡本氏はまず、『モンスト』の開発現場について、ストライクショットや友情コンボを実装する「ギミック領域」とUI生成ロジックなどを開発する「UI領域」、APIの通信処理など開発に携わる「システム領域」の3つにグループが分かれていると説明。
開発フローにおいては、「開発バージョン」と呼ばれるひとつのバージョンに区切り、どのような内容を案件として扱うか、施策内容、優先度を含め決定。一つの案件ごとに最初に詳細に議論するキックオフが開かれ、施策の背景や仕様詰め、実装懸念を企画担当やエンジニア、デザイナーがお互いに共有する。
開発開始後は企画やデザイナー、エンジニア、VFXそれぞれが期待する機能を実装していく。エンジニアにとっては必要なデータや素材について、それぞれのセクションと密にコミュニケーションをとりながら、業務を進めていく流れとなっているそうだ。
案件の規模や内容によって、開発期間が数バージョンに及ぶものもあるという。クライアント発信で改善提案や新機能提案をする場合もあり、採用が決まれば、開発フローに載せてリリースまで進行していく。担当領域によっては密にコミュニケーションを取りながら進めることもあると続けた。特にギミック開発は、VFXと密に連携して、品質と実装の両方を微調整しながら進めていくことになるとのことだ。
出来ることから積極的に取り組むことがエンジニアとしての強みになる
そんなクライアントエンジニアグループのマネージャーを現在務める岡本氏だが、実は2021年4月まではリーダーでもなかったとのことだ。当初4月からチームリーダー就任の打診があったそうなのだが、急遽2021年5月からマネージャーをやらないか?という話になった。そのため、リーダー期間はわずか1ヶ月でのマネージャー就任だったそうだ。
マネージャー打診の経緯としては、前任のマネージャーが退職するタイミングだったからだと話す岡本氏。その際に、後任として二人体制のマネージャーとして推薦されたそうだが、なぜそのような大抜擢が行われたのか。
岡本氏は、マネジメント経験がないながらも推薦されたのは、積極的に案件に取り組む姿勢が評価されたからだと振り返る。
実際に、岡本氏が『モンスト』開発メンバーに配属となった当初から、まずは様々なことに取り組んでみようと自分から様々な業務に携わることを意識していたそうだ。
自分自身の中でも、まだ明確に得意分野ややりたい領域が決まっておらず、それなら成長の機会として様々な案件に取り組み、その中で極めたいものが見つかればその分野のキャリアに進めてみようと考えていた。
結果、多くのメンバーが関わる『モンスト』において、岡本氏はクライアントグループにおける担当領域をほぼ全部経験してきたそうだ。そういった経験を経る中で様々な職種の人とコミュニケーションをとる姿勢や案件を進める能力の部分が、マネージャーとして推薦された要因として大きかったと岡本氏は話す。
とはいえ、自身が経験していない分野も多く、案件に携わる不安や壁もあるのも事実。実際、岡本氏も配属当初から、『モンスト』という長期運用タイトルがゆえに規模の大きさにて分からない部分が多く、その関わる人数の多さから提案・発言しようにもなかなか萎縮してしまう時期が続いてしまったという。
技術的な面においても、C++の実装の理解に時間がかかったほか、経験や慣れで積み重なった言語化されてないノウハウを理解することに時間がかかってしまったそうだ。
その対策として岡本氏は、積極的に取り組みながらも、まずは出来ることから取り組んでいき、自分にとっての当たり前にしていくことに努めたと話す。
自分の担当以外についての知識を補完していくために、空き時間はとにかくコードを読み進めていったほか、コミットベースで実装を追いながら質問や提案を繰り返すことで実装理解を深めていったそうだ。
コミットベースで取り組むことで、様々な仕様に対する実装方法のキャッチアップも早く身につけることができる。そうすることで、何の差分が不具合の原因になるのかも見当が付くようになり、自然と原因箇所を特定するスピードも上がることで、不具合報告を積極的に拾うことができるようになったと振り返った。
コミットベースで担当以外の知識を補完していくことで知識と経験が身につき、適切な判断が下せる自信に繋がったことで、不具合対応時のコミュニケーションもトライアンドエラーで慣れていけるようになったと岡本氏は説いた。
そして、積極的に提案を行なっていくことも視野を広げていく上で、重要だとも話す。岡本氏は、提案を行うことで、『モンスト』として何を重視しているかを掴むことができるようになったそうだ。自分で改善案や機能提案を行うことで、自分にはない視点で物事を考えることができるようになり、自ら課題や問題を見つけ解決できる行動をとれるようになったという。
案件との向き合い方についても、丁寧な実装意識とコミュニケーションを重視したという。バグを100%出さないことを目指しており、仕様の変更や機能拡張などを含め、常にバグを出さない意識をアップデートしていくようなところを、欠かさずやっているという。
特に、対応内容や不具合原因、影響範囲、QA観点などの企画担当に向けての記載を、人一倍丁寧に書くことで、自身の理解度を測るとともに、QAの質を上げることに努めたそうだ。
コミュニケーションにおいても、企画やデザイナーに委ね過ぎないよう心掛け、目的や背景を理解した上で実装コストなどを考慮した提案を行い、より良い形にするよう意識し続けたという。
このような積極的に技術習得に励むことや案件に向き合う姿勢が自分自身のエンジニアキャリアとしての強みとなり、現ポジションへの挑戦への機会を得ることにつながったと振り返った。
最後に、岡本氏は「『モンスト』開発でしか経験できないことは多い」と話し、長期運用ならではのやりがいがあることを語る。
「モンストの環境を活かすことで、よりエンジニアとして成長できる組織へしていきたい。そして、成長できるチャンスを今後もたくさん作っていきたいです。今回のお話で『モンスト』開発に興味を持っていただければ嬉しいです」とまとめ、セッションの締めとした。
■質疑応答
セミナー後半では、岡本氏が視聴者からの質疑応答に対応する時間が設けられており、視聴者から数多くの質問が寄せられた。以下では、質疑応答の模様についてお伝えする。
──:学生時代はどのような勉強をしましたか?
岡本氏:東京電機大学の未来科学部でロボット工学を勉強していました。ゲーム開発に関する勉強に関しては大学の1年の後期からベンチャー企業のインターンシップに参加し、Unityでゲームアプリの開発・リリース・運営の勉強をしてきました。その後はミクシィに内定を頂き、『ファイトリーグ』というアプリの開発運営に携わってきました。
僕自身ベンチャー企業でUnity開発をしていたものの、プロのコード実装や規模の大きい部分でのUnity開発フローに携われたことは初めてで。実際に現場の経験を積んだのは、大学4年になってからでした。
──:ゲーム開発に携わることになったきっかけを教えてください。
岡本氏:小さい頃からゲームエンジニアになりたいと思っていました。大学に進学する際に、情報学科かロボット学科に行くかで迷っていましたが、プログラミングの勉強は独学でもできると考え、ロボット・メカトロニクス学科への入学を決めました。就職活動は、いくつかのゲーム会社を受け、自分自身の軸にあっているかどうかを意識して選考を受けていました。
軸として大事にしていたのは、”みんなでワイワイ楽しめて、面白いゲームを作りたい”という想いでした。そのため、ゲームの内容ももちろんですが、面接でも「ゲーム作りで大切にしている想いは何ですか?」と聞いて、そこでの回答を企業選びの参考にしていました。
──:『モンスト』のシステムを理解するには、どのゲームを学べば良いでしょうか?
岡本氏:『モンスト』はC++で書かれているので、C++の知識があると良いと思います。C++の知識があることで、コードを書く熟練度はすぐに身に付きます。そのほか、アクションゲームの実装経験があれば、より理解が早まると思います。
ゲームの実装はUnityなどゲームエンジンのコリジョンを使うわけではなく、独自に実装したコリジョンや当たり判定を実装していますので、そういった部分を自分自身で実装した経験があれば、モンストの実装を理解しやすいですね。
──:GitHubに公開されているコードを読むことも効果はありますか 。
岡本氏:他のエンジニアや同じチームの方に使っていただきたい機能を実装する際など、OSS(オープンソースソフトウェア)のコードは大変参考になると思います。GitHubに公開されているコードを自分自身で読む習慣が付いていると、本当に使いやすい機能か、拡張しやすいインターフェースかなど設計に関する部分について自然と知識が積み重なってくると思います。
──:C++に初めて触れてから、『モンスト』の機能の実装ができるまでどれくらいの期間勉強していましたか?
岡本氏:4月にミクシィに入社して1ヶ月の研修を終え5月に配属されてから、『モンスト』のコードを読む形になりました。最初の1ヶ月は他のコードを読みながら実装し、ポインタと参照の使い分けなどに苦労していました。それから自身でもテンプレートなど他の機能も理解するまでに大体2〜3ヶ月はかかったと思います。
次回の「TheMethod」は、『モンスト』のサウンドデザインに焦点を当てた内容を予定している。興味のある人は参加してみてはいかがだろうか。
©XFLAG
会社情報
- 会社名
- 株式会社MIXI
- 設立
- 1997年11月
- 代表者
- 代表取締役社長 木村 弘毅
- 決算期
- 3月
- 直近業績
- 売上高1468億6800万円、営業利益:191億7700万円、経常利益156億6900万円、最終利益70億8200万円(2024年3月期)
- 上場区分
- 東証プライム
- 証券コード
- 2121