株式会社サイバーエージェント主催「Game Client College~設計編~」に参加しました
はじめに
2/1~3/7の約1ヶ月間、株式会社サイバーエージェント主催のイベントに参加してきました!
このイベントが人生で初めて経験したインターンなので忘れないうちにインターンの内容、参加した理由、学んだことについてまとめていきたいと思います。
インターンの概要
詳しく知りたい方は以下のサイバーエージェントのインターンのページを見てください
2/1~2/22まで毎週土曜日に各日10:00~18:00の間リモートで設計についての講義、3/7に渋谷で最終成果発表会が開催されました。
また講義とは別に任意参加ですが2/19に最終成果発表会と同じ場所でオフラインもくもく会が開催されました。
最終成果発表会もオフラインもくもく会もサイバーエージェントが交通費を支給してくれました。
チーム分けはランダムに行われましたが、最初の講義の最後に懇親会があったのでめっちゃしゃべりやすくなりました。
メンターさんが各チームに1人ずつついてくれて、講義や開発についての質問、相談に答えてくれました。(すごい丁寧な人だった)
スケジュール
Day | 日付 | 内容 | 開催場所 |
---|---|---|---|
Day1 | 2月1日(土) | デザインパターン入門とUnityの関係について | リモート |
Day2 | 2月8日(土) | Unityにおける非同期処理入門 | リモート |
Day3 | 2月15日(土) | R3、UniTaskを活用したMVP実装 | リモート |
オフラインもくもく会 | 2月19日(水) | 現場エンジニアとの懇親会、最終課題の制作 | オフィス |
Day4 | 2月22日(土) | 最終課題の制作 | リモート |
最終成果発表会 | 3月7日(金) | 最終課題で完成したものについて発表 | オフィス |
講義で学んだ内容
講義内で私が学んだことをおおざっぱに分けると以下の3点です.
ただ聞くだけではなく実際に手を動かしたりして学べるので、個人的には知識が身に付きやすくて良いなと思いました。
- なぜ設計を学ぶのか
- デザインパターンとは何か、どう使うのか
- Unityで実現できる非同期処理について
学んだ内容を具体的に分けると下の表のようになります
学んだ内容 | 具体例 |
---|---|
デザイン原則 | SOLID原則、KISS原則等 |
デザインパターン | GoFのデザインパターン、Singletonパターン、Observerパターン、MVPパターン等 |
非同期処理 | コルーチン、async/await、R3、UniTask |
ライブラリ | R3、UniTask、DoTween |
どの知識も講義、実習、グループワーク等で楽しく理解を深めることができたと思います。
インターンで意識した点
実践
講義で学んだ内容を忘れないために学んだデザインパターンを作ってたゲームや最終課題に実装して理解を深めてました。
挑戦
最終課題のゲームをMVPパターン、Factoryパターンを使って設計を行い、機能追加をしたり、アニメーションを増やしたりして思いつく限りの改造を行いました。
インターンを通して考えたこと、反省
アウトプットの重要性
このインターンに参加するまではアウトプットについて深く考えたことはなかったと思うし、アウトプットをするにしても精々コードを書くまでで、学んだことを言語化しようとは思わなかったと思う。
しかし実際にインターンに行ってみて、もし忘れてしまっても良いように学んだことを一度言語化した上で記事として残しておくのは非常に重要であると気づいた。
設計への理解度が深まった
設計というのはとりあえずやっとけば後々楽になるのかなみたいな浅い考えだったが、設計について勉強しているうちに適当に設計を行うと逆に大変になることがわかった。どのデザインパターンにも長所と短所があって、適材適所でどの場面でどのデザインパターンを使うのかが重要になるとわかった。
感想
普段、本や記事、YouTubeを見ながら独学でゲーム開発についての勉強を行っていたが、今回のインターンのような普段と違う環境に身を置くことで様々な刺激を得ることができたように感じる。
講義、グループワーク、メンターさんとの会話や参加している他の学生さんたちとの会話、普段絶対に出ることのない課題の存在、そのすべてが良い刺激でモチベーションアップに繋がった。
大変ではあったもののとても楽しくもあった一か月だったので、このインターンに参加しようか迷っているのなら参加することを強くお勧めしたい。
Discussion