見出し画像

第9回プロトスプリントリーグ 振り返り


概要

8/4~8/6の間に行われたCA主催開発型インターンシップ「プロトスプリントリーグ」に参加しました。

今回のプロトでは「くみあわせ」というお題が与えられ、私達のチームは文房具を組み合わせて機体を作成し、敵を倒すゲーム「ぶんぼ―ビルダー」を制作しました。

結果、2位を受賞することができました!

以下、プロトスプリントリーグについての説明や事前準備期間・制作期間にやっていたことなどについて順にお話しようと思います。

あとから見ても思い出せるようになるべく詳細に書いたので、少し眺めです。予めご了承ください。


プロトスプリントリーグとは

まずはプロトスプリントリーグについての説明です。プロトスプリントリーグは、事前に与えられたお題を基にチームでゲームを制作するイベントです。制作期間は3日間で、総合的な完成度によって順位が決定します。

事前準備期間

1日目 - キックオフ

制作期間から約1週間前の7/28にキックオフを行いました。キックオフでは、各メンターさんの自己紹介やチーム分け、お題発表などがありました。

今回は5人組×5チームでゲーム制作に挑むことになりました。チームにつきメンターさんが2人つき、様々なサポートをしてくれました。
お題は「くみあわせ」!属性や形、音楽など…色々な角度から考えられる面白いお題が出ました。

チームが発表された後、チームごとにDiscordで顔合わせを行いました。初日はお互い探り探りで、お題どうしようか~みたいな感じでゆるく会話していた気がします。案出しにMiroを使用し、各自「くみあわせ」から思いつくことを片っ端から挙げていきました。

テーマから連想される言葉を連ねている様子

また、組み合わせ要素が面白いゲームも参考として右に並べていきました。この時点でうっしーさんが2D版Besiegeの案を出してくれました。もっと他の案が思いつく可能性もあったので、方針決定は次回に持ち越されました。

2~3日目 - 方針決定

2日目と3日目は集まった数人で軽く会議が行われました。私は都合がつかず両日不参加だったのですが、会議後にDiscordのチャット欄で情報が共有され、意見など気軽に言うことができたのでとても助かりました。

また、3日目の時点で当初から候補に上がっていた2D版Besiegeの方針で進めることに決定しました。挙動などの仕様が複雑そうだったこともあり早めに方針を決めたのですが、結果的に良い判断だったと思います。

4日目~前日 - 色々準備

4日目は全員集合で会議を行い、そこで当日までの役割を決定しました。実際にコードが書けるのは8/4~8/6の3日間のみなので、私達のチームは「設計」「素材」「画面構成」の3つの役割分担で準備を進めました。
私は画面構成を担当し、本番までにラフを共有して意見をもらったりしてました。事前に画面構成を考えていたおかげで、本番中はレイアウトに悩む時間がほとんどなくてよかったです。

画面構成のラフ

はるさんとゆーへーさんはクラス設計を担当してくれました。厳密な仕様がない状態で考えるのって結構大変だと思うんですが、準備してくれてとても助かりました。おかげで、制作中に「手空いたからここの実装代わります!」と横から楽に手伝うことができました。

おおもりちゃんはBGMやSEなどの音楽素材を、うっしーさんは画像素材を集めてくれました。おおもりちゃんが集めてくれたBGMが好評で、流しっぱなしで作業に戻ってしまう(!)人もいたとか…
うっしーさんはドット絵が得意とのことで、描くスピードがめちゃ速かったです。私もドット絵練習したいので、是非教えてほしいところですね。

制作期間

1日目

初日の主な役割分担は以下です。

  • 素材作成:うっしー

  • パーツ挙動実装:おおもりちゃん

  • パーツ組み機能実装:はる

  • UI挙動実装:ふわ

  • 敵挙動実装:ゆーへー

