ハッカソンの振り返り (2)

## はじめに
この記事はDeNA23新卒AdventCalender2022の15日目の記事です．

https://qiita.com/advent-calendar/2022/dena-23-shinsotsu

こんにちは．
DeNA 23卒内定者のSadmachineです．
2週連続で木曜日はハッカソンの振り返り記事です．
(2)なのは，Windowsで新規フォルダを連続で作ると自動で連番が振られるのが元ネタとなっております．
@putcho01 さんの先週の記事「ハッカソンの振り返り」は[こちら](https://blog.putcho01.com/posts/jphacks-2022/)．

15日目は私が以前「REAL12E soft.」というVRゲーム制作チームのリーダーとして参加したハッカソン __「技育展 2022 ゲーム部門」__ について「 __最優秀賞__ 」を取ったのでその振り返りを書こうと思います！

## 目次
<!-- @import "[TOC]" {cmd="toc" depthFrom=2 depthTo=3 orderedList=false} -->
<!-- code_chunk_output -->
- [技育展とは](#技育展とは)
  - [概要](#概要)
  - [申し込みなど](#申し込みなど)  
  - [持ち込んだ企画について](#持ち込んだ企画について)
- [技育展でやったこと](#技育展でやったこと)
  - [仕上げで何をするか，目標を決める](#仕上げで何をするか，目標を決める)
  - [ひたすら開発](#ひたすら開発)
  - [リリース](#リリース)
  - [プレゼンと結果発表](#プレゼンと結果発表)
- [まとめ](#まとめ)

<!-- /code_chunk_output -->

## 技育展とは

### 概要
技育展とは，[株式会社サポーターズ](https://talent.supporterz.jp/)が主催している __学生エンジニアのアウトプットを展示するイベント__ です．
今年は3回目の開催で最終的な賞金総額はなんと600万円でした．
公式の開催に際しての説明としては

__技育展は、アウトプットの促進を目的としたエンジニアを目指す学生のためのピッチコンテストです。
自らのアウトプット（作品）を展示（プレゼン）し、もの創りの楽しさ、厳しさ、可能性を知ることができます。__

となっています．
とりあえず，主催しているサポーターズが出している[この記事](https://note.com/geek_pjt/n/n3d0a81c3b149)を読むともっと理解が深まるかもしれません．

### 申し込みなど
募集から締め切りまでの期間が意外と短いので早めに必要書類をそろえて応募するといいと思います．
そして当たり前ですが，発表したい内容などについて書く必要があります．
しっかりと　__明確にどんなアプリケーションを作っていて，なぜ発表したいのか__　を書ければOKだと思います．
任意ですがデモ動画を提出する欄があります．
動画があると雰囲気なんかも伝えやすいので，おすすめです．

### 持ち込んだ企画について
ゲーム部門に持ち込んだ企画は「 __NEO MOLKKY VR__ 」というVRゲーム作品です．
題材としてモルックを選びました．
モルックとはフィンランド発祥のアウトドアスポーツで，近年かなり注目され始めています．
モルックという木製のピンで、スキットルと呼ばれる12本のピンを倒して得点を競い合うものなのですが，VRゲームにしたら面白いのでは？　と思い，企画として持ち込むことを決めました．
あとは，モルックかつVRゲームといった作品が開発開始時点で存在しておらず，世界初を謳えるというのも狙いました．
どんなゲームかは[こちらの動画](https://www.youtube.com/watch?v=1a0etg1TJcw)をご覧ください！

ちなみに，使用技術等はざっくり以下の通り．
- Unity 2020.3.27f1
- C#
- GitHub
- Meta Quest2

※2022年6月開催のKONAMI主催のIndie Game Conect 2022（IGC2022）でこのNEO MOLKKY VRを試遊をしてもらっているので，その仕上げ開発という形での参加となっています．


## 技育展でやったこと

### 仕上げで何をするか，目標を決める
IGC2022で一般の方に試遊してもらえるくらいには作っていたのですが，試遊後のアンケートで「モルックを投げるのが難しい」という意見が多数寄せられました．
なので，仕上げとしてモルックを投げるチュートリアルを導入することを今回の実装のゴールに決定．
流れ的には狙った的に向けてモルックを入れるという動作をStep by Stepで学んでいくようなものにし，各Chapterで分けることにしました．

実装予定は以下のような日付ベースの線表で管理することにしました．
（黄色が実装する日となっており，タスクがグレーアウトしたものは実装が完了しているものです）
![image](https://user-images.githubusercontent.com/65950135/206907237-2cea9e23-071b-4963-b5cf-f68b214c4b80.png)

### ひたすら開発
さて，やるすることが決まったのであとはひたすらに実装です．
仕上げ開発期間は2週間程度．
ハッカソンなのでプレゼンもする必要があり，全日実装につぎ込めるわけではないですが最初に作っておいた日付ベースのスケジュールが役立ちました．
が，やっぱり予定通りいかないもので……
最終的な線表は以下の通り．
![image](https://user-images.githubusercontent.com/65950135/206907840-48963935-d8fe-48a5-970b-1bd38cc2260e.png)

想像以上にモルックを狙った場所に投げ入れさせる処理を作るのに手こずり，4日もかけてしまうという……
ですが，納得のいく実装ができたので大変満足しています．
また，なるべく汎用的なソースになるように組んだりと，設計的な部分も意識しながら実装することで後れを巻き取りました．
その他，コントローラーのボタン周りでバグが発生したり，デバッグの日程とってないやん……となりいくつか線表を見直しつつ進めました．

今回の実装では，チュートリアルの字幕に今まであまり使ってこなかったUnityのTimeLine機能を使うなど技術的な挑戦もありました．
この実装をする前に，インターン先で任されたVRの案件でTimeLineを使うなどがあったので今作品でも試行錯誤しながら実装できたので良かったです．
プロジェクトの進め方など参考になるような経験をさせていただいているインターン先には感謝です(｀･ω･´)ゞ

その他，苦労した点はやっぱりGitHub周りでした．
UnityでGitHubを複数人で使おうとすると相変わらずコンフリクト起こしまくりでした……
いつになってもいうことを聞いてくれないので困ってしまいます．
私はCUI派なのですが，このハッカソンを機にGUI派に改宗することを決めたくらいです……

### リリース
無事期間内に，チュートリアルも完成したのでSideQuestにアップロードしました．
IGC 2022の時点でも一般公開済みだったのでアップデートの方が近いかもしれません．

以下，作品URLです．
MetaQuestをお持ちの方はぜひ遊んでみてください！

https://sidequestvr.com/app/9885/neo-molkky-vr

### プレゼンと結果発表
誰よりもエンタメ重視のプレゼンを行いました．
正直お叱りを受けるかな……と思いましたが，想像以上に好評で安心しました……！
ゲームについても，このハッカソンの仕上げ込みで半年以上時間をかけて準備してきたものだったので，いかにこだわって作ったかを表現でき良かったと思います．

そして，結果は……

__最優秀賞を受賞できました！！__

https://twitter.com/geek_pjt/status/1573214161601200130

本当にありがとうございました！

## まとめ
以上で，ハッカソンの振り返りを終わります！
長い期間かけて開発してきたので，短期のハッカソンとは少し毛色違うかもしれませんが何はともあれ評価され嬉しい限りでした．

ぜひ皆さんもハッカソンに出てみてはいかがでしょうか！
楽しいですよ！

今後もVR関係の作品は作って行くので，少しでも気になったら[REAL12E soft.のTwitterアカウント](https://twitter.com/REAL12E_soft)もフォローしていただければと思います！