見出し画像

1week開発におけるエンジニアチームの工夫と学び ~初めて21卒全員でゲーム開発をした話~

こんにちは!G2 Studios 21卒エンジニアのM.Sです。

「21卒メンバーだけでゲーム開発がしたい!」という私たちの要望で、21卒新人研修の総まとめとして「1week開発」を実施させていただきました。
「1week開発」が実現するまでの経緯やゲームの企画・デザインについては、これまでに公開されたプランナー編・デザイナー編に記載がありますのでぜひそちらをご覧ください。

▼プランナー編

▼デザイナー編

それまでの研修の学びをどう活用したか、1週間という期間で何ができるのかなどについて、今回は【エンジニア視点】でご紹介します!

▼開発したゲーム画面

画像1

■「やりきるための」セクション目標

今回「1week開発」をするにあたり、2つの大きな目標を立て、各セクションごとに小目標に落とし込んで取り組みました。

①21卒全員で開発を楽しむ。そのために全員が役割を持ち、意味のない口論、チーム状態が悪化する言動を避ける。
②研修で完全燃焼をする。開発でやりたかった事を「実現」し、それを完全燃焼と定義する。

上記の全体目標に対し、エンジニアチームでは
・1weekという短い期間の中で全員が過不足なくタスクを受け持つにはどうするか
・1week開発終了時に、完全燃焼したと言いきるための基準はどういった状態なのか
という部分を中心に話し合い、以下の「セクション目標」を設定して達成を目指しました。

①画面ごとに担当者を分け、責任感を持って開発を進める。
機能ごとという大きな単位ではなく、各画面で担当者を振って進めることで過不足なくタスクを受け持つことができると考えました。

②開発完了時にSバグを発生させない。(Sバグ=進行不能、クラッシュ等)

完全燃焼のためには、ゲームを完成させることが重要だと考えました。そのため、進行不能なエラーを発生させないことを目標としました。

①画面ごとに担当者を分け、責任感を持って開発を進める

これは、「タイトル画面・ゲーム画面・リザルト画面といった、各画面ごとで担当者を分け、それぞれの担当箇所に責任を持って開発を進める」という目標です。
「画面ごと」と明確にすることで、それぞれの進行具合を認識しやすくし、手隙のメンバーにタスク振りがしやすい状態を作り出すことができました!
また、それぞれの担当箇所に責任を持ちつつも、「担当箇所で競合しそうな箇所を把握し、変更する場合は一声かける」「プルリクエスト1つにつき、1人は必ずレビューを行う」といった、エンジニアチームとして最高のパフォーマンスを出すためのルールを定めました。

▼実際のレビュー画面

画像2

「レビューをする側もされる側も、多くの学びを得ることができた!」というメンバーの声も上がっており、それだけでも21卒全員で開発を行う意味があったなと感じました…!
私自身、プロジェクトに配属されてからもレビューから学ぶことは多く、研修時点で経験を得ることができたのは大きく成長につながったと感じています!

②開発完了時にSバグを発生させない。

この目標については、開発を始める段階で
・各クラスのクラス図を作成、共有による認識合わせを行う
・初期化や更新のタイミングをUnityの標準機能に任せるのではなく、スクリプトから管理する
・エラーハンドリングを行うことで、不具合が発生し進行不能になりそうな場合に対応できるようにする
といった「プロジェクト基盤」をしっかり整備することに力を入れました。結果、チーム内で検知できなかった進行不能バグや、手戻り作業の発生を防ぐことができました!

▼実際のクラス図

画像3
画像4

これにより「迷うたびに都度担当者へ確認する」「想定と違う設計で、何度もすり合わせが発生する」といった手間を省くことができました。
実際に完成したアプリでは進行不能になるようなバグは見つからず、「開発の初期段階に認識を擦り合わせること」の大切さを学ぶことができました!

■まとめ/感想

今回はエンジニア視点から「1week開発を進める上で大切だった事」を主軸にお話ししました。
短期間の開発では早くゲームを作り上げることが優先され基盤の工夫などは省きがちなのですが、あえて配属前の1week開発で行うことでそれらの良し悪しに気づくなど、貴重な経験になったと感じています。
また本記事を通じて皆さんに、「現場のエンジニアがどのように開発を進めているか」を少しでも知っていただければ幸いです。

今回作成したゲームの詳しい経緯やデザイン、プランナーが行ったことなど新人研修の詳細についてはぜひ下記のマガジンを見てみてください!

▼G2 Studiosの研修関連記事はこちら


▼G2 Studiosでは一緒に働く仲間を募集しています!


X(Twitter)にて最新のお知らせを配信しております。ぜひフォローしてください!