私は各シーン間の移動処理を実装しました。コードをできるだけ綺麗に書きたい思いがあったので、初日は丁寧に書くことを意識しました(2日目からはそうも言ってられなくなりましたが)。今回はUniRxが採用されていたので、MV(R)Pパターンで実装しました。

他の人達もそれぞれ実装を進めてくれて、まあまあの進捗を出すことができました。初日終了時点で、パーツを組んで自機を作成し、動かすところまでが実装できていました。健康睡眠でした。

2日目

2日目の主な役割分担は以下です。

  • 素材作成:うっしー

  • パーツ挙動実装:おおもりちゃん

  • パーツ組み機能実装:はる

  • オーディオ・進捗管理:ふわ

  • 敵挙動実装:ゆーへー

2日目は、19時までに初回ビルドを行うという一大イベントが待ち受けていました。そのため、それまでにゲームループを完成させよう、と各自で実装を進めました。

ただ、各自の作業部分を繋ぎ合わせるのに時間がかかり、かなりギリギリの提出になってしまいました。

以下は2日目に私がやったことです。

まずは音を鳴らせるようにしました。音を鳴らす方法は色々あると思うんですが(インスペクタからAudioSourceを登録したり、AudioClipを追加してコードから鳴らしたり)、今回は他の人の作業軽減のためにAudioManagerで一括管理することにしました。また、鳴らすシーンをEnumにまとめ、音楽名が分からなくてもEnumを指定するだけで自由に鳴らせるようにしました。

具体的には、AudioResourceというScriptableObjectを用意しました。そこに音楽素材を全て登録し、AudioManagerからKey(Enum)を指定して再生する感じです。鳴らす処理は簡単になったのですが、Enumを事前に登録するのが少し面倒だったのでもっといい方法があるかもしれません。

音楽管理

進捗管理機能も同様ScriptableObjectを使用し、ステージごとに必要なデータを登録して呼ぶ形にしました。はるさんとゆーへーさんが事前にクラス設計を済ませていてくれたおかげで、特にトラブルなく実装することができました。感謝

進捗管理機能のクラス設計図
ステージ1データ

2日目の夜はみんなで息抜きにDiscordのアクティビティで遊びました。時間ないのに何してんねんって感じかもしれませんが、ここでしっかり遊んだおかげでみんなと親交を深めることができました!!
これまでは少し様子を見つつの交流だった部分もあったんですが、最終日は雑談などの会話も増え、単なるチームメイトではなくて同じゲームを作る仲間として作業を進めることができました。アクティビティ楽しいよ

3日目

最終日は各々決まった役割、というより気づいたところから直していく方針で制作を進めました。

うっしーさんはUIやオブジェクトなどデザイン周りを全て実装してくれました。
おおもりちゃんは演出面を強化してくれ、ゲームがリッチになりました。
はるさんは最終日で仕様追加があったんですが、すぐ実装してくれました。
ゆーへーさんは私が抱えていたタスクを代わりに完了してくれました。

最終日は15時にゲームの最終提出があり、遅れると減点のためみんな全力で作業に取り組んでいました。ゲームのフィードバックが欲しかったので、15時よりも早くビルドして共有しました。

さまざま的確なフィードバックをもらいつつも、好感触な意見が多く他のチームのメンターさん達にも遊んでもらえて嬉しかったです!!

最終提出時間も残り約1時間に迫ったところ、なんと敵の攻撃が一発当たるとゲームオーバーになるバグが発覚!現場は騒然!直前にしてとてもバタバタしてしまいました。
結果的には間に合ったのですが、提出後のゲームを見ると特定条件下の画面遷移時にUIが表示されなくなるバグが…😭。通しでテストする時間が少なかったため、気づくことができませんでした。

それはさておき、提出後はみんなでやいのやいの発表スライドを作り、結果発表まで各自休憩のドキドキタイムを過ごしました。このタイミングで他チームのゲームが遊べるようになったので、うっしーさんがゲームプレイするのをみんなで眺めました。あとまたDiscordのアクティビティで遊びました。全然休憩してないですね。

