CyberAgent主催「3days ゲームクライアント向け開発型インターンシップONLINE」に参加してきました

## 初のハッカソン形式インターン参加
　この記事を見ているということは、もしかしたらあなたも過去の僕と同じような短期間開発型インターン参加に迷っている方ではないでしょうか？ここでは今回参加したインターンの感想を書こうと思います。

## 参加したインターン
###### ・インターン名
3days ゲームクライアント向け開発型インターンシップONLINE
###### ・インターン内容
**5人1組**（ゲームクライアント4人、バックエンド1人）となり**3日間**でゲームを開発し、完成度を競う。**ゲームの内容は前前日に公開される**（今回は「パズル」or「シューティング」）。**オンラインランキング形式を必須**とする。今回は7チーム組まれたので計35人の参加。
###### ・期間
2021年3月12日～14日

###### ・制作したゲーム
一人称シューティング「MATRIX」  
向かってくる敵を破壊する一人称シューティングゲーム。特定のアイテムを取ることで**Matrixゲージ**が回復し、Spaceキーを押すとMatrix状態となる。Matrix状態時は**超スローモーション**となり、敵の破壊が容易となる。ラウンド性でだんだんと敵の速度と出現頻度が上がり、壊せなかった場合ライフが減り、0になるとゲームオーバー。![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1092194/6ea61820-f038-e17b-8ffd-9c4fdeaef756.png)
##さっそく
　時間軸に沿って感想と改善点を書いていこうと思います。ここでは今後自分が短期間ゲーム開発をおこなう際のハンズオン、初めて参加される方の不安をなくす、という点で

**その日やったことと感想
*-----------------------------------*
改善点**

といった感じで書いていこうと思います。
***
###前々日（顔合わせ）
　顔合わせをZoomでおこないました。事前にSlackで気軽な雰囲気でやり取りをしていたので初対面から楽しかったです！チームメンバーにはいっちゃん、いっちと呼ばれるようになりましたね。大体の役割分担を決め、とゲームの案を考てくるようにという流れで今日は終了。調整さんhttps://chouseisan.com/ を使って前々日に顔合わせができていたことがチームのまとまりとして重要だったと今終わって改めて感じています。
*-----------------------------------*
　ゲーム内容発表がこの日の昼だったので、「顔合わせまでにゲームの案を考えてくること！」といった呼びかけがあると次の日をさらに有効活用できたなぁと思います。
***
###前日
　ゲームの内容を決定し、役割を決めました。今回僕はインゲームの企画立案者でもあるのでゲームシステム担当となりました。主なゲームシステム担当は2人で、他2人はUIやシーン切り替え、オブジェクト等のデザイン周り、バックエンドとのつなぎ込みにそれぞれ分かれることになりました。僕含めたゲームシステム開発の2人はMiro https://miro.com/app/dashboard/ を使ってロジックを考えていき、当日を迎えます。**Miroすごく便利！**これからも使っていこうと思います。
*-----------------------------------*
 忙しい人がいると当日まで通話できなかったりするので、もっと早めに予定のすり合わせをするべきでした。
![キャプチャ.PNG2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1092194/0155a61b-9d2e-bfb1-78dd-c3a01f46186d.png)
たくさん書きましたね…

###開発1日目
　SourceTreeの使い方と各Sceneに分かれた作業スペースの構築で午前が終わりました…。しかし、**前日しっかりロジックを考えていたことが功を奏しました！**1日目はスムーズにプログラム作成ができ、予定通りにタスクを終わらせることができました。チーム全員が順調に各自のタスクをおこなえていたのでひとまず安心しました。
*-----------------------------------*
　**SourceTreeの使い方を前日にチームで一度確認すべき**でした。チュートリアルはCyaberAgent側からいただけたものの、branchの生成からpullまでの流れを当日おこなうことは怖いものです。GitHubを用いた共同開発経験はあったものの、SourceTreeを採用していなかったので…。でも大丈夫！このインターンが終わる頃にはSourceTreeが使えるようになります！

###開発2日目
　ゲームのオリジナリティを出す部分の開発に入りました。**社員さんと具体的なゲーム内容の話し合いができた**ことでゲーム内容の決定速度が上がり、プログラムを書くことに時間を注ぐことができました。インゲームの開発は順調でしたが、バックエンドとつなぎ込みが想像以上に難しいようで、2日目ではゲームの一連の流れは完成せず、ビルドも最終日におこなうこととなりました。
*-----------------------------------*
　やはりゲームのビルドは2日目終了時点でできておくことが理想です。**各自作成したものをつなぎ合わせる際に必ず想像もしていない問題が複数発生します。**こればかりはプロでも問題は発生するからしょうがない！と社員さんからコメントをいただきました（笑）2日目でゲーム全体の流れを完成させ、3日目ブラッシュアップに図るようにしましょう。

###開発3日目
　怒涛の数時間でした。全体のつなぎ合わせでバグが複数発生し、やはり僕が作成したプログラムの部分もバグがあったようで…結果全体として動くものが完成したのは開発終了時刻の30分前でした！全員でデバッグしようというのもできなくなり、レベルデザインは僕1人の肌感覚でおこないました。社員さんにつきっきりでアドバイスをいただきバグの取り除き、インゲームのゲーム性向上をおこないました。社員さんには頭が上がりません…木原さん、ふみさん、那須さんありがとうございました！本当に良い経験となりました。
*-----------------------------------*
　最終的には1つでもバグが発生してはいけません！そのため**全員とすぐに連絡がつく必要があります**。今回Zoomを2、3個立てて作業をしましたが、バタバタしてくると誰がどこにいるのか分からなくなります！どこのルームにいるか確認できるようにするべきでした。また、**バックエンド抜きで一度繋ぎ合わせをし、プロトタイプを作成する**ことが重要です。2日目での改善点にも書いてある通り、バックエンドにかかわる部分は数行の差し替えで完了するようにし、全体の動作確認は2日目に終わらせておくと良いです。

###乾杯
　このためだけに3日間頑張ってきた！社員さんの話も面白いし、ゲームが完成した達成感で大満足です（入賞できなかった悔しさを残しつつ）。

##まとめ
　3日間のゲーム開発はかなりハードでしたが、その分以上の見返りがあったと感じています。チームから自分が知らない技術を学べたり、社員さんからゲーム開発のコツや長年開発する上での開発との向き合い方を学べたり…想像を超える充実感がありました。次はどの開発イベントに参加しようかな！
***
####追記
一緒のチームとしてゲーム開発をしたコニー（バックエンドつなぎ込み担当）のブログはこちら！一番大変そうな部分を先陣切って成し遂げた勇気あるチームメイトです。
https://konichallengelog.com/ca_proto/