結果発表

気になる順位ですが…第2位🥈でした!!!!!!!
当初からの目標だった「パーツを試行錯誤して組み合わせる面白さ」をちゃんと実現できたのが評価されたんでしょうか、とにかく嬉しかったです!!

第二位。やったー

もっとやれたな~!!という悔しさもありますが、第1位のチームは総合的な完成度が飛び抜けて高く、素直にすげ~と思いました。

発表後はメンターさん達も含めてKPTを行いました。

Keep
Problem
Try

チームの雰囲気を終始保ちつつ、というかなんなら右肩上がりで最後まで走り抜けられたのがとても良かったです。みんなそれぞれ良かったことや改善できることなど、成長できた3日間でした。ブログはメンターさんと約束したので書いてます。約束しなくても書くつもりでしたよ!もちろん!!

懇親会

KPTが終わったあとはメンターさんとの個人面談、その後はチームで懇親会を行いました。なんと、nonpi foodboxというフードデリバリーサービスでお家に晩ご飯が支給されました!鶏肉の炭火焼きみたいなやつがめちゃくちゃ美味しかったです!!お酒もついてきました!!

正直酔ってて懇親会の内容を詳しく覚えてないのですが、サイバーエージェントさんから見える眺め、特に夜景がめっちゃ綺麗だったことは記憶に残っています。それ以外にも、サイバーエージェントさんについて聞けたり雑談したりなど色々楽しかったです。


最後に

インターン、めっちゃ楽しかったです。普段ゲーム開発者を目指してる同年代の仲間と接することが少ないので、開発の話ができる友達ができただけでも大事なものを得ることができました。

3日間という短い期間ながら、人としても成長できた気がします。チーム開発の楽しさや支え合いの大事さを学びました。
優勝できなかったのは悔しい!!けど、まだまだ足りてない部分、伸びしろがあると考えるとこれからいくらでも成長できるってことなので、前向きに!

インターンに参加したことで、もっと精進せねば!という気持ちが強くなりました!これまで避けてきた技術も習得して、さらなるつよつよを目指したいです。

一緒にゲームを作り上げたうっしーさん、おおもりちゃん、はるさん、ゆーへーさん、本当にありがとう!!めちゃくちゃ楽しかったです!!
これで終わりにしたくないので!とりあえずは完成させてちゃんとリリースしましょう!!!あとマイクラとか他のゲームも色々遊びましょう!

メンターのさちゃさん、うっちーさんも本当に助かりました!面談の時に色々相談させていただいたことで、自分の中でも改めて整理することができたし、お二人の和気あいあいとした空気のおかげで私達のチームも盛り上がることができました!色々付き合っていただいてありがとうございました!!

インターンが終わってから数日経ってるんですが、未だに寝る時楽しかったな…って毎日思い返してます。マジです。

ほんとにめっちゃ楽しかったです!!!!もっかい参加したいなあ!!!!
ありがとうございました!!!

チームの他のメンバーが書いた記事もどうぞ↓


以下余談

余談 - 1人KPT

チームとしてのKPTはみんなで共有したので、今後の方針決めも兼ねて軽く1人KPTをしようと思います。

Keep

  • 自分なりにUI設計を考えて実装できた

  • 大きなコンフリクトしなかった

  • 演出の大事さに気づけた

  • 自分に任された作業をこなせた

  • めちゃくちゃ楽しいゲーム制作ができた

Probrem

  • 設計作業手伝えば良かった

  • 画面遷移でバグを残してしまった

  • トランジションエフェクトの実装間に合わなかった

  • タスク管理もっと上手くやれた

  • UIの設計について共有が漏れていた

Try

  • 演出面もっと勉強する

  • 通しでテストする機会を増やす

  • 期間内でできる範囲の見積もり上手くなる

  • タスクの期限を設定する

  • ゲームちゃんと完成させる!!!


この記事が気に入ったらサポートをしてみませんか?